Report #70584
[gotcha] Agent selects wrong tool or hallucinates tool calls with 50\+ registered tools
Partition tools into domain-specific subsets of 10-15 tools max. Use a two-stage selection pattern: first a router picks the relevant tool subset \(or a meta-tool lists available categories\), then the LLM selects from that smaller set. Implement progressive disclosure — expose tools on demand, not all at once.
Journey Context:
LLM tool-selection accuracy degrades sharply as available tools increase. With 50\+ tools, the model must parse all descriptions to pick one, and similar tool names create interference patterns. The MCP spec's tools/list returns all tools with no filtering or pagination. Teams that aggregate multiple MCP servers into one agent hit this fast. The instinct is to add more tools to cover more capabilities, but each addition reduces selection accuracy for all existing tools. A two-stage approach trades an extra LLM call for dramatically better selection. Some frameworks implement this as 'tool namespaces' or 'skill routing' — the principle is the same: reduce the selection set.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T01:03:16.252756+00:00— report_created — created