dsh-computer-use:DeepSeek Harness 桌面操作插件

前言

在 DeepSeek Harness(DSH)里让模型「看见屏幕、点按钮、填表单」,常见做法是堆一堆独立工具 schema,或每一步都等人点批准。上下文被工具定义占满、动作和观测坐标对不齐、Windows 前台锁与 XAML 输入失败时,链路很容易断。

orangeofcarl0-sys/dsh-computer-use 是面向 DSH 的客户端类桌面操作插件(当前版本 0.5.6,MIT)。维护者 orangeofcarl0-sys 在 README 中说明:项目源自 988hj7tczd-oss/dsh-computer-use(MIT)@07477f4,现为独立维护的个人项目。下面介绍它的定位、能力与安装方式;事实以 GitHub 仓库 与 SkillHub 目录页 为准。

这是什么

给 DeepSeek Harness 增加一层可观察、可验证的桌面自动化:观察 → 编号定位 → 自动升级投递 → 验证,设计目标是全程零审批、零打断。底层通过 cua-driver 驱动本地桌面,使用独立虚拟光标,不抢占用户真实鼠标。

插件在工具面上采用折叠态 2 个 / 展开态 21 个模型友好工具:默认只暴露 computer_do 与 screen_observe,需要完整桌面能力时再展开。Windows 相关能力(前台锁、XAML/WinUI 输入、观测几何等)在 README 中标注为深度实测场景。

三个核心机制

  1. 先观察,再操作:动作必须基于新鲜观察快照(element 编号或窗口本地截图像素坐标),过期即拒绝。
  2. 所见即所点:观察输出与动作坐标共用同一「窗口本地截图像素」空间,无需额外换算。
  3. 自动升级投递:后台优先;后台不可用时自动升级前台、必要时绕前台锁,完成后恢复用户原焦点。

设计立场:无感自治

插件 README 明确不追求「极致安全」,而是在「后台优先 + 升级链 + 恢复原前台 + 审计注记」底座上执行四原则:

原则 行为
易用无感 动作零审批、零打断;归因靠全量投递注记与会话日志
自动提权 投递链自动升级;观测失败自动降级桌面级采集;观测/投递能力默认全开
极危敏感警告 extremePatterns 命中元素标签时结果附警告注记,不阻断;默认空则零差异
仅作基本兜底 凭据硬保护(密码框拒绝自动输入,唯一硬拒绝)、快照 TTL、无快照拒绝、allowedApps 白名单(默认关)

安装与使用前,应阅读仓库中的 PERMISSIONS.md 与 package.json 里 dsh.permissions 摘要:插件通过宿主 spawn 以非 shell 固定 argv 调用 cua-driver;动作以当前 DSH 进程权限运行,请自行核对源码与许可证。

核心功能

观察与坐标

模式 原理 适用
ax(默认) AX/UIA 树 → 编号 + 坐标 原生应用
native 窗口截图经 attachments 供主模型直读 Canvas/游戏/Electron、树为空
vision 视觉观察者结构化描述(默认可配 deepseek-v4-flash-vision-exp) 主模型不支持图片输入时

自动降级链:AX 树为空 → native(模型支持图)→ vision(有观察模型)→ ax。窗口级观测被拒绝时可降级桌面级采集(视觉只读,坐标系变为桌面像素,结果标注 visualOnly)。

自 v0.2.0 起,所有动作坐标均为窗口本地截图像素:screen_observe 的 @(x,y) 与 computer_click(x=,y=) 同一空间;不乘缩放、不加窗口偏移。树空或 AX 失败时,README 建议走 zoom 定位环:screen_observe → screen_zoom 裁剪 → 图内坐标按 crop 元数据换算 → computer_click。

动态工具面

状态 模型可见 何时
折叠(默认) computer_do + screen_observe 不做桌面操作时
展开 再加 19 个动作/验证/应用/委派工具 调用 computer_do({action:'enter'}) 后,下一请求可见

收起方式:computer_do({action:'exit'}),或连续 2 次非桌面工具调用后自动收起。

投递链

deliveryMode 行为
auto(默认) 后台优先 → background_unavailable 时前台重试 → 前台锁时 bring_to_front 绕锁,完成后恢复原前台
background 全程后台;不可用时结构化错误并给出前台升级指引
foreground 始终前台

单次动作可用 foreground: true 覆盖。Chromium/Electron 内容、GTK、VCL 等后台不可达目标会返回 background_unavailable,而非假装成功。

其它能力(展开态)

  • 文本与快捷键:computer_type 走 UIA ValuePattern 后台写入;组合键走 hotkey 通道。
  • 确定性验证:computer_verify、computer_wait_for(unknown 永不视为成功)。
  • 剪贴板、菜单路径直调、应用列表与后台启动、强杀开关(computer_stop / computer_resume)。
  • 子 agent 委派:computer_task,必须以 {ok,summary,evidence} 收尾;主上下文只吃一条 ≤400 字符回执。工具范围能否限制取决于宿主能力,不支持时回执会如实说明(见 README「委派的能力边界」)。
  • 上下文成本控制:重复观察降噪、紧凑动作回执(verboseReceipts: true 时附明细)。

完整工具清单与参数见仓库 README「工具清单」一节。

安装与启用

前置:cua-driver

先安装 trycua/cua 驱动(macOS/Linux 使用 curl 安装器,Windows 使用 PowerShell 安装器),或手动指定:

export CUA_DRIVER_BIN=/path/to/cua-driver

缺失时,各工具返回结构化错误与自救指引,不会静默失败。

安装插件

Windows/Linux 需先设置 DSH 主目录,例如:

export DSH_HOME=/path/to/dsh-home

官方 README 给出的安装步骤如下:

git clone https://github.com/orangeofcarl0-sys/dsh-computer-use.git
cd dsh-computer-use
./install.sh --dry-run   # 预演,不写配置
./install.sh             # 链接进 profile + 注册 bundle patch

也可按仓库 docs/store-evidence.md 手动安装。环境要求:Node.js ≥ 22.18.0,DSH ≥ 0.1.5-rc.2。

装完后重启宿主,用 app_list 或 screen_observe 验证是否生效。

配置示例

在 DSH profile 中可挂载如下片段(字段含义见 README「配置」表):

- id: dsh-computer-use
  config:
    ttlMs: 60000
    maxElements: 120
    observeDedup: summary
    verboseReceipts: false
    taskTimeoutMin: 5
    maxTaskCalls: 3
    deliveryMode: auto
    allowedApps: []
    extremePatterns: []

典型用法

进入桌面工具面并观察

  1. 调用 computer_do({ action: 'enter' }),下一请求即可见全部桌面工具。
  2. 对目标窗口调用 screen_observe,默认 mode: 'ax',需要全量清单时传 force: true。
  3. 对编号元素使用 computer_click({ element: N }),或对截图坐标使用 computer_click({ x, y })(须与最近一次有效观察同一窗口、未过 ttlMs)。

树空时的定位环(概念流程)

screen_observe(AX 树失败/树空)
  → screen_zoom(x1,y1,x2,y2)
  → 在裁剪图内确认目标并读出图内坐标
  → 图内坐标 × crop.scale + crop.x/y = 整窗截图像素
  → computer_click(x=, y=)

验证与退出

  • 用 computer_verify / computer_wait_for 对 UIA 谓词做断言或轮询。
  • 结束桌面会话:computer_do({ action: 'exit' }),或转做其它非桌面任务(连续两次后自动收起)。

适用场景与注意

适合:已在 DSH 上跑智能体、需要在本机 GUI 上完成点击、输入、滚动、菜单与简单验证;尤其 README 重点写了 Windows 前台锁与 UIA 输入的实测路径。

注意:

  • 插件声明的安全姿态是「无感自治」:除密码框硬拒绝外,动作默认不阻断;敏感环境请自行配置 allowedApps、extremePatterns,并理解审计依赖投递注记与会话日志。
  • app_launch 说明:驱动可能需要管理员权限,启动的应用可能继承高完整性级别。
  • 启用 vision 或 GLM 兜底时,可能经对应官方 API 外呼(见 package.json permissions);默认外呼为 none。
  • 社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本文仅作第三方插件说明。

结尾

dsh-computer-use 把桌面自动化收成「观察—坐标一致—三级投递—可验证」一条链,并用折叠工具面控制模型注意力成本。若要进一步了解权限边界与 Windows 测试记录,请直接阅读仓库 README、PERMISSIONS.md 与 WINDOWS_TEST.md。

  • 目录页:https://www.skillhub.cn/plugins/orangeofcarl0-sys/dsh-computer-use
  • GitHub:https://github.com/orangeofcarl0-sys/dsh-computer-use
羽毛球分组比赛记分
小程序二维码

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

Xiaoye