A returns service exposes one tool that looks up an order in a warehouse system. Every incoming request is known to be an order enquiry, and an audit of live traffic shows that in 9 per cent of requests the model answers from the conversation text without calling the tool, producing an unverified status. The team requires that every reply be backed by a lookup. Which change enforces that?
- AAdd a firmly worded system-prompt instruction stating that the lookup tool must be called before any order status is given to the customer.
- BEnrich the tool description with a longer account of when the tool applies, so the model recognises more of the enquiries that require a lookup.
- CSet tool_choice so that the first turn is required to use the lookup tool, and continue the loop with the tool result before returning any reply. Correct
- DRetry any request whose reply contains no order status, since a second attempt gives the model another opportunity to invoke the lookup tool.
Why A is wrong: Prompt wording does raise compliance and is often the first thing tried, but it remains advisory, so a measured residual failure rate persists rather than going to zero.
Why B is wrong: Better descriptions genuinely improve selection when several tools compete, but here there is one tool and the problem is skipping it entirely, not choosing between alternatives.
Why C is correct: Correct: the application already knows a lookup is needed on every request, and constraining tool selection makes that a property of the call rather than a hope about the model's judgement.
Why D is wrong: Retrying is a reasonable reliability habit, but the failing replies do contain a status, just an unverified one, so the check would not fire on the cases that matter.