Loading...
    • 构建
    • 管理
    • 模型与定价
    • 客户端 SDK
    • API 参考
    Search...
    ⌘K
    入门步骤
    Claude 简介快速入门
    使用 Claude 构建
    功能概览使用 Messages APIClaude API 技能处理停止原因
    模型能力
    扩展思考自适应思考努力程度任务预算(测试版)快速模式(测试版:研究预览)结构化输出引用流式消息批量处理搜索结果流式拒绝多语言支持嵌入
    工具
    概览工具使用原理教程:构建工具调用代理定义工具处理工具调用并行工具使用Tool Runner(SDK)严格工具使用工具使用与提示缓存服务器工具故障排除网页搜索工具网页抓取工具代码执行工具顾问工具记忆工具Bash 工具计算机使用工具文本编辑器工具
    工具基础设施
    工具参考管理工具上下文工具组合工具搜索程序化工具调用细粒度工具流式传输
    上下文管理
    上下文窗口压缩上下文编辑提示缓存Token 计数
    文件处理
    Files APIPDF 支持图像与视觉
    技能
    概览快速入门最佳实践企业级技能API 中的技能
    MCP
    远程 MCP 服务器MCP 连接器
    提示工程
    概览提示最佳实践Console 提示工具
    测试与评估
    定义成功标准并构建评估在 Console 中使用评估工具降低延迟
    加强防护栏
    减少幻觉提高输出一致性防范越狱减少提示泄露
    资源
    术语表
    发布说明
    Claude Platform
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    工具基础设施

    管理工具上下文

    在工具搜索、程序化工具调用、提示缓存和上下文编辑之间选择,以管理上下文膨胀。

    工具定义和累积的 tool_result 块会消耗您的上下文窗口。具有许多工具或许多轮次的长期运行代理可能会在任务完成之前耗尽可用上下文。四种方法在管道的不同位置解决这个问题。

    四种方法

    每种方法针对不同的上下文压力来源。选择与您的令牌流向相匹配的方法。

    方法减少内容适用场景了解更多
    工具搜索预先加载的工具定义大型工具集(20+ 个工具),其中大多数工具不是每次都需要工具搜索工具
    程序化工具调用tool_result 往返可以作为单个脚本执行的工具调用链程序化工具调用
    提示缓存重复工具定义的令牌成本跨多个请求的稳定工具集使用提示缓存的工具使用
    上下文编辑历史记录中的旧 tool_result 块长对话,其中早期结果不再相关上下文编辑

    工具搜索

    工具搜索将工具定义保留在上下文窗口之外,直到 Claude 请求它们。与其预先发送 50 个工具架构,不如发送单个 tool_search 工具,让 Claude 按需发现其余的。这用少量延迟(一个额外的轮次来查找工具)换取基线上下文使用的大幅减少。

    程序化工具调用

    程序化工具调用将一系列工具调用折叠成 Claude 编写的单个代码块,由 Anthropic 的代码执行沙箱运行。与其进行五次 tool_use 和 tool_result 的往返,Claude 发出一个从沙箱内调用所有五个函数的脚本。中间结果永远不会进入对话历史。

    提示缓存

    提示缓存不会减少上下文中的令牌数量,但会减少您在后续请求中为它们支付的费用。如果您的工具定义是稳定的,请缓存一次,然后在数千个请求中重用缓存的前缀。当工具集很大但固定时,这是正确的选择。

    上下文编辑

    上下文编辑从对话历史中删除旧的 tool_result 块,一旦它们完成了目的。长代理循环可能会产生数百个中间结果,这些结果在当时很有用,但现在是累赘。上下文编辑让您可以在不重新启动对话的情况下修剪它们。

    组合方法

    这些方法可以组合使用。长期运行的代理可能会使用工具搜索来保持工具集精简,使用提示缓存来分摊剩余定义的成本,以及使用上下文编辑来修剪陈旧的结果,随着对话的增长。每种方法解决问题的不同部分,因此一起使用它们没有冲突。

    高容量代理的合理起点:

    1. 从第一天起就在您的工具定义上启用提示缓存。缓存写入的成本比基础输入定价高 25%,这在第二个请求命中缓存时就会回本。
    2. 一旦您的工具集增长到大约 20 个工具或您的基线上下文使用变得明显,就添加工具搜索。
    3. 一旦单个对话开始运行足够长的时间,使早期结果变得不相关,就添加上下文编辑。
    4. 如果您注意到重复的小工具调用链可以作为单个批次运行,请考虑程序化工具调用。

    后续步骤

    工具搜索工具

    按需加载工具定义,而不是预先加载。

    程序化工具调用

    将工具调用链折叠成单个可执行脚本。

    Was this page helpful?

    使用提示缓存的工具使用

    跨请求缓存工具定义以降低令牌成本。

    上下文编辑

    从长期运行的对话中修剪陈旧的工具结果。