passdrill
AI & LLM Engineering · AI Agents & Tool Use · Card 011/012 hard

An agent has been given exactly one tool, `send_email`, whose schema requires a `to` field (a string) and a `subject` field (a string). During a run, the model's output requests a tool named `send_email_and_delete_drafts` with an argument object containing only `recipient`. Neither the tool name nor the argument name matches anything the calling application defined. What should the calling application do?

  1. Execute the request against the closest matching real tool it can guess, since refusing to act on an almost-matching request would make the agent unusably rigid
  2. Treat the mismatch as a formatting preference and silently rename the fields to match the defined schema before running the real `send_email` tool
  3. Assume the user must have wanted drafts deleted as well, and extend the real `send_email` tool's behavior at runtime to also delete drafts
  4. Reject the request without executing anything, since it does not match any tool name or argument schema the application actually defined, and return an error observation to the model so it can retry with a request that matches an available tool
Next card → Shuffle