前言¶
DeepSeek Harness (DSH) 的设计理念是“一切皆插件”。在开发桌面智能体时,需要直接操作 Windows 窗口或应用是常见需求。dsh-computer-use 是一个工作流插件,它将 Codex 的原生 Windows Computer Use 能力接入 DSH,通过 stdio JSON-RPC 协议驱动本机已安装的 codex-computer-use.exe。
它不做像素级识别:使用 UI Automation 可访问性树来“看”窗口,使用 SendInput 输入注入来“动”窗口。底层复用 Codex 原生助手,不重新实现一遍 Win32 交互。
前置条件¶
- 本机必须已安装 Codex 桌面版(
codex.exe和codex-computer-use.exe由它提供)。 - 环境需要安装 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 个工具暴露能力:
computer_use_status
自检工具,用于定位 helper 进程、检查截图能力、查看已授权应用及免审批白名单。支持action="reset"清空授权并重启 helper。computer_use_apps
枚举应用或窗口(只读)。computer_use_state
获取窗口快照,包含可访问性树(含索引与焦点)、截图或两者。computer_use_act
执行单个动作(含paste_text),默认自动刷新并回传新状态。computer_use_wait
等待界面就绪,支持等待文本出现/消失或窗口关闭。computer_use_launch
启动应用并轮询等待窗口出现。
授权模型¶
每个应用在被操作之前,都需要获得一张授权票。票只有两个来源,按顺序检查:
- 免审批白名单:在配置的
alwaysAllowedAppIds中匹配应用名。 - 审批弹窗:走 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 仓库。