Claude Architect · 课时

每个代理应配置多少个工具

4–5 个最为理想;18 个以上会降低选择可靠性。

第 1 / 4 课13 个步骤

每个代理应配置多少个工具 是 CoddyKit 上的免费 Claude Architect 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Claude Architect 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Claude Architect 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

The Selection Problem

When you give an agent a set of tools, the model has to do something subtle on every turn: read all the tool descriptions and pick the right one for the current step.

This is a selection task. The more options you add, the harder that choice becomes. A focused toolset keeps selection sharp; an overloaded one makes the model hesitate, mis-route, or grab the wrong tool.

This lesson answers a deceptively simple question: how many tools should one agent hold?

The Rule of Thumb

The practical sweet spot is 4-5 tools per agent. At this size the model can reliably reason about which tool fits each step.

As the count climbs, selection reliability degrades. By around 18+ tools on a single agent, the model starts confusing similar options and choosing poorly. More tools does NOT mean more capability — past a point it means less reliable capability.

  • 4-5 tools → optimal selection
  • 18+ tools → degraded selection reliability

A Well-Scoped Agent

Here is a support agent with a tight, role-scoped toolset. Four tools, each with a clear job: verify the customer, look up their order, process a refund, and escalate to a human.

The model never has to wonder which of twenty near-identical tools to call. Each one maps to a distinct intent.

tools = [
    {"name": "get_customer", "description": "...", "input_schema": {...}},
    {"name": "lookup_order", "description": "...", "input_schema": {...}},
    {"name": "process_refund", "description": "...", "input_schema": {...}},
    {"name": "escalate_to_human", "description": "...", "input_schema": {...}},
]

response = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    system="You are a support agent. Verify identity before any refund.",
    tools=tools,
    messages=messages,
)

Descriptions Do the Selecting

An important nuance: the model selects tools primarily from their descriptions, not their names. A good description states the tool's purpose, its return values, input formats with examples, edge cases, and applicability boundaries.

This is why tool count and tool quality interact. Even 5 tools will mis-route if their descriptions overlap or are ambiguous. The more tools you pile on, the more likely two of them sound alike, and the more selection errors you get.

{
    "name": "lookup_order",
    "description": "Retrieve a single order by its order ID. "
        "Input: order_id (string, e.g. 'ORD-10482'). "
        "Returns: items, status, total, and ship date. "
        "Use AFTER get_customer confirms identity. "
        "Does NOT search by email — use lookup_order, not find_orders.",
    "input_schema": {
        "type": "object",
        "properties": {"order_id": {"type": "string"}},
        "required": ["order_id"],
    },
}

What Too Many Tools Looks Like

Imagine cramming an entire department onto one agent: customer tools, order tools, billing tools, inventory tools, shipping tools, analytics tools... twenty-plus entries in one tools array.

Now several of them sound similar — lookup_order, find_orders, get_order_history, search_purchases. The model has to disambiguate on every turn, and its accuracy drops. Too many tools per agent is a recognized anti-pattern, right alongside ambiguous descriptions.

Scope Tools to the Role

The fix is not to make descriptions ever longer — it is to scope tools to the role. Ask: what is THIS agent's job, and what is the minimum set of tools it needs to do it?

A refund agent needs identity, order, refund, and escalation tools. It does not need inventory forecasting or marketing analytics. Trimming irrelevant tools removes distractors and sharpens every remaining selection.

Split With Multi-Agent Architecture

When a task genuinely needs many capabilities, you do not put them all on one agent. You use a hub-and-spoke multi-agent design: a coordinator decomposes the work and delegates to specialized subagents, each with its own narrow toolset.

Twenty tools spread across four subagents (5 each) selects far more reliably than twenty tools on one agent. Remember: subagents do NOT inherit the coordinator's history, so each subagent prompt must carry its own context explicitly.

research_agent = AgentDefinition(
    name="research_agent",
    description="Searches sources and extracts findings.",
    system_prompt="You gather and cite evidence for a sub-question.",
    allowed_tools=["web_search", "fetch_page", "extract_quote"],
)

verify_agent = AgentDefinition(
    name="verify_agent",
    description="Cross-checks claims against sources.",
    system_prompt="You validate claims and flag conflicts.",
    allowed_tools=["fetch_page", "compare_sources", "flag_conflict"],
)

Least Privilege Per Subagent

Splitting tools across subagents brings a bonus: least privilege. Each AgentDefinition declares only the allowed_tools it actually needs.

A read-only research subagent never gets a process_refund or delete tool, so it cannot misfire one. Smaller, role-scoped toolsets are both more reliable (better selection) and more secure (narrower blast radius). One coordinator rule to remember: the coordinator's allowedTools must include "Task" so it can delegate.

Tools vs. Resources in MCP

Not everything an agent needs has to be a Tool. In MCP, server primitives split into three kinds:

  • Tools — actions the model invokes
  • Resources — read-only data/context like schemas or catalogs
  • Prompts — reusable templates

If the model just needs to read a schema or a product catalog, expose it as a Resource, not a Tool. That keeps your tools array lean and reserved for genuine actions — another lever for staying near 4-5 actionable tools.

Built-in Tools Are Already Scoped

Claude Code's built-in toolset is a good model of disciplined scoping. Each tool has one crisp job:

  • Glob — find files by pattern (e.g. **/*.test.tsx)
  • Grep — search file contents
  • Read / Write / Edit — load, create, precisely change files
  • Bash — run shell commands

None of them overlap. The model composes them in an incremental flow — Grep entry points, Read files, Grep usages, Read consumers — rather than choosing among redundant options.

# Incremental investigation with non-overlapping tools
Grep "createOrder"        # find entry points
Read src/orders/api.ts    # load the file
Grep "api.createOrder"     # find usages
Read src/checkout/page.ts  # load consumers

A Practical Allocation Checklist

Before shipping an agent, run this check:

  • Is the toolset near 4-5 tools, and well under 18?
  • Does each tool map to a distinct intent with a non-overlapping description?
  • Are read-only needs modeled as Resources, not Tools?
  • If you need more capabilities, can you split into subagents with least-privilege toolsets?

If you are stretching one agent past a dozen tools, that is the signal to decompose — not to write longer descriptions.

Quick Check: Tool Allocation

Apply the rule to a real design decision.

Recap: How Many Tools Per Agent

Key takeaways:

  • 4-5 tools per agent is optimal; reliability degrades as you climb, and 18+ tools noticeably hurts selection.
  • The model selects from descriptions, so overlapping or ambiguous tools cause misrouting even at small counts.
  • Scope tools to the role — trim distractors instead of writing longer descriptions.
  • Need more capability? Split into subagents (hub-and-spoke) with least-privilege toolsets; pass context explicitly since subagents don't inherit history.
  • Model read-only needs as MCP Resources, not Tools, to keep the tools array lean.
免费开始

用 AI 导师学习 Python — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
26
课程
104

常见问题解答

「每个代理应配置多少个工具」课时是免费的吗?

是的 — 「每个代理应配置多少个工具」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Claude Architect 课程的其余内容,请升级到 CoddyKit PRO。 Claude Architect 课程共包含 4 节课。

「每个代理应配置多少个工具」这节课中我会学到什么?

4–5 个最为理想;18 个以上会降低选择可靠性。 你通过在浏览器中直接运行的动手代码来练习 Claude Architect,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Claude Architect 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Claude Architect 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「每个代理应配置多少个工具」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Claude Architect 课中编写并运行代码吗?

能。每节 Claude Architect 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 每个代理应配置多少个工具
  2. tool_choice:auto / any / forced
  3. Claude Code 内置工具
  4. 渐进式调查模式
← 返回 Claude Architect