计算机使用 (测试版)
升级后的 Claude 3.5 Sonnet 模型能够与可操作计算机桌面环境的工具进行交互。
升级后的 Claude 3.5 Sonnet 模型能够与可操作计算机桌面环境的工具进行交互。
计算机使用是一项测试版功能。请注意,计算机使用与标准 API 功能或聊天界面存在独特的风险。当使用计算机使用与互联网交互时,这些风险会加剧。为了最小化风险,请考虑采取以下预防措施:
- 使用具有最小权限的专用虚拟机或容器,以防止直接系统攻击或意外。
- 避免让模型访问敏感数据,如帐户登录信息,以防止信息被盗。
- 将互联网访问限制在允许列表中的域,以减少接触恶意内容的风险。
- 请人工确认可能导致实际后果的决策,以及需要确认同意的任何任务,如接受 Cookie、执行金融交易或同意服务条款。
在某些情况下,即使与用户的指示相冲突,Claude 也会遵循内容中的命令。例如,网页或图像中包含的 Claude 指令可能会覆盖指示或导致 Claude 犯错。我们建议采取预防措施,将 Claude 与敏感数据和操作隔离,以避免与提示注入相关的风险。
最后,请在您自己的产品中启用计算机使用功能之前,告知最终用户相关风险并获得他们的同意。
计算机使用参考实现
通过我们的计算机使用参考实现快速入门,其中包括 Web 界面、Docker 容器、示例工具实现和代理循环。
请使用此表格提供有关模型响应质量、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 有时会假设其操作的结果,而不明确检查结果。为了防止这种情况,您可以提示 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。与任何工具一样,模型不会自动执行该工具。
我们目前提供 3 个 Anthropic 定义的工具:
{ "type": "computer_20241022", "name": "computer" }
{ "type": "text_editor_20241022", "name": "str_replace_editor" }
{ "type": "bash_20241022", "name": "bash" }
type
字段标识工具及其参数以进行验证, name
字段是向模型公开的工具名称。
如果您想提示模型使用这些工具之一,可以明确引用 name
字段中的工具。name
字段在工具列表中必须是唯一的;您不能在同一 API 调用中定义与 Anthropic 定义的工具同名的工具。
我们不建议定义与 Anthropic 定义的工具同名的工具。虽然您仍然可以重新定义这些名称的工具(只要在您的 tools
块中工具名称是唯一的),但这样做可能会降低模型性能。
将计算机使用与其他工具结合
您可以将常规工具使用与 Anthropic 定义的计算机使用工具相结合。
构建自定义计算机使用环境
参考实现旨在帮助您开始使用计算机使用。它包括让 Claude 使用计算机所需的所有组件。但是,您可以构建自己的计算机使用环境以满足您的需求。您需要:
- 适合与 Claude 进行计算机使用的虚拟化或容器化环境
- 至少一个 Anthropic 定义的计算机使用工具的实现
- 与 Anthropic API 交互并执行
tool_use
结果的代理循环,使用您的工具实现 - 允许用户输入以启动代理循环的 API 或 UI
了解计算机使用的限制
计算机使用功能处于测试阶段。尽管 Claude 的能力是前沿的,但开发人员应该了解其局限性:
- 延迟: 当前人机交互的计算机使用延迟可能比常规人工指导的计算机操作慢。我们建议将重点放在速度不是关键的用例上(例如后台信息收集、自动化软件测试)和可信环境。
- 计算机视觉准确性和可靠性: 在生成操作时,Claude 可能会在输出特定坐标时出现错误或产生幻觉。
- 工具选择准确性和可靠性: 在生成操作或解决问题时,Claude 可能会在选择工具时出现错误或产生幻觉。此外,与小众应用程序或多个应用程序同时交互时,可靠性可能会降低。我们建议用户在请求复杂任务时谨慎提示模型。
- 滚动可靠性: 当前体验中的滚动可能不可靠,模型可能无法可靠地滚动到页面底部。可以通过键盘快捷键(PgUp/PgDown)来改善类似滚动的行为。
- 电子表格交互: 使用鼠标点击进行电子表格交互是不可靠的。单元格选择可能无法按预期工作。这可以通过提示模型使用方向键来缓解。
- 在社交和通信平台上创建帐户和生成内容: 虽然 Claude 会访问网站,但我们正在限制其在社交媒体网站和平台上创建帐户、生成和共享内容或以其他方式进行人工模拟的能力。我们可能会在将来更新此功能。
- 漏洞: 诸如越狱或提示注入之类的漏洞可能会持续存在于前沿人工智能系统中,包括测试版计算机使用 API。在某些情况下,即使与用户的指示相冲突,Claude 也会遵循内容中的命令。例如,网页或图像中包含的 Claude 指令可能会覆盖指示或导致 Claude 犯错。我们建议: a. 将计算机使用限制在虚拟机或具有最小权限的容器等可信环境中 b. 避免让计算机使用访问敏感帐户或数据,除非有严格的监督 c. 在您的应用程序中启用或请求计算机使用功能所需的权限之前,告知最终用户相关风险并获得他们的同意
- 不当或非法行为: 根据 Anthropic 的服务条款,您不得雇用计算机使用来违反任何法律或我们的可接受使用政策。
请始终仔细审查和验证 Claude 的计算机使用操作和日志。不要在需要完全精确或敏感用户信息的任务中使用 Claude,除非有人工监督。
定价
请参阅工具使用定价文档,了解 Claude 工具使用 API 请求的定价详细说明。
作为工具使用请求的一个子集,计算机使用请求的定价与任何其他 Claude API 请求相同。
我们还会自动为模型包含一个特殊的系统提示,以启用计算机使用。
模型 | 工具选择 | 系统提示令牌计数 |
---|---|---|
Claude 3.5 Sonnet (新) | auto any , tool | 466 个令牌 499 个令牌 |
除了基本令牌外,Anthropic 定义的工具还需要以下额外的输入令牌:
工具 | 额外输入令牌 |
---|---|
computer_20241022 | 683 个令牌 |
text_editor_20241022 | 700 个令牌 |
bash_20241022 | 245 个令牌 |