Back to blog

Building Production-Grade AI Agents · Part 11 of 15

Tool Sprawl, Routers, and Specialist Agents

When an agent has forty tools, the answer is rarely “write a better prompt and hope.” Reduce the effective action space.

Chris Eberl

Chris Eberl

Founder • Engineering Leader, GenAI, Data, ML

Production AI AgentsSep 14, 20265 min read
Tool Sprawl, Routers, and Specialist Agents

Tool selection degrades when capabilities overlap, names are vague, or the agent sees many irrelevant actions on every turn. The first fix is interface quality: clear semantic names, precise descriptions, strongly typed schemas, and non-overlapping responsibilities. The second fix is to stop exposing everything at once.

The model’s effective action space should be as small as the current task allows.

Dynamic tool scoping

Some tool selection can be deterministic. If the user is on a Salesforce opportunity page, the application may already know that Salesforce tools are relevant. If the user’s role cannot post to company-wide Slack channels, those tools should never be exposed. Dynamic selection does not have to be an LLM decision.

Semantic routing when context is ambiguous

If the request itself determines the domain, a constrained classifier can return a structured route such as {domain: salesforce}. The classification is probabilistic; code then deterministically exposes the matching capability set. Evaluate that router separately with labeled cases and a confusion matrix.

Do not force multi-intent work into one route

A request like “update the opportunity and tell the team” spans Salesforce and Slack. The architecture should support a structured multi-domain plan rather than forcing the router to choose one winner. Clarification is for genuine ambiguity, not for work that is simply composite.

When specialist agents are justified

Parallel execution is only one reason to split agents. Better reasons include materially different instructions, context, permissions, tools, models, risk profiles, or evaluation criteria. Start with one capable agent; split when specialization creates a real boundary.

Agent-as-tool versus handoff

If a specialist should perform a subtask while the parent retains conversational ownership, use an agent-as-tool pattern. If the specialist should take over the interaction and become the active owner, use a handoff. The distinction is about control and user experience, not just code organization.

PFPLabs takeaways

  • Reduce effective action space. Do not make the model choose among irrelevant tools.
  • Deterministic context can scope tools before any LLM routing.
  • Router ≠ planner. Composite requests need multi-step plans.
  • Split agents for responsibility boundaries, not novelty.
  • Use evals to measure route, tool, and argument accuracy separately. Different failure layers need different fixes.

Read next

Newsletter

New posts, straight from Chris

A short note from me whenever a new article goes live — product engineering, AI workflows, IoT, indie apps, and engineering leadership. No spam, unsubscribe anytime.

By subscribing, you agree to our Privacy Policy. We do not share your email.