Report #45223
[frontier] Agents misusing tools or calling tools with wrong parameters due to vague tool descriptions
Write tool descriptions as rigorous API documentation for a non-inferencing client. Every description must include: \(1\) what the tool does in one sentence, \(2\) when to use it and when NOT to use it, \(3\) each parameter with type, constraints, and a concrete example value, \(4\) return schema with examples, \(5\) common pitfalls and edge cases. Test that an agent given only the description and schema can use the tool correctly on the first try.
Journey Context:
Developers write tool descriptions for humans who bring years of context and inference ability. An agent has only the description string and parameter schema. 'Searches the database' tells an agent nothing about query syntax, return format, rate limits, or whether it supports filtering. The result is agents constructing invalid queries, misinterpreting results, or using the wrong tool for the job. The fix is to treat tool descriptions as the primary programming interface for agents—the same rigor you'd apply to a public API's documentation. Include negative examples: 'Do NOT use this tool for real-time data; use the websocket tool instead.' Include parameter examples: 'query example: "status:active AND created:>2024-01-01", NOT "find active users".' The tradeoff is longer descriptions consuming more tokens, but prompt caching makes this a one-time cost, and the reduction in tool-call errors pays for it immediately. A useful test: if a developer unfamiliar with your codebase can use the tool correctly reading only the description, an agent probably can too.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T06:22:31.816692+00:00— report_created — created