On the Customer Support Resolution Agent, a returns contact arrives in which the customer says only that the trainers arrived damaged and they want their money back. The lookup_order tool returns three delivered orders for that customer that each contain trainers, at 89.00, 89.00 and 134.00, placed in three consecutive months. The agent selects the most recent of the three and calls process_refund against it. A review of 200 contacts with more than one matching order finds the wrong order refunded in 27 of them, and every one of those calls passed schema validation cleanly. Which change most effectively addresses this?
- AReturn every matching order from lookup_order together with the attributes that tell them apart, and require the agent to put a disambiguating question to the customer naming those attributes, with a deterministic check blocking process_refund while more than one candidate order remains unresolved. Correct
- BTighten the process_refund input schema so that the amount must equal the order total exactly and the order identifier must match the order pattern, rejecting any call whose amount and order do not agree with one another.
- CState in the project CLAUDE.md that when several orders match the customer's description the agent should always refund the most recent one, so that the behaviour is consistent and auditable across every session.
- DHave the agent retry lookup_order with a narrower filter restricted to orders flagged as damaged on delivery, so that the candidate set shrinks to one before any refund decision is taken later in the same session.
Why A is correct: Correct because the missing element is a fact only the customer holds, so the fix is to surface the competing candidates, ask for the one detail that separates them, and prevent a payment while the ambiguity is still open.
Why B is wrong: Tempting because stricter validation feels like the natural guard on a payment tool, but all 27 faulty calls were internally consistent and already passed validation: a schema constrains the shape of the arguments and cannot know which order the customer meant.
Why C is wrong: Tempting because it makes the behaviour predictable and reviewable, but it standardises a guess rather than resolving it, so the same 27 contacts would be refunded against the wrong order in exactly the same way, only now by written policy.
Why D is wrong: Tempting because a narrower query often does reduce a candidate set, but the damage was reported by the customer in conversation and is not recorded against the orders, so a repeated call cannot recover a fact the source never held.