Loading...
    • 构建
    • 管理
    • 模型与定价
    • 客户端 SDK
    • API 参考
    Search...
    ⌘K
    入门步骤
    Claude 简介快速入门
    使用 Claude 构建
    功能概览使用 Messages API处理停止原因
    模型能力
    扩展思考自适应思考努力程度快速模式(测试版:研究预览)结构化输出引用流式消息批量处理搜索结果流式拒绝多语言支持嵌入
    工具
    概览工具使用原理网页搜索工具网页抓取工具代码执行工具记忆工具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
    • Catalog
    • 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
    • Catalog
    • 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
    工具

    工具使用的工作原理

    了解工具使用循环、工具在哪里执行,以及何时应使用工具而非纯文本。

    本页面介绍工具使用背后的概念:工具在哪里运行、智能体循环如何工作,以及何时使用工具是正确的方法。如需实践指导,请从教程或实现指南开始。

    工具使用契约

    工具使用是您的应用程序与模型之间的契约。您指定哪些操作可用以及其输入和输出的形态;Claude 决定何时以及如何调用它们。模型本身从不执行任何操作。它发出一个结构化请求,您的代码(或 Anthropic 的服务器)运行该操作,结果再流回对话中。

    这一契约使模型的行为不再像文本生成器,而更像您调用的函数。具有传统 API 经验的工程师可以像集成任何其他类型化接口一样集成工具使用:定义模式、处理回调、返回结果。不同之处在于,另一端的调用者是一个语言模型,它根据对话内容选择调用哪个函数。

    工具在哪里运行

    工具之间最主要的区别轴是代码在哪里执行。每个工具都属于三类之一,而所属类别决定了您的应用程序需要负责什么。

    用户定义工具(客户端执行)

    您编写模式,您执行代码,您返回结果。这是主要场景:绝大多数工具使用流量都是用户定义工具调用特定于应用程序的逻辑。

    当 Claude 决定使用您的某个工具时,API 响应包含一个 tool_use 块,其中包含工具名称和参数的 JSON 对象。您的应用程序提取这些参数,运行操作(数据库查询、HTTP 调用、文件写入,或工具所做的任何事情),并在下一个请求的 tool_result 块中发送输出。Claude 永远不会看到您的实现;它只看到您提供的模式和您返回的结果。

    Anthropic 模式工具(客户端执行)

    对于少数常见操作(运行 shell 命令、编辑文件、控制浏览器、管理便签内存),Anthropic 发布工具模式,您的应用程序负责执行。此类别中的工具包括 bash、text_editor、computer 和 memory。

    执行模型与用户定义工具相同:响应包含一个 tool_use 块,您的代码运行操作,然后您发送回 tool_result。使用 Anthropic 模式工具而不是定义自己的等效工具的原因是,这些模式是经过训练内置的。Claude 已在使用这些精确工具签名的数千个成功轨迹上进行了优化,因此它调用这些工具比调用执行相同功能的自定义工具更可靠,从错误中恢复也更优雅。该模式是模型已经期望的接口。

    服务器执行工具

    对于 web_search、web_fetch、code_execution 和 tool_search,Anthropic 运行代码。您在请求中启用该工具,服务器处理其他所有事情。您永远不需要为这些工具构建 tool_result 块,因为服务器端循环执行操作并在响应到达您之前将输出反馈给模型。

    您收到的响应包含 server_tool_use 块,显示运行了什么以及返回了什么,但当您看到它们时,执行已经完成。您的应用程序的工作是启用工具并读取最终答案,而不是参与执行循环。

    智能体循环(客户端工具)

    客户端执行工具(包括用户定义工具和 Anthropic 模式工具)需要您的应用程序驱动一个循环。模型无法运行您的代码,因此每次工具调用都是一次往返:模型请求,您执行,您报告结果,模型继续。

    标准形式是一个以 stop_reason 为键的 while 循环:

    1. 发送包含您的 tools 数组和用户消息的请求。
    2. Claude 以 stop_reason: "tool_use" 和一个或多个 tool_use 块响应。
    3. 执行每个工具。将输出格式化为 tool_result 块。
    4. 发送一个新请求,包含原始消息、助手的响应以及带有 tool_result 块的用户消息。
    5. 当 stop_reason 为 "tool_use" 时,从步骤 2 重复。

    实际上,这可以理解为:当 stop_reason == "tool_use" 时,执行工具并继续对话。循环在任何其他停止原因("end_turn"、"max_tokens"、"stop_sequence" 或 "refusal")时退出,这意味着 Claude 已经产生了最终答案,或者因为您的应用程序应该处理的其他原因而停止。

    有关构建请求、处理并行工具调用和格式化结果的机制,请参阅处理工具调用。

    服务器端循环

    服务器执行工具在 Anthropic 的基础设施内运行自己的循环。来自您应用程序的单个请求可能会在响应返回之前触发多次网络搜索或代码执行。模型搜索、读取结果、决定再次搜索,并迭代直到获得所需内容,整个过程无需您的应用程序参与。

    此内部循环有迭代限制。如果模型在达到上限时仍在迭代,响应将以 stop_reason: "pause_turn" 而非 "end_turn" 返回。暂停的轮次意味着工作尚未完成;重新发送对话(包括暂停的响应)以让模型从中断处继续。有关继续模式,请参阅服务器工具。

    何时使用工具(以及何时不使用)

    当任务需要模型仅凭文本无法完成的事情时,工具使用是合适的:

    • 有副作用的操作。 发送电子邮件、写入文件、更新记录。模型可以描述这些操作,但只有工具才能执行它们。
    • 新鲜或外部数据。 当前价格、今天的天气、数据库内容。训练数据之外或特定于您系统的任何内容都需要工具来获取。
    • 结构化、保证形态的输出。 当您需要具有特定字段的 JSON 对象而不是恰好包含信息的散文时,工具模式强制执行形态。
    • 调用现有系统。 数据库、内部 API、文件系统。工具使用是自然语言请求与实现它们的系统之间的桥梁。

    您应该使用工具的标志:如果您正在编写正则表达式来从模型输出中提取决策,那么该决策本应是一次工具调用。解析自由格式文本以恢复结构化意图,是结构应该属于模式的信号。

    工具使用不适合的情况:

    • 模型可以仅凭训练数据回答。摘要、翻译和通用知识问题不需要工具往返。
    • 交互是一次性问答,没有副作用。如果没有什么需要执行的,工具也就无事可做。
    • 工具调用延迟将主导一个微不足道的响应。每次工具调用至少需要一次额外的往返;对于轻量级任务,开销可能超过工作本身。

    在方法之间选择

    方法何时使用预期结果了解更多
    用户定义客户端工具自定义业务逻辑、内部 API、专有数据您处理执行和智能体循环定义工具
    Anthropic 模式客户端工具标准开发操作(bash、文件编辑、浏览器控制)您处理执行;Claude 可靠地调用工具,因为模式是经过训练内置的工具参考
    服务器执行工具网络搜索、代码沙箱、网络获取Anthropic 处理执行;您直接获得结果服务器工具

    后续步骤

    教程:构建使用工具的智能体

    从单个工具调用到生产环境,逐步构建智能体。

    定义工具

    模式规范、描述和 tool_choice。

    工具参考

    Anthropic 提供的工具目录。

    Was this page helpful?

    • Anthropic 模式工具(客户端执行)