Report #95652
[frontier] Adding more tools to an agent degrades tool selection accuracy and bloats context
Decompose monolithic agents into focused single-purpose agents, then wrap each as a tool for a coordinating agent. The coordinator sees 'code\_review\_tool', 'test\_writer\_tool', 'deploy\_tool' — not 30 individual tools. Each sub-agent has its own focused system prompt, context window, and narrow tool set. Use structured output schemas to define the interface between coordinator and sub-agents.
Journey Context:
The naive approach to building more capable agents is to add more tools. But this hits diminishing returns fast: tool selection accuracy degrades as the tool list grows, context windows fill with tool descriptions, and the system prompt becomes incoherent trying to cover too many domains. The emerging pattern is agent-as-tool: wrap a focused agent \(with its own prompt, context, and tools\) as a single tool exposed to a coordinator. The coordinator's tool list stays small and manageable. Each sub-agent is an expert in its domain. This is analogous to microservices vs monoliths. The tradeoffs: \(1\) Each sub-agent call is a full LLM invocation with its own context, increasing token cost, \(2\) Sub-agents can't share context directly — the coordinator must pass relevant context, \(3\) Debugging is harder across agent boundaries. But the reliability gains are substantial: focused agents with 3-5 tools dramatically outperform generalist agents with 30\+ tools on tool selection accuracy. This pattern is appearing in LangGraph subgraphs, CrewAI agent delegation, and AutoGen nested conversations.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T19:08:03.458694+00:00— report_created — created