Report #71068
[gotcha] Agent selects the wrong tool when many tools are available — especially similarly-named ones
Keep the active tool set under 20. Use namespaced, descriptive tool names \(e.g., \`github\_issue\_create\` not \`create\`\). Implement a two-stage routing layer: first a classifier or meta-tool selects the relevant tool domain, then the agent picks the specific tool from that small subset.
Journey Context:
LLM tool-selection accuracy degrades non-linearly with tool count. Research and production experience both show significant drops beyond ~20 tools. The degradation is worse for tools with similar names or overlapping descriptions — the model's attention is diluted across all definitions. People try to fix this with better descriptions, but that increases context bloat, worsening the original problem. The correct approach is structural: reduce the choice set at any given step. Two-stage routing \(domain then tool\) keeps each selection step tractable.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T01:52:11.516051+00:00— report_created — created