Workflows
Create, inspect, control, and schedule multi-step workflows.
Workflow endpoints let you manage the DAGs produced by the Orchestrator and run by the Workflow Engine.
Listing & inspecting
GET /api/workflowsendpointList all workflows (running and historical). History is persisted to your device.
GET /api/workflows/{workflow_id}endpointFetch a single workflow's steps and results.
bash
curl http://127.0.0.1:8000/api/workflows
curl http://127.0.0.1:8000/api/workflows/3f9a1c20Creating
POST /api/workflowsendpointCreate a workflow from an explicit step list.
POST /api/workflows/generateendpointGenerate a workflow DAG from a natural-language prompt (LLM decomposition).
A generated/created workflow is a list of steps with this shape:
json
[
{ "id": "s1", "agent": "web_search", "action": "SEARCH_WEB",
"args": { "query": "AI news" }, "depends_on": [], "outputs": ["results"] },
{ "id": "s2", "agent": "email", "action": "SEND_EMAIL",
"args": { "to": "$user_email", "body": "$results" },
"depends_on": ["s1"], "needs_human": true }
]Controlling a running workflow
Workflows support human-in-the-loop via needs_human steps and these controls:
| Method | Path | Action |
|---|---|---|
POST | /api/workflows/{id}/interrupt | Pause a running workflow |
POST | /api/workflows/{id}/resume | Resume a paused workflow |
POST | /api/workflows/{id}/intervene | Inject human edits/input mid-run |
DELETE | /api/workflows/{id} | Delete a workflow |
bash
curl -X POST http://127.0.0.1:8000/api/workflows/3f9a1c20/interrupt
curl -X POST http://127.0.0.1:8000/api/workflows/3f9a1c20/resumeThe workflow wizard
A guided, conversational builder:
| Method | Path | Purpose |
|---|---|---|
POST | /api/workflows/wizard/start | Begin a wizard session |
POST | /api/workflows/wizard/chat | Continue the conversation |
Backed by and surfaced in the shell by .
Recurring / scheduled workflows
| Method | Path | Purpose |
|---|---|---|
GET | /api/workflows/recurring | List schedules |
POST | /api/workflows/recurring | Create a schedule |
DELETE | /api/workflows/recurring/{schedule_id} | Remove a schedule |
Scheduling is handled by.