Skip to main content

Agent Pipelines

Chain multiple agents into a sequential pipeline that executes end-to-end, with full governance at every hop.

Key Concepts

What are Agent Pipelines?

An Agent Pipeline is a declarative, reusable sequence of agents. You define the chain once — intake → enrichment → router → response — and Clevername executes each step in order, threading the output of step N into the input of step N+1.

Every hop passes through CleverGuard scanning, council gates, and drift checks. No bypass is possible. Runs are audit-logged as a group so you can see the full chain in one query.

Quick start

You need an org admin API key. Replace YOUR_KEY, ORG_ID, and AGENT_ID_* with real values.

1

Create a pipeline

curl -X POST https://clevername.net/api/hub/hub/agent-pipelines \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "org_id": "ORG_ID",
    "name": "Intake → Enrichment → Response",
    "description": "Three-stage customer request pipeline"
  }'

# Returns: { "id": "PIPELINE_ID", "name": "...", ... }
2

Add steps

# Step 0 — intake agent
curl -X POST https://clevername.net/api/hub/hub/agent-pipelines/PIPELINE_ID/steps \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "agent_id": "AGENT_ID_INTAKE", "step_order": 0, "on_error": "halt" }'

# Step 1 — enrichment agent
curl -X POST https://clevername.net/api/hub/hub/agent-pipelines/PIPELINE_ID/steps \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "agent_id": "AGENT_ID_ENRICH", "step_order": 1, "on_error": "halt" }'

# Step 2 — response agent
curl -X POST https://clevername.net/api/hub/hub/agent-pipelines/PIPELINE_ID/steps \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "agent_id": "AGENT_ID_RESPONSE", "step_order": 2, "on_error": "halt" }'
3

Run the pipeline

curl -X POST https://clevername.net/api/hub/hub/agent-pipelines/PIPELINE_ID/run \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "initial_input": { "prompt": "Summarise this ticket: ..." } }'

# Returns immediately: { "run_id": "RUN_ID", "status": "running" }
4

Poll status

curl https://clevername.net/api/hub/hub/agent-pipelines/PIPELINE_ID/runs/RUN_ID \
  -H "Authorization: Bearer YOUR_KEY"

# Returns:
# {
#   "id": "RUN_ID",
#   "status": "completed",   # running | completed | failed | partial
#   "steps": [
#     { "step_order": 0, "status": "completed", "output_payload": { "result": "..." } },
#     { "step_order": 1, "status": "completed", "output_payload": { "result": "..." } },
#     { "step_order": 2, "status": "completed", "output_payload": { "result": "..." } }
#   ]
# }

Input mapping

By default, the full text output of step N becomes the prompt for step N+1. Use input_mapping on a step to control what gets passed.

Default (no mapping)Passes result text as-is to next agent's prompt."input_mapping": null
prompt_keyExtracts a specific field from the previous output."input_mapping": { "prompt_key": "summary" }
templateFormats the output using a string template."input_mapping": { "template": "Review this: {output}" }

Error handling

Each step has an on_error policy:

halt

Stop the run immediately. Default.

skip

Continue to the next step with the previous output unchanged. Run status becomes partial.

fanout

Reserved for future parallel branching. Currently treated as halt.

Connections map

Once you create a pipeline, go to AI Company → Connections and enable the Pipelines filter chip (green). Each pipeline appears as a dashed green arrow from step N to step N+1, distinct from reporting hierarchy and call edges.

Click any agent node to see which pipelines it appears in under the Pipelines section in the detail panel.

Tip
Pipelines are same-org only. Every step must belong to an active agent in your org. Governance is enforced at each hop — there is no way to bypass CleverGuard or council gates from within a pipeline run.