Claude Code 的工具按需加载

💡 原文中文,约6500字,阅读约需16分钟。
📝

内容提要

Claude Code 采用懒加载机制优化工具使用,减少不必要的 token 消耗。通过延迟加载不常用工具,用户仅在需要时加载完整工具定义,从而节省资源。工具分为常驻和延迟两类,使用 ToolSearch 进行查询,确保对话中只发送必要的工具,提升效率。

🎯

关键要点

  • Claude Code 注册了超过 40 个工具,但大多数请求只使用 3-4 个工具。
  • 采用懒加载机制,延迟加载不常用工具,减少 token 消耗。
  • 工具分为常驻工具和延迟工具,常驻工具在每次 API 请求中发送完整 schema,延迟工具仅发送名称。
  • ToolSearch 是延迟加载的核心工具,支持精确选择和关键词搜索。
  • 延迟工具在 API 请求中带有 defer_loading: true 字段,API 服务端不会展示其完整 schema。
  • 一旦工具被发现,它在后续请求中保持可用,确保对话中只发送必要的工具子集。
  • 延迟加载的行为由 ENABLE_TOOL_SEARCH 环境变量控制,支持三种模式:总是延迟、自动、从不延迟。
  • 压缩对话历史时,系统会保留已发现工具的名称,确保模型对可用工具的认知不受影响。
  • MCP 工具默认延迟加载,但可以通过设置免除延迟,确保关键工具在第一轮就可用。
  • 延迟加载机制有效节省了 token 消耗,提高了系统的效率。

延伸问答

Claude Code 的懒加载机制是如何工作的?

Claude Code 通过延迟加载不常用工具,仅在需要时加载完整工具定义,从而减少 token 消耗。

Claude Code 中的工具分为哪两类?

工具分为常驻工具和延迟工具,常驻工具每次请求发送完整 schema,延迟工具仅发送名称。

ToolSearch 在 Claude Code 中的作用是什么?

ToolSearch 是延迟加载的核心工具,支持精确选择和关键词搜索,帮助用户发现所需工具。

如何控制延迟加载的行为?

延迟加载的行为由 ENABLE_TOOL_SEARCH 环境变量控制,支持总是延迟、自动和从不延迟三种模式。

延迟加载机制对 token 消耗有什么影响?

延迟加载机制有效节省了 token 消耗,提高了系统的效率,减少了不必要的开销。

MCP 工具在 Claude Code 中的处理方式是什么?

MCP 工具默认延迟加载,但可以通过设置免除延迟,确保关键工具在第一轮就可用。

➡️

继续阅读