工具使用(函数调用)
工具使用(也称函数调用)让 Claude 调用由你定义或由 Anthropic 提供的函数。
核验日期
定义
工具使用(也称函数调用)让 Claude 调用由你定义或由 Anthropic 提供的函数。Claude 根据用户的请求和工具的描述来确定何时调用工具。随后它返回一个结构化调用,这个调用由你的应用运行(客户端工具),或由 Anthropic 运行(服务器工具)。
各类工具的区别主要在于代码在哪里运行。对于你自己定义的工具,你编写模式,并由你的应用运行每一次调用。
一图看懂
客户端工具(包括用户定义的工具,以及带有 Anthropic 定义模式的工具,例如 bash 和 text_editor)在你的应用中运行。服务器工具在 Anthropic 的基础设施上运行,你的应用中无处理程序代码。
- 在 get_weather 示例中,第一次请求定义了一个 get_weather 工具。
- Claude 通过调用该工具来回答问题。
- 响应中带有一个 tool_use 块。
- 你的代码运行查询。
- 你的代码运行该操作并送回一个 tool_result。
- 第二次请求把结果放在 tool_result 块中送回。
- 这样 Claude 就可以用答案作出回复。
原文没有明确这些要点的先后顺序,因此按要点列出,不画先后箭头。
工作原理
在默认的 tool_choice 为 auto 时,Claude 在每一轮确定是调用工具还是直接回应。这一界限可以通过你的系统提示来引导。若要要求进行工具调用而不是依赖提示,请设置 tool_choice。
当你使用工具时,API 还会自动为模型加入一段启用工具使用的特殊系统提示。如果没有提供任何工具,那么工具选择为 none 时使用 0 个额外的系统提示 token。当你发送工具使用提示时,与其他 API 请求一样,响应会在报告的用量指标中同时包含输入和输出的 token 数量。
客户端工具的计价与其他 Claude API 请求相同,而服务器端工具可能根据其具体使用情况产生额外费用。对于服务器端工具,另有按用量计费的价格,例如网页搜索按每次执行的搜索收费。
例子
一个最小示例使用服务器工具,即由 Anthropic 为你运行的网页搜索工具;Claude 在 Anthropic 的基础设施上运行搜索,并在同一个响应中返回带引用的结果。若要让 Claude 调用你定义的函数,请传入带有 input_schema 的工具,并在 Claude 返回 tool_use 块时运行该调用。若要省去自己编写这一往返过程,可以使用工具运行器,由 SDK 运行你的工具并自动把结果送回。
对于 Anthropic 模式的客户端工具,Anthropic 发布模式并在其上训练 Claude,而你的应用仍然运行每一次调用并返回 tool_result。记忆工具在你掌控的文件中跨对话存储和检索信息,Bash 工具在保持状态的持久会话中运行 shell 命令,文本编辑器工具查看和修改文本文件以调试、修复和改进代码。计算机使用工具在桌面环境中截取屏幕并控制鼠标和键盘,浏览器使用工具在你自己的浏览器环境中导航、阅读网页并与之交互。
服务器工具中,网页搜索工具搜索知识截止日期之外的信息并附带引用来源,网页获取工具检索指定网页和 PDF 文档的完整内容,代码执行工具在沙盒容器中运行 Python 和 Bash 代码以分析数据并生成文件。工具搜索工具通过按需发现和加载来处理数千个工具,MCP 连接器从 Messages API 连接到远程 MCP 服务器,无需单独的 MCP 客户端。
来源
本页内容整理自以下官方来源,点击可核对原文。
核验日期 ·
本页由 AI 依据上述官方来源整理,并经自动核对,未经本站实测。 发现错误?告诉我们。