dsh-computer-use:Windows 桌面自动化插件

前言

DeepSeek Harness (DSH) 的设计理念是“一切皆插件”。在开发桌面智能体时,需要直接操作 Windows 窗口或应用是常见需求。dsh-computer-use 是一个工作流插件,它将 Codex 的原生 Windows Computer Use 能力接入 DSH,通过 stdio JSON-RPC 协议驱动本机已安装的 codex-computer-use.exe。

它不做像素级识别:使用 UI Automation 可访问性树来“看”窗口,使用 SendInput 输入注入来“动”窗口。底层复用 Codex 原生助手,不重新实现一遍 Win32 交互。

前置条件

  1. 本机必须已安装 Codex 桌面版(codex.exe 和 codex-computer-use.exe 由它提供)。
  2. 环境需要安装 Node.js,版本要求为 ^22.19.0 || >=24.0.0。

安装

在项目的 package.json 中添加依赖,并在 DSH 配置中引入该 bundle。

{
  "dependencies": {
    "dsh-computer-use": "github:gxpppp/dsh-computer-use"
  },
  "dsh": {
    "profile": {
      "bundles": [
        // ... 其它 bundle
        "dsh-computer-use"
      ]
    }
  }
}

安装完成后,重启 DSH 以加载插件。配置写入 cordis.patch.yml 后也需要重启 DSH 生效。

核心功能

插件提供以下核心能力:

  • 应用/窗口枚举:只读操作,用于识别当前桌面上的应用或窗口。
  • 可访问性树 + 元素索引:通过 UI Automation 树获取界面结构,辅助定位元素。
  • 输入注入:支持点击、输入、按键、滚动和拖拽操作。
  • 剪贴板粘贴:支持中文及长文本的粘贴。
  • 截图:
    • Windows 11:使用原生 WGC(Windows Graphics Capture)。
    • Windows 10:使用 PrintWindow 兜底。
  • 窗口故障自愈:处理窗口最小化、几何变化或句柄失效等情况。
  • 等待原语:等待特定文本出现/消失或窗口关闭。
  • 桌面锁定探测:主动探测桌面锁定状态,避免模型误判。

工具使用

插件通过 6 个工具暴露能力:

  1. computer_use_status
    自检工具,用于定位 helper 进程、检查截图能力、查看已授权应用及免审批白名单。支持 action="reset" 清空授权并重启 helper。
  2. computer_use_apps
    枚举应用或窗口(只读)。
  3. computer_use_state
    获取窗口快照,包含可访问性树(含索引与焦点)、截图或两者。
  4. computer_use_act
    执行单个动作(含 paste_text),默认自动刷新并回传新状态。
  5. computer_use_wait
    等待界面就绪,支持等待文本出现/消失或窗口关闭。
  6. computer_use_launch
    启动应用并轮询等待窗口出现。

授权模型

每个应用在被操作之前,都需要获得一张授权票。票只有两个来源,按顺序检查:

  1. 免审批白名单:在配置的 alwaysAllowedAppIds 中匹配应用名。
  2. 审批弹窗:走 DSH 的 approval.request(),必须返回 allowed-once。

配置白名单

白名单配置写在 cordis.patch.yml 中:

# cordis.patch.yml
- id: computer-use
  disabled: false
  config:
    alwaysAllowedAppIds:
      - mspaint.exe
      - msedge.exe

注意:配置写完后必须重启 DSH 才能生效。不建议通过 GUI 设置页配置,因为部分 DSH 版本的设置面板与插件读取的配置对象可能不同步。

注意事项

  • 权限与授权:每个应用在被操作前都需要授权。如果是首次操作某个应用,请确保 DSH 的 approval 策略为 ask,否则弹窗不会出现。
  • Win10 性能:在 Windows 10 上,截图功能可能较慢(约 1–3 秒/张)且无法读取硬件加速窗口。建议在配置中设置 allowScreenshots: false。
  • 浏览器与终端限制:浏览器窗口自动化和终端类应用目前受到策略限制,无法直接操作。

结语

该插件通过复用 Codex 原生能力,为 DSH 提供了标准化的桌面控制接口。开发者可以通过标准的 DSH 工具进行状态获取、界面等待和动作执行,从而构建更复杂的桌面自动化工作流。

详细信息请查看 catalog 页面 或 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye