前言¶
在 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 中标注为深度实测场景。
三个核心机制¶
- 先观察,再操作:动作必须基于新鲜观察快照(
element编号或窗口本地截图像素坐标),过期即拒绝。 - 所见即所点:观察输出与动作坐标共用同一「窗口本地截图像素」空间,无需额外换算。
- 自动升级投递:后台优先;后台不可用时自动升级前台、必要时绕前台锁,完成后恢复用户原焦点。
设计立场:无感自治¶
插件 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: []
典型用法¶
进入桌面工具面并观察¶
- 调用
computer_do({ action: 'enter' }),下一请求即可见全部桌面工具。 - 对目标窗口调用
screen_observe,默认mode: 'ax',需要全量清单时传force: true。 - 对编号元素使用
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.jsonpermissions);默认外呼为 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