本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
工具使用
对于AnthropicClaude模型,您可以指定模型可以用来回复消息的工具。例如,您可以指定一种工具来获取电台热门歌曲。如果用户传递消息 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 Sonnet 4、和 Claude Opus 4 中提供的AnthropicClaude模型功能。通过精细的工具流式传输,Claude开发人员无需缓冲或 JSON 验证即可流式传输工具使用参数,从而减少开始接收大型参数的延迟。
注意
使用精细的工具流式传输时,您可能会收到无效或部分的 JSON 输入。请务必在代码中考虑到这些边缘情况。
要使用此功能,只需在工具使用请求中fine-grained-tool-streaming-2025-05-14
添加标题即可。
以下是如何指定精细工具流媒体标题的示例:
{ "anthropic_version": "bedrock-2023-05-31", "max_tokens": 1024, "anthropic_beta": ["fine-grained-tool-streaming-2025-05-14"], "messages": [ { "role": "user", "content": "Can you write a long poem and make a file called poem.txt?" } ], "tools": [ { "name": "make_file", "description": "Write text to a file", "input_schema": { "type": "object", "properties": { "filename": { "type": "string", "description": "The filename to write text to" }, "lines_of_text": { "type": "array", "description": "An array of lines of text to write to the file" } }, "required": [ "filename", "lines_of_text" ] } } ] }
在此示例中,精细的工具流使Claude能够将一首长诗的台词流式传输到工具调用中,make_file
而无需缓冲以验证lines_of_text
参数是否为有效的 JSON。这意味着你可以在参数流到达时看到它,而不必等待整个参数进行缓冲和验证。
通过精细的工具流式传输,工具使用块开始流式传输的速度更快,而且通常更长,包含的分字数也更少。这是由于分块行为的差异造成的。
例如,如果没有精细的流媒体(延迟 15 秒):
Chunk 1: '{"' Chunk 2: 'query": "Ty' Chunk 3: 'peScri' Chunk 4: 'pt 5.0 5.1 ' Chunk 5: '5.2 5' Chunk 6: '.3' Chunk 8: ' new f' Chunk 9: 'eatur' ...
使用细粒度直播(延迟 3 秒):
Chunk 1: '{"query": "TypeScript 5.0 5.1 5.2 5.3' Chunk 2: ' new features comparison'
注意
由于细粒度流式传输发送参数时不进行缓冲或 JSON 验证,因此无法保证生成的流会以有效的 JSON 字符串完成。特别max_tokens
是,如果达到停止原因,则直播可能会在参数的中途结束,并且可能不完整。通常,您必须编写特定的支持来处理何max_tokens
时到达。
计算机使用(测试版)
计算机使用是 Claude 3.5 Sonnet v2、Claude 3.7 SonnetClaude Sonnet 4、和 4 中提供的AnthropicClaude模型功能(测试版)。Claude Opus使用计算机使用时,Claude 可以帮助您通过基本的 GUI 操作自动执行任务。
警告
根据服务条款的定义,计算机使用功能作为 “测试版服务” 提供给 AWS 您。它受您的协议和 AWS 服务条款 AWS 以及适用的 EULA 范本的约束。请注意,计算机使用 API 会带来与标准 API 功能或聊天界面不同的独特风险。使用计算机使用 API 与互联网进行交互时,这些风险会更加明显。为了最大限度地降低风险,请考虑采取如下预防措施:
-
在具有最低权限的专用虚拟机或容器中操作计算机使用功能,以防止直接的系统攻击或事故。
-
避免授予计算机使用 API 访问敏感账户或数据的权限,以防止信息被盗。
-
限制计算机使用 APIs 互联网访问所需的域,以减少对恶意内容的暴露。
-
请人工随时关注敏感任务(例如做出可能导致实际后果的决策)和任何需要肯定同意的操作(例如接受 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 Opus4.1 Claude Opus 4 Claude Sonnet 4 Claude 3.7 Sonnet |
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:
模型 |
工具 |
备注 |
---|---|---|
ClaudeClaude Opus4.1 ClaudeClaude Opus4 Claude Sonnet 4 |
|
更新现有 |
Claude 3.7 Sonnet |
|
包括用于更精确控制的新动作 |
Claude 3.7 Sonnet |
|
与 20241022 版本相同的功能 |
Claude 3.5 Sonnet v2 |
|
与 20241022 版本相同的功能 |
Claude 3.5 Sonnet v2 |
|
|
Claude 3.5 Sonnet v2 |
|
|
Claude 3.5 Sonnet v2 |
|
该type
字段用于验证目的标识工具及其参数,该name
字段是显示给模型的工具名称。
如果要提示模型使用其中一个工具,则可以在name
字段中明确引用该工具。该name
字段在工具列表中必须是唯一的;您不能在同name
一 API 调用中使用与Anthropic已定义工具相同的工具来定义工具。
使用工具的成本注意事项
工具使用请求的定价基于以下因素:
-
发送到模型的输入令牌总数(包括在工具参数中)。
-
生成的输出令牌数量。
工具的价格与所有其他 Claude API 请求相同,但每个请求都包含额外的令牌。使用工具时获得的额外代币来自以下内容:
-
API 请求中的
tools
参数。例如,工具名称、描述和架构。 -
API 请求和响应中的任何
tool_use
内容块。 -
API 请求中的任何
tool_result
内容块。
当您使用工具时,Anthropic模型会自动包含允许使用工具的特殊系统提示。下表列出了每种型号所需的工具使用令牌数量。此表不包括前面描述的其他代币。请注意,此表假设至少提供了一种工具。如果未提供任何工具,则选择 “无” 的工具将额外使用 0 个系统提示标记。
模型 | 工具选择 | 工具使用系统提示符计数 |
---|---|---|
Claude Opus4.1 Claude Opus 4 Claude Sonnet 4 Claude 3.7 Sonnet Claude 3.5 Sonnet v2 |
auto 或 none |
346 |
Claude Opus4.1 Claude Opus 4 Claude Sonnet 4 Claude 3.7 Sonnet Claude 3.5 Sonnet v2 |
any 或 tool |
313 |
Claude 3.5 Sonnet |
auto 或 none |
294 |
Claude 3.5 Sonnet |
any 或 tool |
261 |
Claude 3 Opus |
auto 或 none |
530 |
Claude 3 Opus |
any 或 tool |
281 |
Claude 3 Sonnet |
auto 或 none |
159 |
Claude 3 Sonnet |
any 或 tool |
235 |
Claude 3 Haiku |
auto 或 none |
264 |
Claude 3 Haiku |
any 或 tool |
340 |