Skip to content
Tools and function calling

02.05 · Concept

Too many tools

Explain why tool choice degrades with count, and what to do instead.

Tool choice gets worse as the active tool list grows, because the model must compare more overlapping names, descriptions, and schemas inside the same decision. Treat tool selection as routing: classify the request first, expose a small relevant set, remove near-duplicates, and test whether realistic prompts pick the intended tool.

What this lesson answers

  • why do agents pick the wrong tool
  • how many tools should an agent see
  • how to route agents to relevant tools

Notes

An LLM choosing a tool is not like a program calling a known function by name. It is more like a person reading a menu of possible actions and deciding which one matches the current task. As the menu gets longer, more tool names and descriptions overlap, more irrelevant options distract the model, and the chance of picking a plausible but wrong tool rises. The model has limited attention, and every extra tool consumes part of the prompt budget and decision space.

A good mental model is routing. Do not hand the model one giant toolbox if the task only needs three tools.

Common questions

Why does adding more tools make an agent less reliable?
More tools increase the number of plausible choices the model must compare. Similar names, broad descriptions, and overlapping responsibilities create false matches. The model may choose something that sounds relevant but behaves differently. Reliability depends on choosing the right action, not merely having the action somewhere in the available list.
What should I do instead of giving an agent every tool?
Use a routing step before tool selection. Classify the request into a product area, workflow, or intent, then expose only the tools needed for that path. Keep names specific, descriptions short, and schemas aligned with the language users actually use. The model should face a small, meaningful choice.
How do I know whether two tools should be merged?
Merge or separate tools based on whether the model can reliably distinguish when to use each one. If the difference depends on subtle internal rules, hidden state, or near-identical descriptions, the split is probably hurting selection. Either combine them behind one clearer interface or add an explicit router that makes the distinction.