> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Computer Use

> Devin 如何使用完整桌面环境与 GUI 交互、测试应用并对变更进行可视化验证

Devin 可以使用完整的桌面环境——而不是仅限于浏览器。它可以移动鼠标、点击界面元素、在键盘上输入、截取屏幕截图，并与任何运行在桌面上的应用程序交互。这种能力称为 **Computer Use **，使 Devin 能够像人类一样测试和交互你的软件。

Computer Use 可在 **Linux** (默认会话平台) 和 **Windows** 会话中运行。详情请参阅[支持的平台](#supported-platforms)。

<video controls className="w-full aspect-video" src="https://mintcdn.com/cognitionai/lQBZeyJhpcluxU_P/images/computer-use-demo.mp4?fit=max&auto=format&n=lQBZeyJhpcluxU_P&q=85&s=6d33a326a338483ad74eb9e05f4a9d71" data-path="images/computer-use-demo.mp4" />

<div id="what-is-computer-use">
  ## 什么是 Computer Use？
</div>

Computer Use 为 Devin 提供对带有鼠标和键盘的图形化桌面环境的直接访问。它不仅仅是浏览器自动化——Devin 可以与屏幕上渲染的**任何应用程序**交互，包括：

* Chrome 中的**网页应用程序** (点击按钮、填写表单、在页面之间导航)
* 在 session 的平台 (Linux 或 Windows) 上运行的**桌面应用程序**，包括 Electron 应用、IDE 和平台原生图形界面
* **基于终端的界面** (TUI 程序、交互式 CLI)
* 能在桌面上显示的**任何可视化界面**

Devin 将屏幕视为一个 1024×768 像素的显示器，并且可以执行诸如点击、输入、滚动、拖动和截图等操作——就像一个坐在电脑前的人类用户一样。

<div id="supported-platforms">
  ## 支持的平台
</div>

| 平台         | Computer Use 支持情况                                                                       |
| ---------- | --------------------------------------------------------------------------------------- |
| Linux (默认) | 支持——会话在完整的 Linux 桌面环境中运行                                                                |
| Windows    | 支持——[Windows 环境](/zh/onboard-devin/environment/windows-support)中的会话在完整的 Windows 桌面环境中运行 |
| macOS      | 不支持                                                                                     |

Computer Use 在这两个平台上的体验相同：Devin 使用鼠标和键盘、截取屏幕截图、通过 Chrome 运行 Web 应用，并且可以录制其测试会话。在 Windows 上，Devin 还可以测试 Windows 原生桌面应用程序 (如 WPF、WinForms 以及其他只能在 Windows 上运行的应用) 。要在 Windows 上运行会话，请按 [Windows 支持](/zh/onboard-devin/environment/windows-support) 中所述配置 Windows 蓝图。

<div id="how-to-enable-it">
  ## 如何启用
</div>

Computer Use 由你所在组织的自定义选项中的 **Enable desktop mode** 开关进行控制。

1. 前往 [**Settings > Customization**](https://app.devin.ai/customization)
2. 在 **Browser interaction** 部分下，将 **Enable desktop mode** 切换为开启
3. Devin 现在将在会话期间使用其桌面环境

<Info>Desktop mode 适用于所有套餐。只有组织管理员可以更改此设置。</Info>

<div id="when-computer-use-runs">
  ## Computer Use 的运行时机
</div>

启用桌面模式后，Computer Use 功能将在每个会话中可用。它有三种触发方式：

<div id="after-creating-a-pr">
  ### 创建 PR 后
</div>

当 Devin 创建 PR 时，它会提供一个 **Test the app** 按钮。点击该按钮会触发完整的[测试工作流](/zh/work-with-devin/testing-and-recordings)：Devin 会启动你的应用，使用 Computer Use 与桌面交互，测试这些更改，并将录屏发送给你。

<Frame>
  <img src="https://mintcdn.com/cognitionai/t3ELyAdF5CfeLLyT/images/test-the-app-button.png?fit=max&auto=format&n=t3ELyAdF5CfeLLyT&q=85&s=6e7cc949688beb051244c06844a7f509" alt="Test the app 按钮" width="276" height="96" data-path="images/test-the-app-button.png" />
</Frame>

<div id="on-request-during-a-session">
  ### 在会话中按需使用
</div>

你可以在会话中的任何时候让 Devin 进行测试——不需要任何特殊语法，只需用自然语言提出请求即可。例如：

* “测试你刚刚做的更改，并把录屏发给我”
* “在浏览器中打开应用，验证登录页面是否正常工作”
* “启动桌面应用，检查新的菜单项是否出现”

<div id="autonomously-when-appropriate">
  ### 在适当情况下自主操作
</div>

Devin 会自行决定何时适合通过桌面交互来完成任务。如果任务涉及点击 UI 元素、在应用中导航、填写表单或对某些内容进行目视确认，Devin 会在无需你明确要求的情况下使用 Computer Use。你不需要告诉 Devin *如何* 与屏幕交互——只需告诉它 *要完成什么* 即可。

<div id="what-devin-can-do-with-computer-use">
  ## Devin 在计算机操作方面能做什么
</div>

<div id="test-web-applications-end-to-end">
  ### 端到端测试 Web 应用
</div>

Devin 可以在本地启动你的应用，在 Chrome 中打开它，并完整地走一遍用户流程——登录、导航、表单提交、结账——以验证一切是否按预期工作正常。

<div id="test-desktop-applications">
  ### 测试桌面应用
</div>

任何能在 Devin 会话平台上运行的应用都可以测试。在 Linux 会话中，这包括 Electron 应用、Java Swing/AWT 应用、GTK/Qt 应用等。在 [Windows 会话](/zh/onboard-devin/environment/windows-support) 中，Devin 还可以测试 Windows 原生应用，例如 WPF 和 WinForms 应用。Devin 会启动应用，与其 GUI 交互，并验证其行为是否符合预期。

<div id="visual-verification">
  ### 可视化验证
</div>

Devin 可以在测试过程中的特定步骤截取屏幕截图，用于验证布局、样式和 UI 元素是否正确显示。它可以将屏幕上看到的内容与预期效果进行比对，并标记出视觉问题。

<div id="interact-with-complex-ui-flows">
  ### 处理复杂的 UI 流程
</div>

有些测试场景需要多步 GUI 交互，而不仅是简单的 API 调用或浏览器自动化——比如拖拽、上下文菜单、键盘快捷键，或在多个窗口之间切换。Computer Use 可以处理所有这些。

<div id="record-testing-sessions">
  ### 记录测试会话
</div>

Devin 可以在测试时录制自己的屏幕，并在视频中标注关键时刻。录制内容随后会被处理并发送给你，这样你就可以观看 Devin 与你的应用交互的过程，并确认更改是否正常生效。有关录制工作流的完整说明，请参见 [Testing & Video Recordings](/zh/work-with-devin/testing-and-recordings)。

<div id="how-computer-use-works">
  ## Computer Use 功能的工作原理
</div>

当 Devin 在会话中使用 Computer Use 功能时，会遵循以下流程：

1. **截取屏幕截图**，以了解当前屏幕上可见的内容
2. **识别可交互元素** —— 按钮、文本输入框、菜单、链接 —— 并决定要与哪些进行交互
3. **执行操作** —— 点击、输入、滚动，或使用键盘快捷键
4. **等待并观察** —— 再次截屏以查看该操作的结果
5. **重复上述步骤**，直到任务完成

这种“截图—操作”循环使 Devin 能够适应屏幕上的任何内容，像人类一样处理动态内容、加载状态、弹出窗口和意外弹出的对话框。

<div id="computer-use-and-testing">
  ## 电脑操作与测试
</div>

电脑操作是 Devin [测试与录屏](/zh/work-with-devin/testing-and-recordings) 工作流的基础。当 Devin 在创建拉取请求 (PR) 后测试你的应用时：

1. **设置** — Devin 安装依赖、启动你的应用并准备环境
2. **测试规划** — Devin 阅读代码 diff 并创建一份聚焦的测试计划
3. **通过电脑操作执行** — Devin 使用其桌面环境与应用交互，按测试计划一步步执行
4. **录制** — 整个过程会被录制成带批注的视频，然后发送给你进行审核

电脑操作与测试与录屏工作流之间的关键区别在于作用范围：**电脑操作** 是底层能力 (桌面交互) ，而 **测试与录屏** 是在此之上构建的结构化工作流，它使用电脑操作来测试你的 PR，并提供视频佐证。

<div id="tips-for-getting-the-best-results">
  ## 获得最佳效果的建议
</div>

<CardGroup cols={2}>
  <Card title="明确要测试的内容" icon="bullseye">
    * "打开应用，在右上角点击 Settings 按钮，切换深色模式，并确认所有文本仍然清晰可读"
    * "启动 Electron 应用，创建一个新文档，输入一些文本，并在关闭窗口时确认文档已成功保存"
  </Card>

  <Card title="告诉 Devin 成功的标准" icon="check">
    * "仪表盘应显示三个图表，且没有错误信息"
    * "提交表单后，页面顶部应出现绿色的成功提示横幅"
  </Card>
</CardGroup>

<div id="pre-configure-access">
  ### 提前配置访问
</div>

如果你的应用需要身份验证，请提前设置好[secrets](/zh/product-guides/secrets)，这样 Devin 就可以在会话过程中无需再向你确认即可登录。完成[环境配置](/zh/onboard-devin/environment)，以确保 Devin 能够安装依赖项并顺利启动你的应用。

<div id="create-testing-skills">
  ### 创建测试 Skill
</div>

对于需要频繁测试的应用程序，你可以创建一个 [Skill](/zh/product-guides/skills)，用来准确告知 Devin 如何为你的应用进行配置和测试。这样可以在多次会话中节省时间，并确保测试过程的一致性。示例请参见 [Testing & Video Recordings — Skill 建议](/zh/work-with-devin/testing-and-recordings#skill-suggestions)。

<div id="scripted-browser-use-via-playwright">
  ## 通过 Playwright 使用脚本控制浏览器
</div>

Devin 的 Chrome 浏览器提供了一个可供 Playwright 连接的 **Chrome DevTools Protocol (CDP)** 端点。Devin 可以编写并运行 Playwright 脚本，对其当前运行的浏览器执行自动化交互——例如登录流程或系统化的数据录入。你也可以自行编写这些脚本，并将其提交到你的代码仓库中。对于大多数其他浏览器操作，建议使用 Devin 原生的 Computer Use 或浏览器工具。

<div id="how-it-works">
  ### 工作原理
</div>

Devin 的 Chrome 实例会在端口 **29229** 上监听 CDP 连接。Playwright 脚本可以连接到这个浏览器，执行操作 (填写表单、点击按钮、处理重定向) ，然后断开连接。由于脚本连接的是*现有*浏览器，而不是启动新的浏览器，因此所有状态变更——Cookie、localStorage、身份验证令牌——都会在脚本退出后保留。

这意味着 Devin 可以立即使用已完成身份验证的会话：刷新页面、页面跳转，并像平常一样与应用正常交互。

<div id="example-connecting-to-devins-browser">
  ### 示例：连接 Devin 的浏览器
</div>

```python theme={null}
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp("http://localhost:29229")
    context = browser.contexts[0]
    page = context.pages[0] if context.pages else context.new_page()

    # 示例：导航并登录
    page.goto("https://example.com/login")
    page.fill('input[name="email"]', "user@example.com")
    page.fill('input[name="password"]', "password")
    page.click('button[type="submit"]')
    page.wait_for_url("**/dashboard")
    print("登录成功！")
```

运行此脚本后，Devin 的浏览器会自动登录并可直接使用——无需手动操作。

<div id="when-to-use-this">
  ### 何时使用此功能
</div>

<CardGroup cols={2}>
  <Card title="SSO / OAuth 流程" icon="key">
    自动执行多步骤登录流程 (例如 Okta、Auth0、Google SSO) ，避免你在每次会话中都要手动逐步点击这些繁琐操作。
  </Card>

  <Card title="环境设置身份验证" icon="gear">
    在你的[环境设置](/zh/onboard-devin/environment)中加入登录脚本，这样 Devin 在每次会话开始时都已完成身份验证。
  </Card>

  <Card title="基于 Skill 的自动化" icon="wand-magic-sparkles">
    将登录或数据录入脚本存储在 [Skill](/zh/product-guides/skills) 中，以便 Devin 在需要时自动调用。
  </Card>

  <Card title="系统化数据录入" icon="table">
    为重复性的表单提交或批量数据录入编写脚本，避免通过点选执行这些缓慢且容易出错的任务。
  </Card>
</CardGroup>

<div id="tips">
  ### 提示
</div>

* 将登录脚本存放在你的 代码仓库 的 `.agents/skills/` 目录中，以便它们在不同会话之间持续保留
* 使用 [secrets](/zh/product-guides/secrets) 存储凭据——在脚本中通过环境变量引用它们
* CDP 端点始终是 `http://localhost:29229`——无论是否启用 桌面模式，使用的都是同一个端口
* 脚本运行后，Devin 可以使用 Computer Use 或浏览器工具与已认证的会话交互

<div id="troubleshooting">
  ## 故障排除
</div>

<div id="devin-cant-find-a-ui-element">
  ### Devin 找不到某个 UI 元素
</div>

如果 Devin 无法在屏幕上找到某个按钮或元素，请在给 Devin 的指示中尽量更具体——描述该元素的位置、文字标签或周围的界面内容。比如，“点击弹窗右下角蓝色的 **Save** 按钮”要比“点击 Save”更好。

<div id="the-app-doesnt-render-on-devins-desktop">
  ### 应用无法在 Devin 的桌面上显示
</div>

默认情况下，Devin 运行在 Linux 环境中。如果你的应用程序只能在 Windows 上运行，请在 [Windows 环境](/zh/onboard-devin/environment/windows-support) 中运行你的会话，这样 Devin 就可以在那里测试它。仅支持 macOS 的应用程序不受支持。由于 Web 应用在 Chrome 中运行，因此不受平台限制。对于桌面应用，请确保提供与你的会话运行平台对应的构建版本。

<div id="devin-is-clicking-the-wrong-things">
  ### Devin 点击错了地方
</div>

如果 Devin 在你的 UI 上出现误操作，请在 [Skill](/zh/product-guides/skills) 或 [Knowledge](/zh/product-guides/knowledge) 中添加一条包含你应用具体导航说明的条目。描述精确步骤 (“点击左上角的汉堡菜单，然后在下拉菜单中点击 **Settings**”) 可以减少歧义。
