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 工具默认延迟加载,但可以通过设置免除延迟,确保关键工具在第一轮就可用。
➡️