本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Anthropic Claude 3.7 Sonnet 是第一个提供 step-by-step推理的克劳德模型,Anthropic 被称为 “延伸思维”。With Claude 3.7 Sonnet, step-by-step推理的使用是可选的。您可以在标准思维和扩展思维之间进行选择,以进行高级推理。除了延伸思维外,Claude 3.7 Sonnet 每个请求最多允许 12.8 万个输出令牌(通常认为最多 64K 输出令牌可用,但在 64K 到 128K 之间的输出处于测试阶段)。此外,Anthropic 已增强其计算机使用测试版,支持新操作。
With Claude 3.7 Sonnet,max_tokens
(包括启用思维时的思维预算)作为严格限制强制执行。现在,如果提示标记 + max_tokens
超过上下文窗口大小,系统将返回验证错误。在启用思维的情况下计算上下文窗口使用情况时,需要注意一些注意事项:
-
之前回合中的思考方块会被去除,不会计入你的上下文窗口。
-
当前的回合思维会计入你在该回合中的
max_tokens
极限。 -
前一回合的思考方块通常会被剥离,不会计入你的上下文窗口,除非最后一回合是辅助回合。
-
当前的回合思维方块可能包含在特定场景中,例如工具使用和助手预填充,只有这些包含的方块才计入你的代币使用量。
-
用户只需为实际显示给模型的思维方块付费。
-
建议始终将思维块与您的请求一起发回,因为系统将在必要时使用和验证它们,以实现最佳模型行为。
推理(延伸思维)
延伸思考 Claude 3.7 Sonnet 使 chain-of-thought推理能力能够提高复杂任务的准确性,同时还能在给出最终答案之前为其 step-by-step思考过程提供透明度。当你启用扩展思维时,Claude 将通过响应中的thinking
内容块展示其推理过程。这些thinking
方块代表了 Claude 用于为响应提供信息的内部问题解决过程。Claude 3.7 Sonnet的推理(或思考)模式默认处于禁用状态。每当你启用 Claude 的thinking
模式时,你都需要为克劳德在内部推理过程中可能使用的最大代币数量设置预算。您的thinking
budget_tokens
值必须始终小于max_tokens
您在请求中指定的值。当推理输出不符合安全标准时,你可能会在输出中看到经过编辑的思维方块。这是预料之中的行为。该模型仍然可以使用这种经过编辑的思维来为其反应提供信息,同时保持安全护栏。在多回thinking
合对话中将redacted_thinking
方块传递给 API 时,您必须提供完整的、未修改的区块。
回复中的思考令牌计入上下文窗口,并作为输出令牌计费。由于思维令牌被视为普通输出令牌,因此它们也计入您的每分钟服务配额令牌 (TPM) 限制。在多回合对话中,与之前的助手消息相关的思维块不会作为输入令牌收费。
使用思维预算:
最低限度budget_tokens
为 1,024 个代币。Anthropic 建议尝试至少 4,000 个代币来实现更全面、更细致入微的推理。
-
budget_tokens
是一个目标,而不是一个严格的限制——实际的代币使用量可能因任务而异。 -
由于推理需要额外的处理,请为可能更长的响应时间做好准备。
推理与其他参数的兼容性:
-
思维与温度、top_p 或 top_k 修改以及强制使用工具不兼容。
-
启用 “思考” 后,您无法预先填写回复。
推理和提示缓存(有限预览)
思维方块包容性:
-
只有在生成助手回合时才会包含思考,并不意味着要缓存。
-
前一回合中的思维障碍将被忽略。
-
如果禁用思考,则传递给 API 的任何思考内容都将被忽略。
在以下情况下,缓存失效:
-
启用或禁用思维。
-
修改思维
budget_tokens
。
持久性限制:
-
当思考参数发生变化时,只有系统提示和工具才能保持缓存。
-
工具使用回合延续不会受益于提示缓存。
带推理的工具使用
在多回合对话中将 thinking 和 redacted_thinking 方块传回 API 时,你必须提供完整的、未经修改的方块。这需要在工具使用过程中保留思维障碍,原因有两个:
-
推理连续性 — 思维块捕捉了克劳德导致工具请求的 step-by-step推理。当你发布工具结果时,加入最初的想法可以确保 Claude 可以从上次停下来的地方继续推理。
-
上下文维护 — 虽然工具使用结果在 API 结构中显示为用户消息,但它们是持续推理流程的一部分。保留思维块可以在多个 API 调用中保持这种概念流程。
在使用工具时使用思维时,请注意以下行为模式:
-
第一个助手回合 — 当你发送初始用户消息时,助手的响应将包括思考方块,然后是工具使用请求。
-
工具结果转向 — 当你传递带有工具结果块的用户消息时,随后的助手消息将不包含任何额外的思维方块。
工具使用思维对话的正常顺序遵循以下步骤:
-
用户发送初始消息。
-
助手会用思维障碍和工具请求进行回应。
-
用户发送带有工具结果的消息。
-
Assistant 要么用更多的工具调用来回应,要么只发短信(此回复中没有思维障碍)。
-
如果需要更多工具,请重复步骤 3-4,直到对话完成。
这种设计允许助手在提出工具请求之前展示其推理过程,但不会在收到工具结果后重复思考过程。
With Anthropic Claude 3.7 Sonnet 模型,你可以指定模型可以用来回复消息的工具。有关更多信息,请参阅中的工具使用(函数调用)
提示
我们建议您使用 Converse 用于将工具使用集成到您的应用程序中的 API。有关更多信息,请参阅 使用工具完成 Amazon Bedrock 模型响应。
更新了《电脑使用》(测试版)
使用电脑时,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.7 Sonnet 通过现有计算机使用测试版工具的新版本支持扩展计算机使用能力。要使用这些新工具,必须指定 anthropic-beta 推理参数 “anthropic_beta”:[“computer-use-2025-01-24"]。计算机使用时可能出现的一组返回操作包括:滚动、等待、鼠标左键向下、鼠标左键向上、按住键和三击。它将继续在输出中遵循相同的工具使用格式。
有关更多信息,请参阅《计算机使用(测试版)
以下是一个示例响应,它假定请求包含带有 Firefox 图标的桌面屏幕截图。
{
"id": "msg_123",
"type": "message",
"role": "assistant",
"model": "anthropic.claude-3-7-sonnet-20250219-v1:0",
"anthropic_beta": ["computer-use-2025-01-24"] ,
"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
}
}
思维障碍
思维块代表 Claude 3.7 Sonnet的内部思考过程。
InvokeModel 请求
{
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 24000,
"thinking": {
"type": "enabled",
"budget_tokens": 16000
},
"messages": [
{
"role": "user",
"content": "Are there an infinite number of prime numbers such that n mod 4 == 3?"
}
]
}
InvokeModel 响应
{
"content": [
{
"type": "thinking",
"thinking": "To approach this, let's think about what we know about prime numbers...",
"signature": "eyJhbGciOiJFUzI1NiIsImtpZCI6ImtleS0xMjM0In0.eyJoYXNoIjoiYWJjMTIzIiwiaWF0IjoxNjE0NTM0NTY3fQ...."
},
{
"type": "text",
"text": "Yes, there are infinitely many prime numbers such that..."
}
]
}
为了让 Claude 能够在保持安全标准的同时以最小的内部限制解决问题,Anthropic 定义了以下内容:
-
思维方块包含签名字段。该字段包含一个加密令牌,用于验证思维块是否由 Claude 生成,并在思维块传递回 API 时进行验证。流式传输响应时,签名会在 content_block_stop 事件之前的 content_block_delta 事件中添加一个 signature_delta。
有时,Claude的内部推理会被自动安全系统标记。发生这种情况时,整个思维方块都会被加密并作为 redacted_thinking 方块返回给你。这些经过编辑的思维块在传递回模型时会被解密,这使克劳德能够在不丢失背景的情况下继续做出回应。
以下是一个 InvokeModel 响应示例,显示了普通思维块和经过编辑的思维方块:
{
"content": [
{
"type": "thinking",
"thinking": "Let me analyze this step by step...",
"signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
},
{
"type": "redacted_thinking",
"data": "EmwKAhgBEgy3va3pzix/LafPsn4aDFIT2Xlxh0L5L8rLVyIwxtE3rAFBa8cr3qpP..."
},
{
"type": "text",
"text": "Based on my analysis..."
}
]
}
当推理输出不符合安全标准时,你可能会在输出中看到经过编辑的思维方块。这是预料之中的行为。该模型仍然可以使用这种经过编辑的思维来为其反应提供信息,同时保持安全护栏。在多回合对话中将 thinking 和 redacted_thinking 方块传回 API 时,你必须提供完整的、未经修改的方块。
InvokeModelWithResponseStream
启用直播后,您将收到来自 thinking_delta 事件的思考内容。以下是用思维处理直播的方法:
请求
{
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 24000,
"thinking": {
"type": "enabled",
"budget_tokens": 16000
},
"messages": [
{
"role": "user",
"content": "What is 27 * 453?"
}
]
}
响应
event: message_start
data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-3-7-sonnet-20250219", "stop_reason": null, "stop_sequence": null}}
event: content_block_start
data: {"type": "content_block_start", "index": 0, "content_block": {"type": "thinking", "thinking": ""}}
event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "Let me solve this step by step:\n\n1. First break down 27 * 453"}}
event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n2. 453 = 400 + 50 + 3"}}
// Additional thinking deltas...
event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "signature_delta", "signature": "EqQBCgIYAhIM1gbcDa9GJwZA2b3hGgxBdjrkzLoky3dl1pkiMOYds..."}}
event: content_block_stop
data: {"type": "content_block_stop", "index": 0}
event: content_block_start
data: {"type": "content_block_start", "index": 1, "content_block": {"type": "text", "text": ""}}
event: content_block_delta
data: {"type": "content_block_delta", "index": 1, "delta": {"type": "text_delta", "text": "27 * 453 = 12,231"}}
// Additional text deltas...
event: content_block_stop
data: {"type": "content_block_stop", "index": 1}
event: message_delta
data: {"type": "message_delta", "delta": {"stop_reason": "end_turn", "stop_sequence": null}}
event: message_stop
data: {"type": "message_stop"}
扩展输出长度(测试版)
Claude 3.7 Sonnet可以产生比以前的Claude模型长得多的响应,支持多达12.8万个输出代币(测试版)。这种扩展的输出长度可以与新的推理功能一起使用。可以通过传递anthropic-beta
推理参数来启用此功能。output-128k-2025-02-19
警告
根据 AWS 服务条款的定义,扩展输出长度功能作为 “测试服务” 提供给您。它受您与 AWS 达成的协议和 AWS 服务条款以及适用的模型 EULA 的约束。
更新了《电脑使用》(测试版)
Claude 3.7 Sonnet 通过现有计算机使用测试版工具的新版本支持扩展计算机使用能力。要使用这些新工具,必须指定anthropic-beta
推理参数computer_20250212
。计算机使用时可能出现的一组返回操作包括:滚动、等待、鼠标左键向下、鼠标左键向上、按住键和三击。它将继续在输出中遵循相同的工具使用格式。
警告
根据 AWS 服务条款的定义,计算机使用功能作为“测试版服务”供您使用。它受您与 AWS 达成的协议和 AWS 服务条款以及适用的模型 EULA 的约束。请注意,计算机使用 API 会带来与标准 API 功能或聊天界面不同的独特风险。使用计算机使用 API 与互联网进行交互时,这些风险会更加明显。为了最大限度地降低风险,请考虑采取如下预防措施:
在具有最低权限的专用虚拟机或容器中操作计算机使用功能,以防止直接的系统攻击或事故。
避免授予计算机使用 API 访问敏感账户或数据的权限,以防止信息被盗。
将计算机使用 API 的互联网访问权限限制在必需的域内,以减少接触恶意内容。
请人工随时关注敏感任务(例如做出可能导致实际后果的决策)和任何需要肯定同意的操作(例如接受 Cookie、执行金融交易或同意服务条款),以确保进行适当的监督。
您启用的任何内容 Claude 查看或访问可能会覆盖说明或原因 Claude 犯错误或执行意想不到的行动。采取适当的预防措施,例如隔离 Claude 来自敏感表面,是必不可少的,包括避免与及时注射相关的风险。在启用或请求必要的权限以在您自己的产品中启用计算机使用功能之前,请告知终端用户任何相关风险,并酌情征得他们的同意。
全新 Anthropic 定义工具
文本编辑器和 bash 工具以前仅作为computer-use-20241022
测试版的一部分提供。作为 Claude 3.7 Sonnet 的一部分,它们现在也将作为独立的 Anthropic 定义工具提供:
-
文本编辑器工具(执行字符串替换)现在也将作为自己的工具提供
text_editor_20250124
。 -
Bash 工具(允许模型发出终端命令)现在也将作为自己的工具
bash_20250124
提供。
字符串替换和 bash 工具都不需要 anthropic-beta 推理参数。
请求和响应
请求正文在请求body
字段中传递给InvokeModel或InvokeModelWithResponseStream。您可以在请求中发送的最大有效载荷大小为 20 MB。
有关更多信息,请参阅https://docs.anthropic.com/claude/参考文献/
Claude 3.7 Sonnet 具有以下用于消息推理调用的推理参数。
{ "anthropic_version": "bedrock-2023-05-31", "anthropic_beta": ["computer-use-2025-01-24"] "max_tokens": int, "system": string, "messages": [ { "role": string, "content": [ { "type": "image", "source": { "type": "base64", "media_type": "image/jpeg", "data": "
content image bytes
" } }, { "type": "text", "text": "content text
" } ] } ], "temperature": float, "top_p": float, "top_k": int, "tools": [ { "type": "custom", "name": string, "description": string, "input_schema": json }, { "type": "computer_20250212", "name": "computer", "display_height_px": int, "display_width_px": int, "display_number": 0 int }, { "type": "bash_20250124", "name": "bash" }, { "type": "text_editor_20250124", "name": "str_replace_editor" } ], "tool_choice": { "type" : string, "name" : string, }, "stop_sequences": [string] }
以下是必要参数。
-
anthropic_version –(必要)Anthropic 版本。值必须为
bedrock-2023-05-31
。 -
anthropic_beta –(如果使用 Computer Use API,则为必要参数)要使用的 Anthropic 测试版。要使用计算机使用 API,值必须为
computer-use-2024-10-22
。anthropic_beta
还应该有扩展上下文长度的output-128k-2025-02-19
参数。 -
max_tokens –(必要)停止前要生成的最大词元数。
请注意 Anthropic Claude 模型可能会在达到 token 的值之前停止生成代币
max_tokens
。不同 Anthropic Claude 模型对此参数有不同的最大值。有关更多信息,请参阅模型比较。 -
messages –(必要)输入消息。
role – 对话回合的角色。有效值为
user
和assistant
。-
c ontent —(必填)对话的内容变成一组对象。每个对象都包含一个类型字段,您可以在其中指定以下值之一:
-
text
— 如果指定此类型,则必须包括一个文本字段并将文本提示指定为其值。如果数组中的另一个对象是图像,则此文本提示将应用于图像。 -
image
— 如果指定此类型,则必须包括一个映射到具有以下字段的对象的源字段:-
type –(必要)图像的编码类型。您可以指定
base64
。 -
media_type –(必要)图像的类型。您可以指定以下图像格式。
image/jpeg
image/png
image/webp
image/gif
-
data –(必要)图像的 base64 编码图像字节。最大图像大小为 3.75 MB。图像的最大高度和宽度为 8000 像素。
-
-
思考 — Claude 将通过回复中的
thinking
内容块展示其推理过程。thinking
与温度、top_p 或 top_k 修改以及强制使用工具不兼容。 -
redacted_th inking — 当自动安全系统标记克劳德的内部推理时,思维方块会被加密并作为 redacted_thinking 方块返回给你。
-
以下是可选参数。
-
system –(可选)请求的系统提示。
系统提示符是一种向其提供上下文和说明的方式 Anthropic Claude,例如指定特定的目标或角色。有关更多信息,请参阅中的系统提示
Anthropic 文档中)。 注意
您可以将系统提示与 Anthropic Claude 版本 2.1 或更高版本。
-
stop_seq uences —(可选)导致模型停止生成的自定义文本序列。Anthropic Claude 模型通常在自然完成回合后停止,在本例中,
stop_reason
响应字段的值为end_turn
。如果您希望模型在遇到自定义文本字符串时停止生成,则可以使用stop_sequences
参数。如果模型遇到其中一个自定义文本字符串,则stop_reason
响应字段的值为stop_sequence
,stop_sequence
的值包含匹配的停止序列。条目的最大数量为 8191。
-
temperature –(可选)注入响应的随机性数量。
默认 最小值 最大值 1
0
1
-
top_p –(可选)使用 nucleus 采样。
在原子核采样中,Anthropic Claude 按概率递减顺序计算每个后续代币的所有期权的累积分布,并在达到由
top_p
指定的特定概率时将其切断。您应该更改temperature
或top_p
,但不能同时更改这两个。默认 最小值 最大值 0.999
0
1
-
top_k –(可选)仅从每个后续词元的前 K 个选项中取样。
使用
top_k
移除长尾低概率响应。默认 最小值 最大值 默认情况下禁用
0
500
-
tools –(可选)模型可能使用的工具的定义。
注意
需要 Anthropic Claude 3 个模型。
如果您在请求中包含
tools
,则模型可能会返回tool_use
内容块,表示该模型使用这些工具。然后,您可以使用模型生成的工具输入来运行这些工具,接着使用tool_result
内容块选择性地将结果返回到模型。您可以传递以下工具类型:
自定义
自定义工具的定义。
-
(可选)type – 工具的类型。如果已定义,则使用值
custom
。 -
name - 工具的名称。
-
description –(可选,但强烈推荐)工具的描述。
-
input_schema – 工具的 JSON 架构。
计算机
与 Computer Use API 配合使用的计算机工具的定义。
-
type – 值必须为
computer_20250212
。 -
name – 值必须为
computer
。 -
(必要)display_height_px – 模型控制的显示屏高度,以像素为单位。
默认 最小值 最大值 无
1
无最大值
-
(必要)display_width_px – 模型控制的显示屏宽度,以像素为单位。
默认 最小值 最大值 无
1
无最大值
-
(可选)display_number – 要控制的显示屏编号(仅与 X11 环境相关)。如果指定,则将在工具定义中为该工具提供显示屏编号。
默认 最小值 最大值 无
0
N
bash
与 Computer Use API 配合使用的 bash 工具的定义。
-
(可选)type – 值必须为
bash_20250124
。 -
name – 值必须为
bash
。
文本编辑器
与 Computer Use API 配合使用的文本编辑器工具的定义。
-
(可选)type – 值必须为
text_editor_20250124
。 -
name – 值必须为
str_replace_editor
。
-
-
tool_choic e —(可选)指定模型应如何使用所提供的工具。模型可以使用特定的工具、任何可用的工具,也可以自行决定使用什么工具。
注意
需要 Anthropic Claude 3 个模型。
-
type – 选择的工具类型。可能的值是
any
(使用任何可用的工具)、auto
(由模型决定)和tool
(使用指定的工具)。
-
name –(可选)要使用的工具的名称。如果您在
type
字段中指定tool
,则为必要参数。
-