CCAR-F scenarios › Customer Support Resolution Agent · Question 4 of 60
Scenario 1 · Customer Support Resolution Agent
You're building a support agent with the Claude Agent SDK that resolves ambiguous customer requests such as returns, billing disputes, and account problems. It reaches your backend through custom MCP tools: get_customer, lookup_order, process_refund, and escalate_to_human. The goal is to resolve at least 80% of contacts on first touch while recognizing the cases a human should take over.
Tool Design & MCP Integration
When a customer asks for a refund on an order that is outside the 30-day return window, process_refund returns {"isError": true, "content": "Operation failed"}. The agent retries the call three times and then tells the customer "our refund system is having technical difficulties." What is the best fix?
Show answer and explanation
Answer: C — Return structured error metadata such as errorCategory "business", isRetryable false, and a customer-friendly explanation that the order is past the 30-day window, so the agent can explain the policy.
A uniform "Operation failed" hides the kind of failure, so the agent can't tell a policy violation from an outage and wastes retries on an error that will never succeed (task 2.2). Structured metadata (category, isRetryable false, a readable reason) lets it stop retrying and explain the policy correctly. A blanket retry rule (a) still leaves the agent misdescribing the failure and escalates cases it could close itself. A pre-check tool (b) adds a step but leaves every other failure just as opaque. Reporting failure as success with an empty result (d) suppresses the error, and the agent will misread it as a refund that went through or a missing order.
More from this scenario
- During a 20-minute backend outage, lookup_order returned an empty result list, the same…
- You expanded the descriptions of get_customer and lookup_order with input formats…
- To stay within context limits, your system summarizes older turns once a conversation…
- Each lookup_order call returns about 45 fields (warehouse codes, carrier internals, tax…
- A customer says "I'm Maria Lopez, I was double-charged last week." get_customer returns…