电脑使用(测试版)
Claude 4 Opus 和 Sonnet,以及 Claude Sonnet 3.7 和 Claude Sonnet 3.5(新版)能够与可以操控计算机桌面环境的工具进行交互。Claude 4 模型使用针对新架构优化的更新工具版本。Claude Sonnet 3.7 引入了额外的工具,并允许您启用思考功能,让您更深入地了解模型的推理过程。
电脑使用是一项测试版功能。请注意,电脑使用功能带来的风险与标准 API 功能或聊天界面的风险不同。当使用电脑使用功能与互联网交互时,这些风险会更高。为了最小化风险,请考虑采取以下预防措施:
- 使用具有最小权限的专用虚拟机或容器,以防止直接系统攻击或意外。
- 避免让模型访问敏感数据,如账户登录信息,以防止信息被盗。
- 将互联网访问限制在允许列表中的域名范围内,以减少接触恶意内容的可能性。
- 对可能导致实际后果的决定以及任何需要明确同意的任务(如接受 cookie、执行金融交易或同意服务条款)请求人工确认。
在某些情况下,Claude 会遵循内容中的命令,即使这与用户的指示相冲突。例如,网页上的 Claude 指令或图像中包含的指令可能会覆盖指令或导致 Claude 出错。我们建议采取预防措施,将 Claude 与敏感数据和操作隔离,以避免与提示注入相关的风险。
我们已经训练模型抵抗这些提示注入,并添加了额外的防御层。如果您使用我们的电脑使用工具,我们将自动对您的提示运行分类器,以标记潜在的提示注入实例。当这些分类器在截图中识别到潜在的提示注入时,它们将自动引导模型在继续下一个操作之前请求用户确认。我们认识到这种额外的保护并不适合每个用例(例如,没有人在循环中的用例),因此如果您想选择退出并关闭它,请联系我们。
我们仍然建议采取预防措施,将 Claude 与敏感数据和操作隔离,以避免与提示注入相关的风险。
最后,请在您自己的产品中启用电脑使用功能之前,告知最终用户相关风险并获得他们的同意。
电脑使用参考实现
通过我们的电脑使用参考实现快速入门,其中包括网页界面、Docker 容器、示例工具实现和代理循环。
注意: 该实现已更新,包含了 Claude 4 和 Claude Sonnet 3.7 的新工具。请确保拉取最新版本的代码库以访问这些新功能。
请使用此表单提供关于模型响应质量、API 本身或文档质量的反馈 - 我们迫不及待想听取您的意见!
以下是如何使用 Messages API 向 Claude 提供电脑使用工具的示例:
电脑使用的工作原理
1. 向 Claude 提供电脑使用工具和用户提示
- 在您的 API 请求中添加 Anthropic 定义的电脑使用工具。
- 包含可能需要这些工具的用户提示,例如”将猫的图片保存到我的桌面。”
2. Claude 决定使用工具
- Claude 加载存储的电脑使用工具定义,并评估是否有任何工具可以帮助解决用户的查询。
- 如果是,Claude 构建一个格式正确的工具使用请求。
- API 响应的
stop_reason
为tool_use
,表示 Claude 的意图。
3. 提取工具输入,在计算机上评估工具,并返回结果
- 在您的端,从 Claude 的请求中提取工具名称和输入。
- 在容器或虚拟机上使用该工具。
- 继续对话,发送包含
tool_result
内容块的新user
消息。
4. Claude 继续调用电脑使用工具,直到完成任务
- Claude 分析工具结果,确定是否需要更多工具使用或任务已完成。
- 如果 Claude 决定需要另一个工具,它会再次响应
tool_use
stop_reason
,您应该返回步骤 3。 - 否则,它会为用户创建文本响应。
我们将在没有用户输入的情况下重复步骤 3 和 4 称为”代理循环” - 即 Claude 响应工具使用请求,而您的应用程序则响应 Claude 并提供评估该请求的结果。
计算环境
电脑使用需要一个沙盒计算环境,Claude 可以在其中安全地与应用程序和网络交互。该环境包括:
-
虚拟显示器:虚拟 X11 显示服务器(使用 Xvfb),通过截图渲染 Claude 将看到的桌面界面,并通过鼠标/键盘操作进行控制。
-
桌面环境:在 Linux 上运行的轻量级 UI,带有窗口管理器(Mutter)和面板(Tint2),为 Claude 提供一致的图形界面进行交互。
-
应用程序:预安装的 Linux 应用程序,如 Firefox、LibreOffice、文本编辑器和文件管理器,Claude 可以使用这些应用程序完成任务。
-
工具实现:集成代码,将 Claude 的抽象工具请求(如”移动鼠标”或”截图”)转换为虚拟环境中的实际操作。
-
代理循环:处理 Claude 与环境之间通信的程序,将 Claude 的操作发送到环境,并将结果(截图、命令输出)返回给 Claude。
当您使用电脑使用功能时,Claude 不会直接连接到这个环境。相反,您的应用程序:
- 接收 Claude 的工具使用请求
- 将它们转换为您的计算环境中的操作
- 捕获结果(截图、命令输出等)
- 将这些结果返回给 Claude
为了安全和隔离,参考实现将所有这些都运行在 Docker 容器内,并具有适当的端口映射,用于查看和与环境交互。
如何实现电脑使用
从我们的参考实现开始
我们构建了一个参考实现,其中包含了您快速开始使用电脑使用所需的一切:
理解多代理循环
电脑使用的核心是”代理循环” - 一个循环,其中 Claude 请求工具操作,您的应用程序执行这些操作,并将结果返回给 Claude。以下是一个简化示例:
循环继续,直到 Claude 响应时不请求任何工具(任务完成)或达到最大迭代限制。这种保障措施可防止可能导致意外 API 成本的潜在无限循环。
对于每个版本的工具,您必须在 API 请求中使用相应的测试版标志:
我们建议在阅读本文档的其余部分之前先尝试参考实现。
通过提示优化模型性能
以下是一些获得最佳质量输出的提示:
- 指定简单、明确定义的任务,并为每个步骤提供明确的指示。
- Claude 有时会假设其操作的结果,而不明确检查这些结果。为防止这种情况,您可以提示 Claude:“在每个步骤之后,截取屏幕截图并仔细评估您是否已经达到了正确的结果。明确展示您的思考过程:‘我已评估步骤 X…’如果不正确,请重试。只有当您确认步骤已正确执行时,才能继续下一步。”
- 某些 UI 元素(如下拉菜单和滚动条)可能难以通过鼠标移动操作。如果您遇到这种情况,请尝试提示模型使用键盘快捷键。
- 对于可重复的任务或 UI 交互,在您的提示中包含成功结果的示例截图和工具调用。
- 如果您需要模型登录,请在提示中使用 xml 标签(如
<robot_credentials>
)提供用户名和密码。在需要登录的应用程序中使用电脑使用功能会增加因提示注入而导致不良结果的风险。在向模型提供登录凭据之前,请查看我们关于缓解提示注入的指南。
如果您反复遇到一组明确的问题,或者预先知道 Claude 需要完成的任务,请使用系统提示为 Claude 提供有关如何成功完成任务的明确提示或指示。
系统提示
当通过 Anthropic API 请求 Anthropic 定义的工具之一时,会生成特定于电脑使用的系统提示。它类似于工具使用系统提示,但以以下内容开始:
您可以访问一组函数,用于回答用户的问题。这包括访问沙盒计算环境。除了调用以下函数外,您目前无法检查文件或与外部资源交互。
与常规工具使用一样,用户提供的 system_prompt
字段仍然受到尊重,并用于构建组合系统提示。
了解 Anthropic 定义的工具
我们提供了一组工具,使 Claude 能够有效地使用计算机。在指定 Anthropic 定义的工具时,不需要也不允许使用 description
和 tool_schema
字段。
Anthropic 定义的工具由用户执行
Anthropic 定义的工具由 Anthropic 定义,但您必须明确评估工具的结果并将 tool_results
返回给 Claude。与任何工具一样,模型不会自动执行工具。
我们提供了一组 Anthropic 定义的工具,每个工具都有针对 Claude 4、Claude Sonnet 3.7 和 Claude Sonnet 3.5 优化的版本:
type
字段标识工具及其验证参数,name
字段是暴露给模型的工具名称。
如果您想提示模型使用这些工具之一,可以通过 name
字段明确引用该工具。name
字段在工具列表中必须是唯一的;您不能在同一个 API 调用中定义与 Anthropic 定义的工具同名的工具。
我们不建议定义与 Anthropic 定义的工具同名的工具。虽然您仍然可以重新定义具有这些名称的工具(只要工具名称在您的 tools
块中是唯一的),但这样做可能会导致模型性能下降。
在 Claude 4 和 Claude Sonnet 3.7 中启用思考功能
Claude Sonnet 3.7 引入了一项新的”思考”功能,允许您查看模型在处理复杂任务时的推理过程。此功能帮助您了解 Claude 如何解决问题,对于调试或教育目的特别有价值。
要启用思考功能,请在 API 请求中添加 thinking
参数:
budget_tokens
参数指定 Claude 可以用于思考的令牌数量。这将从您的总体 max_tokens
预算中扣除。
启用思考功能后,Claude 将在响应中返回其推理过程,这可以帮助您:
- 了解模型的决策过程
- 识别潜在问题或误解
- 从 Claude 的问题解决方法中学习
- 获得对复杂多步骤操作的更多可见性
以下是思考输出的示例:
将电脑使用与其他工具结合
您可以将常规工具使用与 Anthropic 定义的电脑使用工具结合起来。
构建自定义电脑使用环境
参考实现旨在帮助您开始使用电脑使用功能。它包含了让 Claude 使用计算机所需的所有组件。但是,您可以根据自己的需求构建自己的电脑使用环境。您需要:
- 适合 Claude 电脑使用的虚拟化或容器化环境
- 至少一个 Anthropic 定义的电脑使用工具的实现
- 与 Anthropic API 交互并使用您的工具实现执行
tool_use
结果的代理循环 - 允许用户输入启动代理循环的 API 或 UI
了解电脑使用的限制
电脑使用功能处于测试阶段。虽然 Claude 的功能处于前沿水平,但开发人员应该了解其限制:
- 延迟:当前电脑使用的人机交互延迟可能比常规人工指导的计算机操作慢。我们建议专注于速度不重要的用例(例如,后台信息收集、自动软件测试)在受信任的环境中。
- 计算机视觉准确性和可靠性:Claude 在生成操作时输出特定坐标时可能会出错或产生幻觉。Claude Sonnet 3.7 引入了思考功能,可以帮助您了解模型的推理并识别潜在问题。
- 工具选择准确性和可靠性:Claude 在生成操作时选择工具可能会出错或产生幻觉,或者采取意外操作来解决问题。此外,在与小众应用程序或同时与多个应用程序交互时,可靠性可能较低。我们建议用户在请求复杂任务时谨慎提示模型。
- 滚动可靠性:虽然 Claude Sonnet 3.5(新版)在滚动方面有限制,但 Claude Sonnet 3.7 引入了带有方向控制的专用滚动操作,提高了可靠性。模型现在可以通过指定的数量明确地向任何方向(上/下/左/右)滚动。
- 电子表格交互:在 Claude Sonnet 3.7 中,电子表格交互的鼠标点击通过添加更精确的鼠标控制操作(如
left_mouse_down
、left_mouse_up
)和新的修饰键支持得到了改进。通过使用这些细粒度控制并将修饰键与点击结合使用,单元格选择可以更可靠。 - 在社交和通信平台上创建账户和生成内容:虽然 Claude 会访问网站,但我们限制了其创建账户或生成和分享内容或以其他方式在社交媒体网站和平台上进行人类模仿的能力。我们可能会在未来更新此功能。
- 漏洞:越狱或提示注入等漏洞可能在前沿 AI 系统中持续存在,包括测试版电脑使用 API。在某些情况下,Claude 会遵循内容中的命令,有时甚至与用户的指示相冲突。例如,网页上的 Claude 指令或图像中包含的指令可能会覆盖指令或导致 Claude 出错。我们建议: a. 将电脑使用限制在受信任的环境中,如具有最小权限的虚拟机或容器 b. 避免在没有严格监督的情况下让电脑使用访问敏感账户或数据 c. 在您的应用程序中启用或请求电脑使用功能所需的权限之前,告知最终用户相关风险并获得他们的同意
- 不适当或非法操作:根据 Anthropic 的服务条款,您不得使用电脑使用功能违反任何法律或我们的可接受使用政策。
始终仔细审查和验证 Claude 的电脑使用操作和日志。在没有人工监督的情况下,不要使用 Claude 执行需要完美精度或敏感用户信息的任务。
定价
有关 Claude 工具使用 API 请求如何定价的详细说明,请参阅工具使用定价文档。
作为工具使用请求的子集,电脑使用请求的定价与任何其他 Claude API 请求相同。
我们还自动为模型包含一个特殊的系统提示,启用电脑使用功能。
模型 | 工具选择 | 系统提示令牌数 |
---|---|---|
Claude 4 Opus 和 Sonnet | auto any , tool | 466 令牌 499 令牌 |
Claude Sonnet 3.7 | auto any , tool | 466 令牌 499 令牌 |
Claude Sonnet 3.5(新版) | auto any , tool | 466 令牌 499 令牌 |
除了基本令牌外,Anthropic 定义的工具还需要以下额外输入令牌:
工具 | 额外输入令牌 |
---|---|
computer_20250124 (Claude 4) | 735 令牌 |
computer_20250124 (Claude Sonnet 3.7) | 735 令牌 |
computer_20241022 (Claude Sonnet 3.5) | 683 令牌 |
text_editor_20250429 (Claude 4) | 700 令牌 |
text_editor_20250124 (Claude Sonnet 3.7) | 700 令牌 |
text_editor_20241022 (Claude Sonnet 3.5) | 700 令牌 |
bash_20250124 (Claude 4) | 245 令牌 |
bash_20250124 (Claude Sonnet 3.7) | 245 令牌 |
bash_20241022 (Claude Sonnet 3.5) | 245 令牌 |
如果您在 Claude 4 或 Claude Sonnet 3.7 中启用思考功能,用于思考的令牌将根据您在思考参数中指定的 budget_tokens
计入您的 max_tokens
预算。