前言¶
在 DeepSeek Harness(DSH)里跑 Agent,常见瓶颈不是「写不出步骤」,而是「够不着桌面」:浏览器里的对话可以生成方案,却无法直接点开原生应用、在真实窗口里输入并核对结果。纯脚本或鼠标宏可以动界面,但往往缺少「先看清当前界面再动手」的约束,也难以把操作过程暴露给模型和用户审计。
dsh-computer-use-ng 是社区维护的 Computer Use 插件,把桌面交互拆成观察、决策与受约束执行,通过独立虚拟光标完成点击与输入,并与 DSH 0.2.x 运行时对齐。下面介绍它的定位、能力、安装方式以及推荐的操作循环。
这是什么¶
dsh-computer-use-ng(npm 包名同名)是 DeepSeek Harness 的跨平台 Computer Use 插件:读取目标窗口与 Accessibility/AX/UIA 信息,再经 cua-driver 用独立虚拟光标执行点击、输入、滚动等动作,而不是悄悄向系统投递一串不可见事件。
维护者为 AndroidSix,仓库为 AndroidSix/dsh-computer-use-ng。项目基于 Wei Jerry 的 dsh-computer-use(MIT)独立维护,自 0.4.0 起重点跟进 DSH 0.2+;与原作者无隶属关系,署名见仓库 NOTICE。在 SkillHub 等社区目录中归类为工作流类插件;README 写明其为开源社区插件,不代表 DeepSeek 官方立场。
简介与目录页一致:Community-maintained dsh-computer-use,面向 DeepSeek Harness 的 virtual-cursor Computer Use,兼容 DSH 0.2.1 系列(README 记载已在 0.2.1-rc.2 实测通过)。
核心原则与能力¶
插件强调「先观察,再操作」:没有新鲜观察快照时,动作会被拒绝;元素编号与坐标来自同一窗口观察空间;优先使用 element 编号,坐标模式保留视觉场景自由度;目标不明确、快照过期或应用不在白名单时失败关闭。
能力概览(均来自 README):
| 方向 | 说明 |
|---|---|
| 屏幕观察 | 窗口元数据、AX/UIA 元素与坐标 |
| 观察模式 | ax(默认,零视觉 Token)、native(截图交给当前对话模型)、vision(视觉观察者) |
| 指针与键盘 | 虚拟光标点击/双击/右键;文本输入与快捷键 |
| 滚动与拖拽 | 窗口本地坐标滚动、拖拽 |
| 应用管理 | app_list、app_launch |
| 安全护栏 | 快照 TTL、应用白名单、危险操作审批、密码框保护等 |
| 平台 | macOS 已验证;Windows/Linux 需按真实环境验收 |
向模型暴露 12 个工具,工具名与上游保持一致(screen_observe、computer_click 等),已有提示词和工作流无需因分支切换而改名:
| 工具 | 作用 |
|---|---|
screen_observe |
获取窗口、元素、坐标或截图 |
screen_zoom |
截取并放大窗口局部 |
computer_click / computer_double_click / computer_right_click |
点击类操作 |
computer_type / computer_key |
输入与按键 |
computer_scroll / computer_drag / computer_wait |
滚动、拖拽、等待 |
app_list / app_launch |
枚举与启动应用 |
版本与环境¶
README 记载当前插件版本为 0.4.0;仓库 package.json 中 npm 版本为 0.4.1。安装时可使用包名或固定版本 dsh-computer-use-ng@0.4.0。
- DSH 运行时:
>=0.1.2-rc.1 <0.2.0-0 || >=0.2.0-rc.1 <0.3.0-0 - Node.js:
>=22.18.0 - 依赖
@deepseek-ai/dsh-tools/@deepseek-ai/schemastery为宿主peerDependencies,不随插件打包
底层通过非 shell、固定 argv 调用 cua-driver(可由 CUA_DRIVER_BIN 或 PATH 解析;Windows 安装器布局下还可探测 %USERPROFILE%\.cua-driver\packages\current\cua-driver.exe)。
安装与启用¶
推荐通过 DSH 插件管理器安装。若曾安装旧包 dsh-computer-use,先卸载以避免同名工具重复注册:
dsh plugin --profile desktop remove dsh-computer-use
dsh plugin --profile desktop add dsh-computer-use-ng
Web profile 使用同一包名:
dsh plugin --profile web add dsh-computer-use-ng
固定版本示例:
dsh plugin --profile desktop add dsh-computer-use-ng@0.4.0
或从 GitHub 固定 tag:
dsh plugin --profile desktop add github:AndroidSix/dsh-computer-use-ng#v0.4.0
也可在 DSH 插件页 → 添加插件 中输入 dsh-computer-use-ng。安装后重启 DSH,或在插件页确认已启用。
其他入口(按需选用):
- harness-desktop:releases 下载桌面客户端后,再按上述方式安装插件并重启。
- 仓库
install.sh:将插件链到$DSH_HOME/profiles/desktop/node_modules/dsh-computer-use-ng并在$DSH_HOME/cordis.patch.yml注册;支持--dry-run预演。Windows/Linux 可先export DSH_HOME="/path/to/your/dsh-home"。 - 全局 npm:
npm install -g dsh-computer-use-ng,仍需让 DSH profile 加载 bundle,并确保cua-driver可用。
安装完成后,可用 app_list 或 screen_observe 验证工具是否出现在 Agent 侧。
典型用法¶
README 给出的第一个完整任务可作为验收脚本,交给 Agent 执行:
请完成以下桌面任务:
1. 使用 app_list 列出正在运行的应用;
2. 使用 app_launch 打开一个普通桌面应用;
3. 使用 screen_observe 观察目标窗口;
4. 找到目标按钮,优先使用 element 编号点击;
5. 使用 computer_type 输入一段非敏感测试文本;
6. 再次使用 screen_observe 验证文本已经出现;
7. 如果界面发生变化,请重新观察,不要使用旧元素编号继续操作;
8. 如果动作被安全护栏拒绝,请报告拒绝原因,不要绕过护栏。
推荐循环:
app_list / app_launch
↓
screen_observe
↓
computer_click / computer_type / computer_key
↓
computer_wait(如需等待)
↓
screen_observe 验证结果
界面明显变化后应重新 screen_observe;元素编号只属于某一次快照,不宜跨页面或长时间等待复用。
screen_observe 的 mode 默认 ax,适合 AX 树完整的原生应用;Canvas、Electron 或 AX 为空时可考虑 native 或 vision(vision 在配置 GLM key 时可能走可选的 Z.AI GLM 视觉 API,见 package.json 权限说明)。
适用场景与注意¶
适合让 DSH Agent 操作 macOS、Windows、Linux 上的原生或 AX 信息不完整的桌面界面,并构建「打开应用 → 观察 → 操作 → 再观察验证」的闭环;也可用于研究 Computer Use 与安全护栏行为。
使用前请注意:
- 插件在当前 DSH 进程权限下调用
cua-driver操作本机桌面,安装前应阅读源码、MIT 许可证 与package.json中的权限摘要。 - 键盘/文本在后台投递被拒绝时,可能请求用户单次批准再尝试前台模式,并可能切换窗口焦点;危险操作与密码框有额外保护。
- 问题反馈、功能请求与 PR 应提交到 AndroidSix/dsh-computer-use-ng,而非上游
dsh-computer-use仓库。
DSH 生态强调「一切皆插件」;SkillHub 目录页 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-computer-use-ng 把桌面自动化收敛为模型可理解的 12 个工具,并用观察快照与护栏约束执行路径,适合在 DSH 0.2.x 上落地可审计的 Computer Use。进一步了解可访问 SkillHub 插件页 与 GitHub 仓库,npm 包见 dsh-computer-use-ng。