Workflow canvas

React Flow orchestration graph for legacy workflows.

/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

TypeRuntimeNotes
instruction_agent (root)YesDefault root_agent coordinates the graph
flow-agent / agentYesRuns bound Assistant or agent_id sub-runtime
knowledgeYesHybrid search on agent knowledge base
router / decisionBranchOutgoing edges evaluated by condition.expr
toolYesCalls workspace tool by tool_name
workflowYesHandoff into another workflow graph entry node
endYesOptional final_message
triggerPass-throughLegacy entry wiring
script, set, human, parallel, wait, datastoreBlockedCannot 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.