Question 47
An Agent SDK support agent handles returns, billing disputes and account issues through MCP tools like get_customer, lookup_order, process_refund and escalate_to_human. It aims to resolve most cases on first contact — and to know exactly when to hand off to a human.
Read the full scenario lessonYou are building a customer support resolution agent using the Claude Agent SDK. The agent handles high-ambiguity requests like returns, billing disputes, and account issues. It has access to your backend systems through custom Model Context Protocol (MCP) tools ( get_customer, lookup_order , process_refund , escalate_to_human ). Your target is 80%+ first-contact resolution while knowing when to escalate.
After expanding the agent’s MCP tools with delivery-specific capabilities ( check_delivery_status , contact_driver , issue_credit , apply_promo_code , update_delivery_address , reschedule delivery ), the total tool count has grown from 4 to 10. Your evaluation suite shows tool selection accuracy has dropped from 88% to 71%. Log analysis reveals the majority of errors involve the agent selecting between semantically overlapping tools — calling issue_credit when process_refund was correct, and calling check_delivery_status when lookup_order already returns the needed data. Which approach structurally eliminates the semantic overlap identified in the logs as the error source?