If You Have to Test Whether Your Agent Can Finish the Job, the Process Isn't in the Runtime

Blog · CRM

If You Have to Test Whether Your Agent Can Finish the Job, the Process Isn't in the Runtime

By Amber Jain9 min read

Short answer

When a multi-step process has no runtime home, the agent must reconstruct the procedure turn-by-turn across API calls — which is why single-tool-call accuracy collapses over a full conversation.

There is a quiet tell in every agent evaluation deck: a benchmark for whether the agent can finish the job across a full conversation. Read that literally. If reliability is something you have to test for, the procedure the agent depends on lives nowhere durable — it is being reconstructed, turn by turn, inside a language model's context window. A score that says "succeeds most of the time" is not a guarantee. It is a confession about where the process actually runs.

Give the category its due first. When an autonomous-service vendor publishes its own multi-turn benchmark, that is intellectually honest — most marketing hides the hard number. And the number is genuinely impressive in one column: on a single tool call, given clean state and a clear instruction, these systems are close to flawless. Modern models pick the right function and fill the arguments extremely well.

Then look at the other column, the one that matters to a CIO: full-conversation success — completing the entire multi-step procedure end to end — lands at a fraction of the single-call figure. Directionally, near-perfect per call, and a minority of full runs. That gap is not a rounding error the next model release will close. It is the entire architecture of the problem, printed on the vendor's own slide.

The claim these platforms make on top of that number — "autonomous resolution, no scripts required" — is precisely what the gap contradicts. A procedure with no script and no runtime home does not disappear; it just gets re-derived, badly, on every turn.

Here is the mechanism, and it is not mysterious. A real customer process — validate the entitlement, reserve the resource, provision the service, post the invoice, resolve the case — is a stateful sequence spanning several systems. If that sequence lives in no runtime, the only place left to hold it is the model's context. So on every turn the agent must silently re-answer three questions from the transcript alone: which step am I on, what is now valid next, and what has already changed in the outside world.

Get any of those wrong and you get the exact failure modes the benchmark measures: wrong sequence (bill before provision), lost context (re-run a step whose side effect already fired), invalid branch (take a path the customer's plan doesn't allow). Now do the arithmetic. Suppose each of those per-turn decisions is right 95% of the time — excellent for a language model. Over a fifteen-turn procedure, end-to-end correctness is 0.95 raised to the fifteenth: below fifty percent. High single-call accuracy and low full-run accuracy are not in tension. One causes the other the moment the procedure has to be reassembled at each step.

None of this is an argument against the AI. An agent that drafts the outreach, scores the lead, and summarizes a case history genuinely saves a rep time, and one grounded in trusted customer data really is better than a bolted-on bot. The language is not the fragile part. The orchestration of a stateful, multi-system procedure is — and that is not a job for a context window.

The broad-suite response is a multi-agent orchestrator: decompose the work, hand each sub-agent a narrow scope, and narrower scope means fewer hallucinations. As engineering, this is sound — constraining what an agent may attempt does reduce error, and a well-bounded agent is safer than an open-ended one.

But look at what the move concedes. You shrink what the agent is allowed to attempt because there is nowhere that can enforce what it should attempt. Scoping is a way of managing a symptom of the same disease: the procedure isn't held anywhere with authority over it, so you make the blast radius small enough that reconstruction usually survives. "Usually" is doing an enormous amount of load-bearing work in a sentence about a customer's order.

Reliability arrived at by scoping-and-tuning is a property of a test harness. It has to be re-earned every time the model, the prompt, the tool set, or the process changes. That is test-and-pray dressed as architecture.

Entroid draws the line differently, at the level of where the procedure lives. In the fabric, the customer process — order-to-fulfill, quote-to-cash, case-to-resolution, onboarding, renewal — is one Deterministic Workflow. The workflow, not the model, owns the state machine: the set of legal states, the transitions between them, the guardrails on each transition, and the compensation boundary if something downstream fails. Governance is inline — approvals, entitlements, and separation-of-duties are conditions on the transitions themselves, not a review that happens afterward.

The Atomic Agents in that workflow do only what agents are actually good at: language and judgment. They read intent, draft a reply, propose the next action. They are participants in a durable, governed workflow — not autonomous actors whose output gets reconciled later. Intelligence Orchestration handles the reasoning; the fabric owns the state and the transitions; Connectors — the only primitive that touches an external system — carry the fulfillment out to order, billing, provisioning, and support. Human-in-the-loop is first-class, a modeled pause in the state machine, not an escape hatch bolted on when the demo gets scary.

What this does to the benchmark's three failure modes is the whole point. Wrong sequence becomes unreachable: only defined transitions exist, so "bill before provision" is not a low-probability mistake, it is a state that cannot be entered. Lost context disappears: the state lives in the workflow, not the conversation, so the process knows what has already happened regardless of what the transcript remembers. Invalid branch is rejected at the gate: an entitlement or SoD check the agent cannot argue its way past. These are handled by construction, not avoided by probability.

WITHOUT A RUNTIME HOME — THE AGENT RECONSTRUCTS THE PROCEDURE AGENT CONTEXT WINDOW turn 1 → turn 2 → … → turn N re-derives step, state & branch each turn reserve( ) provision( ) bill( ) single call ✓ full run ✗ IN THE RUNTIME — DETERMINISTIC WORKFLOW OWNS THE STATE MACHINE Validate entitlement Reserve Provision via Connector Bill Resolve approval gate (inline) HITL pause point compensate — release reservation on failure approvals · entitlements · SoD enforced on every transition one immutable per-action audit — every transition, compensation & approval recorded

Consider — illustratively, not as a delivered result — a service change midway through: validate the customer's entitlement, reserve capacity, provision the new service through a Connector, post the invoice, resolve the case. At step three, the provisioning system times out.

In the reconstruct model, this is the dangerous moment. The reservation already happened; the provisioning may have half-happened; the conversation is mid-turn; and the agent has to notice the partial state from the transcript and reason its way to an unwind. Sometimes it does. That "sometimes" is the collapse the benchmark is measuring, expressed as a stranded customer with a reserved-but-not-provisioned service and no invoice.

On the fabric, the workflow is simply at a known state: provision failed. That is a defined transition, so the compensation boundary runs — release the reservation, undo what must be undone — and the process parks in a durable, resumable state rather than a confused one. Where policy requires a human, a first-class HITL pause holds it there for a decision. On retry, it resumes from the exact transition, not from a re-read of the chat. And every one of those movements — the failure, the compensation, the approval, the resume — lands as one immutable per-action audit entry. This is an architectural property of putting the procedure in the runtime, not a feature that happened to pass a test.

Be precise about the claim, because over-claiming is the fastest way to lose a technical reader. ES does not abolish model error. An Atomic Agent can still misread a customer, propose the wrong thing, or draft a poor reply. The difference is what a slip becomes. When the runtime — not the model's memory — owns the procedure, a bad proposal is a rejected transition or a HITL pause, not a silently half-finished order. The model's error is contained by the state machine instead of propagated by it.

Concede the strongest opposing position squarely: owning the customer record, the data foundation, and the agentic layer is a genuinely powerful, integrated design, and an agent acting on trusted customer data does real work. But acknowledge exactly where it acts. It acts on the record, and inside the vendor's own applications. The order still fulfills, the service still provisions, and the invoice still posts in other systems reached by integration — and at that moment of cross-system action, the CRM's governance is not the thing running. The record is one place; the fulfillment is another; the procedure that must hold them together has, again, no single runtime home.

  • ES runs over your existing estate, not instead of it. Connectors reach the order, billing, provisioning, and support systems you already run — the fabric does not demand you rebuild them.
  • What is unified is the procedure, not the data alone. The state machine, the guardrails, and the compensation boundary span every system the process touches, so the record and the fulfillment move as one governed workflow.
  • Constraint by construction, not by test. You bound the agent by giving it a runtime that owns the sequence — so reliability survives a model swap, a prompt change, or a new branch without re-earning a benchmark.

The right question for a customer-agent evaluation is not "what fraction of full conversations succeed." It is "where does the procedure live." If the answer is a context window, you will keep testing whether the agent can finish the job — because you have built a system where finishing is a probability, not a guarantee.

Stop benchmarking whether the agent can hold the process together. Put the process somewhere it cannot fall apart.

See what this looks like for your enterprise.

Not a demo. A strategic conversation about how your enterprise could operate
when every process runs on one governed fabric.

Start the Conversation