/app/workflows/{workflowId}/flow — orchestration-layer canvas distinct from assistant intent sub-flows. Select a node or edge in the inspector: edges support label, condition.expr, and priority.
Canvas node types
| Type | Runtime | Notes |
|---|---|---|
| instruction_agent (root) | Yes | Default root_agent coordinates the graph |
| flow-agent / agent | Yes | Runs bound Assistant or agent_id sub-runtime |
| knowledge | Yes | Hybrid search on agent knowledge base |
| router / decision | Branch | Outgoing edges evaluated by condition.expr |
| tool | Yes | Calls workspace tool by tool_name |
| workflow | Yes | Handoff into another workflow graph entry node |
| end | Yes | Optional final_message |
| trigger | Pass-through | Legacy entry wiring |
| script, set, human, parallel, wait, datastore | Blocked | Cannot publish — remove or replace |
Edge conditions
Router/decision nodes choose the first matching outgoing edge (sorted by priority). Expressions on condition.expr:
- default, true, else, * — fallback branch
- contains:keyword — substring on last user message (session + workflow shared_state)
- var.path == value — loose equality on orchestration variables
- any other text — substring match like chain decide steps
Flow agents tab
/flow-agents — pick published Assistants to bind into flow-agent nodes. Each binding references agent id + published version.
AI agents tab
/ai-agents — configure instruction_agent nodes: system instructions, tool checklist from workspace catalog, model override, temperature, max_steps.
Workflow simulator
WorkflowSimulator on the Flow tab starts POST /v1/runtime/workflows/{id}/sessions (draft by default). Turns go to POST /v1/runtime/workflows/sessions/{session_id}/turns. Trace events include workflow.node.route, workflow.tool.executed, workflow.subworkflow.enter. History tab lists sessions with pagination and loads turns per session.
Publish in Studio
Publish runs validate-publish first and surfaces blockers in the UI. Publish tab shows version history, restore-to-draft, and live vs draft status. Canvas banner warns about unsupported node types still on the graph.