前言¶
在 DeepSeek Harness(DSH)里做桌面自动化,常见做法是调用系统 API 或依赖截图 + 坐标点击。前者对模型不友好,后者容易点偏、也难以表达「先看再动」的流程。dsh-computer-use 是社区维护的工作流插件,给 harness-desktop 补上「虚拟鼠标真人操作」:模型先观察屏幕,再通过独立光标滑行、点击、输入,过程可见,跨 macOS / Windows / Linux。
下面介绍插件定位、11 个工具、安装步骤与使用注意。
这是什么¶
- 名称:dsh-computer-use(GitHub:
988hj7tczd-oss/dsh-computer-use) - 维护者:988hj7tczd-oss
- 分类:工作流(SkillHub 目录页标注「可安装 · 工作流」,当前版本 v0.1.0)
- 许可证:MIT
- 引擎:基于 cua-driver(MIT,MCP 标准接口)
插件向 DSH 注册 11 个模型友好工具。核心设计是:用无障碍(AX)树「看」屏幕、定位元素坐标(零视觉 token 成本);所有操作走像素级虚拟光标,带滑行动画与真实点击,模拟真人操作。
核心功能¶
观察与操作工具¶
| 工具 | 功能 |
|---|---|
screen_observe |
看屏幕:AX 编号树 + 坐标;AX 树为空时自动降级视觉 |
computer_click / computer_double_click / computer_right_click |
独立光标滑行到目标 + 像素级点击 |
computer_type |
文本输入(密码框自动拒绝) |
computer_key |
按键 / 快捷键(如 return、cmd+c;聊天窗口回车发送) |
computer_scroll |
滚动 |
computer_drag |
拖拽 |
computer_wait |
等待 |
app_list / app_launch |
列出 / 启动应用 |
安全设计¶
- 虚拟光标隔离:操作走 cua-driver 独立 Agent 光标,不抢占真实鼠标。
- 观察快照 TTL:快照约 15 秒过期,过期后动作被拒绝,须重新
screen_observe。 - 区域限制:可选
allowedApps白名单,名单外应用操作一律拒绝。 - 危险操作审批:目标标签命中「删除 / 支付 / 转账 / 退出登录」等危险词时,经 DSH 审批服务征询用户。
- 敏感输入保护:密码框(AXSecureTextField)拒绝自动输入。
- 无快照拒绝:任何动作必须先
screen_observe,杜绝盲操作。
坐标模式(x/y)与无目标输入(computer_type / computer_key 落到前台应用)无法预知目标内容,安全兜底依赖快照 TTL 与操作可见性;computer_key 不校验快捷键本身,请勿授予不可信模型。
可选能力¶
视觉兜底:游戏、Canvas 等无 AX 树界面,可设置 ZHIPU_API_KEY 后由 screen_observe 在 AX 为空时降级为视觉理解(glm-4.6v-flash 等,见 README)。
光标主题:内置彩虹渐变指针主题 com.dsh.computeruse.rainbow;可通过 cursorTheme 配置,未安装时回退引擎默认光标。
安装与启用¶
前提¶
- harness-desktop(含 dsh rc 运行时)
- cua-driver 已安装且权限已授权(macOS:Accessibility + Screen Recording;Windows:普通用户权限)
- 插件默认从 PATH 查找
cua-driver;若不在 PATH,设置CUA_DRIVER_BIN=/path/to/cua-driver
一键安装¶
仓库提供 install.sh,在 home 级用户 patch 层注入,不修改 profile 配置:
# 预演
./install.sh --dry-run
# 安装
./install.sh
# 卸载
./uninstall.sh
安装后重启 harness-desktop 生效。
Windows / Linux 用户:install.sh 默认 DSH_HOME 为 macOS 路径,请先 export DSH_HOME=<你的 dsh home 目录> 再运行;或手动两步:
ln -sfn <插件目录> "$DSH_HOME/profiles/web/node_modules/dsh-computer-use"- 在
$DSH_HOME/cordis.patch.yml中 insert 插件注册(见仓库cordis.patch.yml)
可选配置¶
在 $DSH_HOME/cordis.patch.yml 中覆盖:
- id: dsh-computer-use
config:
ttlMs: 15000 # 快照有效期(毫秒)
maxElements: 500 # screen_observe 最大编号元素数
allowedApps: [] # 区域限制白名单(空 = 不限制)
cursorTheme: com.dsh.computeruse.rainbow # 虚拟光标主题(空 = 引擎默认)
视觉模式(可选):
export ZHIPU_API_KEY=你的key
Key 可在智谱开放平台申请:https://open.bigmodel.cn
典型用法¶
开发验证可采用隔离 profile,不改动真实 GUI 配置。README 示例:
DSH_HOME=$PWD/.dsh-p0 ELECTRON_RUN_AS_NODE=1 \
/Applications/harness-desktop.app/Contents/MacOS/harness-desktop --expose-internals \
/Applications/harness-desktop.app/Contents/Resources/app/node_modules/@deepseek-ai/dsh/lib/bin.js \
--profile test "请调用 screen_observe 观察当前窗口并报告"
日常流程:先 screen_observe 获取编号元素与坐标,再调用 computer_click 等工具;任何操作前须有未过期的观察快照。
适用场景与注意¶
适合:需要在 DSH 对话中让模型「看桌面、点界面、输文字」的工作流;希望操作过程可见、与真实鼠标隔离的场景。
局限(README 自述):
- Windows / Linux 待真机实测(引擎官方支持)
- 像素坐标校准为近似,首次点击偏移可用视觉模式或引擎截图对比校准
- 视觉读屏对小字体精度一般;macOS 计算器等窗口可能不在 AX 树
权限与安全:插件以当前 dsh 进程权限运行,安装前应阅读源码与 MIT 许可证,确认 allowedApps、审批策略是否符合你的环境。SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系。
链接¶
- SkillHub 目录页:https://www.skillhub.cn/plugins/988hj7tczd-oss/dsh-computer-use
- GitHub:https://github.com/988hj7tczd-oss/dsh-computer-use
- npm:https://www.npmjs.com/package/dsh-computer-use