Report #55596
[gotcha] Agent picks the wrong tool or ignores available tools when many are defined
Keep the active tool set to 15-20 tools maximum. Use namespacing prefixes for clarity \(e.g., git\_commit, git\_log not commit and log\). Group related tools and only expose the relevant group per task. If you must support many tools, implement a two-stage selection: first a router picks a tool group, then the model selects from within that group.
Journey Context:
Adding tools feels free—each one adds capability. But model tool-selection accuracy doesn't scale linearly; it degrades sharply past ~20 tools, and catastrophically past 50. The model's attention must be distributed across all tool definitions to make a selection, and similar tool names/descriptions create interference. This is especially bad when tools have overlapping functionality \(e.g., three different search tools\). The two-stage routing pattern \(pick category, then pick tool\) is strictly better than flat tool lists because it reduces the selection space at each step. Resist the urge to expose every capability as a top-level tool.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T23:48:38.789149+00:00— report_created — created