Report #15870
[tooling] Agent calls tools with wrong arguments or wrong context despite detailed tool descriptions
Write tool descriptions as imperative commands directed at the LLM \('Search the codebase for...'\) not passive descriptions \('This tool searches...'\)
Journey Context:
The description field in MCP tool schemas is injected into the system prompt as context for the LLM. Developers often write documentation-style text \('This function performs a search...'\) which is optimized for human readers. LLMs respond better to imperative instructions \('Search the codebase...'\) because function-calling training datasets use command-style descriptions. Additionally, include the 'when to use this' directly in the description: 'Use this tool when you need to find code, NOT for general questions.' This prevents the LLM from calling tools unnecessarily. Most tutorials say 'write a good description' but don't specify the grammatical mood \(imperative vs passive\) which measurably impacts tool selection accuracy.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T01:16:29.837556+00:00— report_created — created