BlogAI agents
Designing the cases an agent passes to a person
An agent should hand over a case when a rule says people decide it, when information is missing or contradictory after a bounded effort, when a system failure leaves the outcome unclear, when the case does not resemble anything it was tested on, or when it runs out of its step budget. The handoff should let the person continue without redoing the agent's reading: what was done, what failed, what is unknown and what decision is needed.
Triggers you can write down and test
- Reserved by policy: complaints that mention legal action, cases flagged as vulnerable customers, anything your rules say a person decides
- Missing or contradictory information that one clarifying step did not resolve
- A system failure beyond the retry budget, and every write whose outcome is unknown
- An unfamiliar case: a document template, supplier type or language that is absent from the test set
- A step or cost budget exceeded, which Anthropic's guidance on agents describes as a stopping condition such as a maximum number of iterations
- The customer asks for a person
Notice what is missing: the model's own sense of confidence as the only trigger. A model's stated confidence is not calibrated by default. It can add escalations, but the list above should not depend on it.
Test escalation in both directions
Escalation can fail two ways. An unnecessary handoff costs review time and erodes trust in the agent. A missed handoff lets the agent finish a case it should not have touched, which is usually more expensive. Anthropic's guide to agent evals recommends testing both when a behaviour should occur and when it should not. For escalation, the test set needs cases that must be handed over and similar cases that must not, and the results should be reported separately.
What the handoff contains
The format below is a sketch for a hypothetical claims agent. It is meant to be rendered in the tool the person already works in, not read as raw data.
case_id: clm-40517 reason: CONTRADICTORY_INFORMATION question_for_reviewer: > Damage date on the form (12 Aug) is before the policy start (15 Aug). The photos are dated 18 Aug. Which date applies? done: - claim created, status awaiting_assessment (ref CL-889120) failed: [] unknown: - acknowledgement email: send timed out, delivery not confirmed not_done: - coverage check, blocked on the date question proposed_next_step: > If 18 Aug applies, run coverage check. If 12 Aug applies, decline under clause 4.2 after review. evidence: [form.pdf, photo_metadata.json, policy_P-2.pdf] agent_version: claims-intake 2026.10.2 answer_due_by: next working day 12:00
Two fields carry most of the value. The question should be one the person can answer, not a vague request to review the case. The unknown list tells them which external effects may or may not have happened, so they check before repeating anything.
The queue on the other side
An escalation queue needs an owner, routing by reason so the right specialist sees each case, and a target for how long a case may wait. Google's SRE workbook treats objectives like this as ratios of good events to all events with a written policy for what happens when they are missed, and the same structure works for queue age.
Decide whether the person finishes the case or answers the question and returns it. Returning works when the agent's state is saved: LangGraph's interrupt(), for example, holds a run until it is resumed with the person's answer. Either way, the agent must stop writing to the case once it is escalated.
What escalations teach you
Record how the person resolved each case, in a structured field rather than free text. Over a few weeks, the reasons show where to work. If most escalations come from one unreliable lookup, fix the tool. If they come from one document template, add cases for it to the test set. If people resolve a category the same way every time, that category may be ready for the agent, after it passes the tests.
Where escalation design breaks down
The common failures are organisational: a queue without an owner, escalation used as a dumping ground for every awkward case, a reviewer who lacks access to the system the agent used, or a handoff that arrives in a separate tool nobody checks. Microsoft's compensating transaction guidance makes a related point for failed operations: when manual intervention is needed, the alert should carry the detailed reason. A good first step is to list your current escalation reasons, write the question a person would need answered for each, and check whether the agent can produce it.
Questions
What escalation rate should we expect?
There is no general figure; it depends on the process and the case mix. Start with conservative triggers and loosen them only for categories where the test set and production samples show the agent handles them correctly.
Should the agent tell the customer that a person is taking over?
In customer-facing processes, yes, together with when they can expect an answer. Only state a time your queue target can actually meet.
Can the person send the case back to the agent?
Yes, if the answer is captured as structured input, the agent resumes from its saved state and the resumed run is checked against the same rules as any other. If the person changed records in the meantime, the agent should read them again rather than rely on what it saw before the handoff.
Related services
More from the blog
Human approval in agent workflows
Which agent actions on business records need a person's approval, what the approver must see and how to keep approvals from stalling every case.
Reviewing agent exceptions
How to review a production agent's exceptions with a fixed time budget, triage them to an owner and turn the right ones into regression cases.
Recovering from agent tool failures
What a process agent should do when an API times out or a tool returns partial data, with typed failures, bounded retries and a clean handoff.
Talk to an engineer
Bring one piece of work you would like to improve. The call takes 30 minutes and needs no access to your systems or your data.
Booking runs on Google Calendar.
Prefer to write first? Leave your email and a few lines, and we reply with times.
Look for the draft in your email program
Send it from there, and an engineer replies in person with times for a 30-minute call. If no draft has opened, write to us at miki@cloudsail.com.