This page requires Python familiarity. It is a reference for developers writing transition functions inside flows.
Flow object gives you control over how the agent moves between steps in a flow. It is available as a parameter in any flow-scoped function (transition function).
The two companion methods on the Conversation object – conv.goto_flow() and conv.exit_flow() – handle transitions between flows and are documented at the bottom of this page.
goto_step(step_name, condition_label)
Moves the agent to another step in the current flow. This replaces the current step’s prompt and functions with those of the target step.
| Parameter | Type | Required | Description |
|---|---|---|---|
step_name | str | Yes | The exact name of the target step as it appears in the Flow Editor. Case-sensitive. |
condition_label | str | No | A label for the transition edge. This is purely decorative – it appears on the edge in the Flow Editor for readability but does not affect runtime behavior. |
step_name doesn’t match any step in the flow, the transition fails silently. Step names are case-sensitive. See transition functions – debugging for troubleshooting guidance.
Execution context matters
flow.goto_step() behaves differently depending on where it’s called:
- In a transition function (LLM step) – the LLM decides whether to call the function based on the step prompt and user input. The transition only happens if the LLM invokes the function.
- In a Function step – the code runs directly without LLM involvement. The transition is deterministic. Here, the
condition_labelparameter controls which edge is highlighted in the visual editor.
Conditional transition
Input validation and state update
current_step
Type: str
Returns: The name of the current step the agent is in.
Companion methods on the Conversation object
These methods live on theConversation object, not on Flow, but are commonly used alongside flow.goto_step() in transition logic.
conv.goto_flow(flow_name)
Transitions to a different flow at the end of the current turn. Can be called from any function – flow-scoped or global.
conv.exit_flow()
Exits the current flow and returns the agent to its default (non-flow) behavior. Exit steps are visually marked in yellow in the Flow Editor.
Every flow should have at least one exit path. Un-exited flows can cause the agent to hallucinate or loop. See the flows overview for more on flow design.
Next steps
Transition functions
Naming conventions, common mistakes, and best practices for flow routing logic.
Conversation object
Full reference for conv.goto_flow() and conv.exit_flow().
Triggering flows
All the ways to start a flow with conv.goto_flow().

