Report #10301
[tooling] Agent selects wrong tool or ignores tools due to verbose/vague descriptions
Write tool descriptions as imperative commands under 120 characters: "\[Verb\] \[specific object\] to/from \[source\] and return \[format\]". Example: "Query the Postgres users table by email prefix and return matching IDs as JSON array". Never use "This tool is used to..." filler. Set \`additionalProperties: false\` in inputSchema to prevent hallucinated parameters.
Journey Context:
LLMs attend to tool descriptions like system prompts. Verbose descriptions \(300\+ tokens\) waste context window and dilute signal; vague one-liners \('Manages data'\) force the model to guess. The imperative pattern comes from OpenAI function-calling optimization studies showing verb-first descriptions reduce tool selection errors by 40%. Many MCP examples use passive voice \('The function that handles...'\) which performs worse in ablation studies. The \`additionalProperties: false\` constraint is critical because without it, models hallucinate parameters like 'limit' or 'filter' that aren't in the schema, causing validation errors.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T10:17:24.689201+00:00— report_created — created