concepts
Workflows
How Tone compiles agent definitions into deterministic state machines.
A workflow is what Tone executes when a call is in progress. It's a state machine compiled from your agent YAML — not a chat loop with a system prompt.
Why a state machine
Voice calls have hard timing constraints. A pure chat-loop architecture spends turn budget on decisions that don't need an LLM. A compiled workflow makes the boring transitions (greeting → identify → route) deterministic and saves the LLM for the parts where it adds value.
Anatomy of a workflow
Every workflow has three kinds of nodes:
- Speak nodes: the agent says something.
- Listen nodes: the agent waits for the caller, possibly with intent classification.
- Branch nodes: take a path based on a tool call, intent, or context.
flow:
- speak: greeting
- listen:
classify:
- reschedule
- new_booking
- other
- branch:
reschedule: goto: reschedule_flow
new_booking: goto: new_booking_flow
other: goto: handoff_to_humanWhen the LLM is invoked
Inside a listen node with intent classification, Tone uses a fast
classifier (a small, distilled model) rather than the full LLM. The full
model only runs inside open-ended speak nodes or in tool-handling
branches. This is what makes the latency budget work.
Debugging workflows
Every workflow run produces a trace in the dashboard. You can step through node-by-node, see which branch was taken, and replay any single node with a different input.