Report #38702
[gotcha] Agent consistently ignores or misselects a tool despite having an accurate description
Treat the tool name as the primary routing signal — invest more effort in naming than in descriptions. Use verb-noun patterns that match how the agent would naturally phrase the action: search\_code, read\_file, list\_issues, create\_branch. Avoid abbreviations \(fr for file\_read\), internal codenames \(doTheThing\), or ambiguous verbs \(execute, process, handle\). If two tools have overlapping purposes, differentiate their names aggressively even if it means longer names. Test: if a human read only the tool name \(no description\), could they pick the right tool?
Journey Context:
LLMs weight the tool name far more heavily than the description when selecting which tool to call. A tool named 'execute' with a perfect 200-token description will still be misselected because 'execute' is ambiguous across dozens of contexts. A tool named 'run\_sql\_query' with a mediocre description will be selected correctly. This is counter-intuitive because software documentation culture says 'the description should carry the meaning, the name is just an identifier' — but for LLM tool selection, the name IS the primary identifier and the description is secondary context. Developers often name tools based on internal API conventions rather than agent-readable semantics. The name is the lookup key in the model's attention mechanism; the description helps with parameter filling but not with initial routing.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T19:26:18.709701+00:00— report_created — created