Kilevel
Dashboard

Language / Sprache

KILEVEL © 2026

All posts
Engineering/14 August 2026/7 min

A longer prompt is not a conversation design

Every voice agent that fails in production fails the same way: the prompt grew until the model could no longer hold all of it at once. A state graph is what you reach for when adding instructions stops working.

An abstract technical 3D visualization of a conversation state graph with interconnected decision nodes and branching flows in navy and blue.

The first version of any voice agent is a prompt. It works, which is the problem, because the natural response to the first thing it gets wrong is to add a sentence. Six weeks later the prompt is two thousand words, contains four numbered lists that partially contradict each other, and the agent has started skipping the qualification questions on about one call in twelve.

The instinct at that point is to add another sentence, in capitals. It does not help, and it is worth understanding why not.

What a long prompt actually asks the model to do

A prompt describing a multi-stage conversation is asking the model to do two jobs on every single turn. It has to work out where in the process the call currently is, and then it has to behave correctly for that point. The first job is inference over the whole transcript, and it is repeated from scratch each turn, with no memory of what it concluded last time beyond what the transcript implies.

That inference is usually right. Usually is the operative word. It degrades exactly where you would expect: long calls, callers who answer three questions at once, callers who circle back to something from four turns ago, and any point where two stages of your process look similar in transcript form. Confirming an address during booking and confirming an address during a delivery query read almost identically, and a model that conflates them will produce a perfectly fluent turn from the wrong stage.

The core issue

Conversation state is being re-derived on every turn instead of being held. Anything re-derived can be re-derived differently.

What a state graph changes

A state graph makes the current stage an explicit fact rather than an inference. The call is in a node. That node has its own instructions, its own tools, and a small set of edges out of it. The model is no longer being asked where it is, only what to say next given that it is here.

  • The prompt the model sees per turn is short, because it is one node’s worth rather than the whole process.
  • Tools are scoped to the node, so the agent cannot book an appointment during the greeting because the booking tool is not on the table yet.
  • Transitions are visible. When a call goes wrong you can see which edge it took, rather than reading a transcript and guessing.
  • Changing one stage does not perturb the others, which is the property a long prompt most conspicuously lacks.

That last point is the one that decides whether a voice agent survives contact with a real business. Prompts are global. Every edit is a change to a shared document, so tightening the objection handling can loosen the qualification, and you will not find out until you listen to enough calls. Nodes are local. An edit to a node changes that node.

The objection, which is a fair one

Explicit states sound like the decision trees that made phone menus miserable, and the fear is that the agent becomes rigid: an interrogation that will not let the caller volunteer anything out of order.

That happens when the graph is drawn too fine. If every question is a node, you have rebuilt an IVR with a better voice. The useful granularity is one node per stage of the conversation, not per question. Inside a node the model is free, and it handles the caller who answers three questions in one breath the way a language model should. The graph governs the transitions between stages, which is the part that has to be reliable, and leaves the conversation itself to the model, which is the part it is good at.

Use the graph for the things that must not vary. Use the model for the things that should.

When a prompt is still the right answer

Plenty of the time. A single-purpose agent that answers questions from a knowledge base does not have stages, and forcing a graph onto it adds structure with nothing to hold. The same goes for a first prototype, where the point is to find out what the conversation even is.

The signal to move is not complexity in the abstract. It is when you start writing instructions about ordering. The moment a prompt contains the words before, after, or only once you have, it is describing a state machine in prose, and prose is a poor notation for one.