Pipeline Workflows
Pipelines chain multiple agents together to complete complex tasks.
Creating a Pipeline
pipeline = client.create_pipeline(
name="code-review-pipeline",
description="Reviews code, generates fix suggestions, then summarizes",
steps=[
{"agent_id": reviewer_id, "step_order": 1},
{"agent_id": fixer_id, "step_order": 2},
{"agent_id": summarizer_id, "step_order": 3},
],
)
Publishing
Pipelines must be published before other users can run them:
client.publish_pipeline(pipeline["pipeline_id"])
Running a Pipeline
run = client.run_pipeline(
pipeline["pipeline_id"],
input={"code": "def hello(): print('world')"},
)
print(f"Pipeline run started: {run['run_id']}")
Monitoring Progress
import time
while True:
status = client.get_pipeline_run(run["run_id"])
print(f"Status: {status['status']}")
for step in status.get("steps", []):
print(f" Step {step['step_order']}: {step['status']}")
if status["status"] in ("completed", "failed", "cancelled"):
break
time.sleep(5)
Pipeline Attestations
Each step in a pipeline produces an attestation with a parent_attestation field linking it to the previous step. This creates a verifiable chain of custody from input to final output.
Step 1 → Attestation A (parent: null)
Step 2 → Attestation B (parent: A)
Step 3 → Attestation C (parent: B)