本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
工具使用
使用 Anthropic Claude 3 模型,您可以指定模型可以用来回复消息的工具。例如,您可以指定一种工具来获取电台热门歌曲。如果用户传递消息 WZPZ 上最受欢迎的歌曲是什么? ,模型确定您指定的工具可以帮助回答问题。在响应中,模型将请求您代表其运行该工具。然后,您运行该工具并将工具结果传递给模型,然后模型会生成对原始消息的响应。有关更多信息,请参阅 Anthropic Claude 文档中的工具使用(函数调用)
提示
我们建议您使用 Converse API 将工具的使用集成到您的应用程序中。有关更多信息,请参阅 使用工具完成 Amazon Bedrock 模型响应。
您可以在 tools
字段中指定想供模型使用的工具。以下示例展示了一种用于获取电台热门歌曲的工具。
[ { "name": "top_song", "description": "Get the most popular song played on a radio station.", "input_schema": { "type": "object", "properties": { "sign": { "type": "string", "description": "The call sign for the radio station for which you want the most popular song. Example calls signs are WZPZ and WKRP." } }, "required": [ "sign" ] } } ]
当模型需要工具来生成对消息的响应时,它会在消息 content
字段中返回有关所请求工具的信息以及对该工具的输入。它还会将响应的停止原因设置为 tool_use
。
{ "id": "msg_bdrk_01USsY5m3XRUF4FCppHP8KBx", "type": "message", "role": "assistant", "model": "claude-3-sonnet-20240229", "stop_sequence": null, "usage": { "input_tokens": 375, "output_tokens": 36 }, "content": [ { "type": "tool_use", "id": "toolu_bdrk_01SnXQc6YVWD8Dom5jz7KhHy", "name": "top_song", "input": { "sign": "WZPZ" } } ], "stop_reason": "tool_use" }
在代码中,您代表工具调用该工具。然后,您在用户消息中将工具结果 (tool_result
) 传递给模型。
{ "role": "user", "content": [ { "type": "tool_result", "tool_use_id": "toolu_bdrk_01SnXQc6YVWD8Dom5jz7KhHy", "content": "Elemental Hotel" } ] }
在其响应中,模型使用工具结果为原始消息生成响应。
{ "id": "msg_bdrk_012AaqvTiKuUSc6WadhUkDLP", "type": "message", "role": "assistant", "model": "claude-3-sonnet-20240229", "content": [ { "type": "text", "text": "According to the tool, the most popular song played on radio station WZPZ is \"Elemental Hotel\"." } ], "stop_reason": "end_turn" }
计算机使用(测试版)
计算机使用是 Claude 3.5 Sonnet v2、Claude 3.7 Sonnet、Claude Sonnet 4和中提供的AnthropicClaude模型功能(测试版)。Claude Opus 4使用计算机使用时,Claude 可以帮助您通过基本的 GUI 操作自动执行任务。
警告
根据服务条款的定义,计算机使用功能作为 “测试版服务” 提供给 AWS 您。它受您的协议和 AWS 服务条款 AWS 以及适用的 EULA 范本的约束。请注意,计算机使用 API 会带来与标准 API 功能或聊天界面不同的独特风险。使用计算机使用 API 与互联网进行交互时,这些风险会更加明显。为了最大限度地降低风险,请考虑采取如下预防措施:
-
在具有最低权限的专用虚拟机或容器中操作计算机使用功能,以防止直接的系统攻击或事故。
-
避免授予计算机使用 API 访问敏感账户或数据的权限,以防止信息被盗。
-
将计算机使用 API 的互联网访问权限限制在必需的域内,以减少接触恶意内容。
-
请人工随时关注敏感任务(例如做出可能导致实际后果的决策)和任何需要肯定同意的操作(例如接受 Cookie、执行金融交易或同意服务条款),以确保进行适当的监督。
您允许 Claude 查看或访问的任何内容都可能覆盖指令或导致 Claude 犯错或执行意外操作。必须采取适当的预防措施,例如将 Claude 与敏感数据和操作隔离,包括避免与提示注入相关的风险。在启用或请求必要的权限以在您自己的产品中启用计算机使用功能之前,请告知终端用户任何相关风险,并酌情征得他们的同意。
计算机使用 API 提供了多种预定义的计算机使用工具供您使用。然后,您可以根据您的请求创建提示,例如“向 Ben 发送一封包含我上次会议笔记的电子邮件”和屏幕截图(如果需要)。响应包含 JSON 格式的 tool_use
操作列表(例如,scroll_down、left_button_press、screenshot)。您的代码运行计算机操作并向 Claude 提供显示输出的屏幕截图(如果需要)。
自 Claude 3.5 v2 版本发布以来,tools 参数已更新为接受多态工具类型;添加了一个tool.type
属性来区分它们。 type
是可选的;如果省略,则假定该工具为自定义工具(以前是唯一支持的工具类型)。要访问计算机使用,必须使用带有相应枚举的anthropic_beta
参数,其值取决于所使用的模型版本。有关更多信息,请参阅下表。
只有使用此参数和枚举发出的请求才能使用计算机使用工具。可以按如下方式指定此参数:"anthropic_beta":
["computer-use-2025-01-24"]
。
模型 | 测试版标题 |
---|---|
Claude 3.7 Sonnet、Claude Sonnet 4 和 Claude Opus 4 | computer-use-2025-01-24 |
Claude 3.5 Sonnet v2 | 计算机使用-2024-10-22 |
有关更多信息,请参阅 Anthropic 文档中的计算机使用(测试版)
以下是一个示例响应,它假定请求包含带有 Firefox 图标的桌面屏幕截图。
{ "id": "msg_123", "type": "message", "role": "assistant", "model": "anthropic.claude-3-5-sonnet-20241022-v2:0", "content": [ { "type": "text", "text": "I see the Firefox icon. Let me click on it and then navigate to a weather website." }, { "type": "tool_use", "id": "toolu_123", "name": "computer", "input": { "action": "mouse_move", "coordinate": [ 708, 736 ] } }, { "type": "tool_use", "id": "toolu_234", "name": "computer", "input": { "action": "left_click" } } ], "stop_reason": "tool_use", "stop_sequence": null, "usage": { "input_tokens": 3391, "output_tokens": 132 } }
Anthropic定义的工具
Anthropic提供了一组工具,使某些Claude型号能够有效地使用计算机。指定Anthropic已定义的工具时,description
和tool_schema
字段不是必需的,也不允许使用和字段。 Anthropic定义的工具由定义Anthropic,但您必须显式评估工具的结果并将其返回tool_results
到Claude。与任何工具一样,模型不会自动执行该工具。每个Anthropic定义的工具都有针对特定型号进行了优化的版本Claude 3.5 Sonnet(新增),并且Claude 3.7 Sonnet:
模型 |
工具 |
备注 |
---|---|---|
Claude Sonnet 4 和 Claude Opus 4 |
|
更新现有 |
Claude 3.7 Sonnet |
|
包括用于更精确控制的新动作 与 20241022 版本相同的功能 与 20241022 版本相同的功能 |
Claude 3.5 Sonnet v2 |
|
该type
字段用于验证目的标识工具及其参数,该name
字段是显示给模型的工具名称。
如果要提示模型使用其中一个工具,则可以在name
字段中明确引用该工具。该name
字段在工具列表中必须是唯一的;您不能在同name
一 API 调用中使用与Anthropic已定义工具相同的工具来定义工具。
使用工具的成本注意事项
工具使用请求的定价基于以下因素:
-
发送到模型的输入令牌总数(包括在 tools 参数中)。
-
生成的输出令牌数量。
工具的价格与所有其他 Claude API 请求相同,但每个请求都包含额外的令牌。使用工具时获得的额外代币来自以下内容:
-
API 请求中的
tools
参数。例如,工具名称、描述和架构。 -
API 请求和响应中的任何
tool_use
内容块。 -
API 请求中的任何
tool_result
内容块。
当您使用工具时,Anthropic模型会自动包含允许使用工具的特殊系统提示。下表列出了每种型号所需的工具使用令牌数量。此表不包括前面描述的其他代币。请注意,此表假设至少提供了一种工具。如果未提供任何工具,则选择 “无” 的工具将额外使用 0 个系统提示标记。
模型 |
工具选择 |
工具使用系统提示符计数 |
---|---|---|
Claude Opus 4 |
|
346 个代币 313 个代币 |
Claude Sonnet 4 |
|
346 个代币 313 个代币 |
Claude 3.7 Sonnet |
|
346 个代币 313 个代币 |
Claude 3.5 Sonnet v2 |
|
346 个代币 313 个代币 |
Claude 3.5 Sonnet |
|
294 个代币 261 个代币 |
Claude 3 Opus |
|
530 个代币 281 个代币 |
Claude 3 Sonnet |
|
159 个代币 235 个代币 |
Claude 3 Haiku |
|
264 个代币 340 个代币 |