AnthropicClaude Certified Architect – Foundations2026-105.2 Design effective escalation and ambiguity resolution patterns
Route cases by authority and progress
Completed by the knowledge check
Learning objective
Define escalation triggers for explicit human requests, policy exceptions or gaps, and inability to make meaningful progress.
Core idea
A support agent needs a person when the customer requests one, when the requested decision exceeds the agent’s policy authority, or when the available workflow cannot move the case forward. Those are three different reasons for the same destination. A complicated case can remain autonomous if policy covers its steps and the tools can execute them.
The CCAR-F exam guide explicitly identifies these triggers. Treat them as the support application’s decision contract, rather than as behavior Claude automatically supplies. Your prompt describes the contract; your application supplies the handoff operation and verifies that the requested transfer happens.
How it works
Separate the three triggers
Explicit human request: The customer asks for a person, representative, or manager. The relevant evidence is that request, not the severity of the issue. The next action is handoff without first trying to solve it. See 5.2.2 for sequencing and failed transfers.
Policy exception or gap: The desired outcome requires an exception to a rule, or the supplied rules do not settle that outcome. Suppose a retailer permits returns within 30 days. A request to approve a return after that window requires authority the agent does not have. Suppose price adjustments cover the retailer’s own price reductions. A competitor price-match request falls into a gap unless another applicable rule settles it. These are illustrative retailer policies, not Anthropic product limits.
Distinguish explaining a rule from granting an exception. The agent can state the return window without approving a late return. If the customer seeks approval outside that rule, route the decision to an authorized person. Do not invent an exception because the request sounds reasonable.
Inability to make meaningful progress: The agent lacks a viable next step toward the requested outcome. Relevant tools may have failed after their permitted recovery, or the available tool set may not implement the necessary action. A successful lookup followed by an unavailable correction operation can still leave the case blocked. Tool success is not the same as progress toward resolution.
A missing identifier is often a recoverable information gap: ask for it rather than escalating immediately. A repeated lookup that produces the same unresolved candidates adds no useful evidence. See 5.2.6 for that distinction and 2.2.5 for bounded local recovery.
Give the handoff a real operation
For a Messages API implementation, define a client tool such as escalate_to_human in tools. This name is an application example, not an Anthropic built-in. Its description explains the three triggers and when ordinary resolution remains appropriate. Its input_schema describes the information your queue accepts.
In the Claude Agent SDK, wrap custom tools in a Model Context Protocol (MCP) server with createSdkMcpServer (TypeScript) or create_sdk_mcp_server (Python), then register it through mcpServers (TypeScript) or mcp_servers (Python). The registered server key and tool name form mcp__{server_name}__{tool_name}; a support server exposing this handoff uses mcp__support__escalate_to_human.
An illustrative schema can require reason with the values human_request, policy_exception, policy_gap, and blocked_progress, plus a short summary. These values belong to your application. They make the trigger explicit without treating a model-generated explanation as proof of authority. Pass known case context; do not require an order lookup merely to fill an escalation field.
Claude requests a client operation through a tool_use block. Your application executes the queue integration and returns a tool_result. The queue result, rather than the assistant’s promise, establishes whether a handoff was accepted. See 1.1.5 for execution-loop ownership and 1.5.3 for deterministic policy enforcement.
Put the rule in the right place
The Messages API’s top-level system parameter carries the standing escalation policy. Use explicit conditions rather than “escalate difficult cases.” The tool’s description reinforces the same conditions at the point of selection. Keep them consistent: a prompt that says “honor human requests” and a tool description that says “use only after exhausting solutions” teaches conflicting priorities.
The policy should also distinguish a final, explained denial from an unresolved request for an exception. Otherwise every request outside the standard policy can become either an unauthorized approval or a needless loop. Name who can make the exception and route that decision without promising its outcome.
Key distinctions and trade-offs
The following cases separate workload from the need for human authority:
| Evidence | Decision | Why |
|---|---|---|
| Three orders, all corrections covered and executable | Resolve autonomously | More steps do not remove authority |
| One calm competitor price-match request, policy silent | Escalate | The agent lacks a governing rule |
| One routine refund, customer asks for a person | Escalate immediately | Explicit preference takes priority |
| Order service remains unavailable after bounded recovery | Escalate | No permitted step advances the case |
| Several customer records match a name | Ask for an identifier | Clarification can supply the missing evidence |
A narrow trigger definition reduces needless transfers but must retain all three reasons. Optimizing only for autonomous completion encourages unauthorized exceptions. Optimizing only for low risk can send every multi-step case to a person. The contract asks whether autonomous resolution is wanted, authorized, and possible.
Architecture / decision scenario
A homeware retailer exposes custom lookup_order, process_refund, and escalate_to_human tools. Its policy permits late-delivery fee refunds, limits ordinary returns to 30 days, and covers only own-site price adjustments.
A customer requests corrections across three late deliveries. The agent confirms each eligible order and resolves the covered fees. The workload is substantial, but no escalation trigger applies. Another customer politely requests a competitor price match. The agent invokes escalate_to_human with reason: "policy_gap"; politeness does not supply policy authority.
A third customer asks for a representative about a routine return. The agent routes that request before an order lookup. A fourth case reaches a persistent order-service failure after the recovery budget defined by the application. The agent sends reason: "blocked_progress", preserving the unresolved order status instead of claiming that the customer has no order.
Review the actual tool traces. A transcript that sounds helpful but approves a price match or continues investigating after a human request violates the routing contract. Anthropic’s support guide treats escalation efficiency as recognizing and appropriately routing cases that need human intervention; evaluate that separately from customer sentiment.
Common exam traps
- Treating the number of orders or reasoning steps as an escalation trigger.
- Assuming a calm request is safe even when policy is silent.
- Treating a tool failure as proof that the underlying record does not exist.
- Requiring failed autonomous resolution before honoring a human request.
- Approving an exception while calling it an ordinary policy interpretation.
What to remember
Route on explicit human preference, missing policy authority, or blocked progress. Keep clarification distinct from escalation when an answer can unlock the workflow. Implement handoff through an application-owned operation and verify its result; neither a prompt instruction nor a reassuring sentence completes the transfer.
Knowledge check
A support agent handles returns and billing through custom tools. In staging it escalates long multi-order cases that the policy fully covers, yet it approves goodwill credits above its authority and keeps working after customers ask for a supervisor. Which escalation rule fixes both problems?
A retailer’s policy covers price adjustments only when its own site lowers a price, and no other rule mentions competitors. A calm customer asks the agent to match a lower price on a competitor’s site. What should the agent do?
The order service is still unavailable after the retry budget the application allows for lookup_order, and no other permitted operation can check refund status. The customer wants to know whether their refund was issued. What should the agent do next?
lookup_order until the service responds, then continue the caseA support agent’s system prompt says: “When a case needs a human, tell the customer you are transferring them.” Transcripts show polite transfer messages, but the human queue never receives the cases. Which change fixes the defect?
escalate_to_human tool that the application executes against the queuetool_use block, the application performs the queue operation, and the tool_result establishes whether the handoff was accepted; a reassuring sentence establishes nothing.References
- Anthropic, Claude Certified Architect – Foundations Exam Guide
- Anthropic, Tool use with Claude
- Anthropic, Define tools
- Anthropic, Create a Message
- Anthropic, Customer support agent
- Anthropic, Custom tools