
Predictable
Conversations follow explicit paths. Every transition is a rule you defined.
Easy to debug
When something breaks, you know which node failed and why.
Easy to update
Change one node without touching the rest of the flow.
Lower cost
Deterministic edges and static nodes skip the LLM entirely.
When to use a graph agent
Core concepts
Nodes
A node is one step in the conversation. Each node has one clear job.Edges
Edges define how the conversation moves from one node to the next.Routing
After every customer message, a routing LLM evaluates the available LLM-typed edges on the current node and picks the best match.Expression and unconditional edges are evaluated before the routing LLM runs. If a deterministic rule matches, the transition fires instantly with zero latency and zero cost. The routing LLM is only invoked when no deterministic rule matches.
Where graph agent config lives
All graph-agent fields live insidellm_agent, nested under tools_config in your conversation task:
Top-level fields
agent_information is the identity layer
This prompt is applied to every node. Use it for persona, response rules (max sentence count, language switching), pronunciation rules, and hard guardrails.
Writing effective node prompts
A well-writtenprompt includes the node’s purpose, the exact question to ask, validation rules, a fallback, and any voice formatting rules.
Weak:
Next steps
Edges & routing
Edge types, expression operators, built-in variables, inline data extraction.
Static nodes
Pre-cached audio messages with auto-replay on user silence.
Router nodes
Silent dispatch nodes that route to the right node in one turn without speaking.
Event injection
Drive transitions and proactive speech from external events via REST.
Tools & RAG
Call transfer, custom API tools, per-node knowledge bases.
Debugging
Routing logs, common scenarios, and how to fix them.
Full example
Complete annotated JSON skeleton showing every feature end-to-end.

