dsh-computer-use:为 DeepSeek Harness 增加虚拟鼠标真人操作

前言

在 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 列出 / 启动应用

安全设计

  1. 虚拟光标隔离:操作走 cua-driver 独立 Agent 光标,不抢占真实鼠标。
  2. 观察快照 TTL:快照约 15 秒过期,过期后动作被拒绝,须重新 screen_observe
  3. 区域限制:可选 allowedApps 白名单,名单外应用操作一律拒绝。
  4. 危险操作审批:目标标签命中「删除 / 支付 / 转账 / 退出登录」等危险词时,经 DSH 审批服务征询用户。
  5. 敏感输入保护:密码框(AXSecureTextField)拒绝自动输入。
  6. 无快照拒绝:任何动作必须先 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 目录> 再运行;或手动两步:

  1. ln -sfn <插件目录> "$DSH_HOME/profiles/web/node_modules/dsh-computer-use"
  2. $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
羽毛球分组比赛记分
小程序二维码

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

小夜