dsh-computer-use-ng:为 DeepSeek Harness 提供可观察的桌面 Computer Use

前言

在 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 与安全护栏行为。

使用前请注意:

  1. 插件在当前 DSH 进程权限下调用 cua-driver 操作本机桌面,安装前应阅读源码、MIT 许可证 与 package.json 中的权限摘要。
  2. 键盘/文本在后台投递被拒绝时,可能请求用户单次批准再尝试前台模式,并可能切换窗口焦点;危险操作与密码框有额外保护。
  3. 问题反馈、功能请求与 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。

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

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

Xiaoye