前言¶
在 DSH 里做「电脑使用」类智能体时,常见瓶颈是:每个按键都要走一轮模型,截图观测体积大、延迟高,自动化还会抢走鼠标和前台焦点。下面介绍社区插件 dsh-computer-use(维护者 alexkwok213,分类:客户端)。它把 macOS 桌面控制接到 Harness 的工具链上,配合独立的 cu 原生引擎,强调后台 Accessibility(AX)操作、本地批量步骤、以及 AX 树增量观测,而不是每步都依赖全屏 PNG。
这是什么¶
Computer Use for DeepSeek Harness — 让 Harness 驱动真实的 macOS 应用。
插件本身是 DSH 客户端:持有 TCC 授权、投递事件的是单独安装的 cu 引擎(Swift,仅用 Apple 公开框架)。插件通过本地 HTTP 与引擎通信;引擎未就绪时插件仍可加载,各工具会返回结构化的 service_unreachable 及后续步骤,而不是直接崩溃。
- 目录页:https://www.skillhub.cn/plugins/alexkwok213/dsh-computer-use
- 源码:https://github.com/alexkwok213/dsh-computer-use
- 许可证:MIT(package.json 版本 0.1.0)
设计要点¶
README 归纳的三条思路与多数「逐步点屏」循环的差异如下:
- 本地批量执行:
cu_batch在本地一次跑完 click → type → key → wait 等序列(约 300 ms 量级),而不是每个动作各占一轮模型。 - 按增量观测:变更类调用返回紧凑的
+added / -removed / ~changedAX 树 diff,模型读几行文本而非大图。 - 不抢指针:点击、输入、滚动经
AXPress或按 PID 投递事件,用户鼠标位置不变,目标应用也不必在最前。
核心功能¶
| 能力 | 说明 |
|---|---|
| 后台优先 | 点击 / 输入 / 按键 / 滚动不移动用户光标、不抢焦点 |
| 浮动胶囊 + 光晕 | 右上角非激活状态 pill(cu capsule)、目标窗口边框(cu halo),Stop 一键写 ~/.cu/pause 并 latch |
| 对话内预览 | 目标窗口截图经 DSH attachments.saveImage inline 附在对话里 |
| 分屏会话 | cu_session(start) 将 DSH dock 到右侧、目标窗口布局在左侧,stop 时恢复(类似 Claude prepareDisplay,并减轻 Stage Manager 缩略图抖动) |
| AX 增量 | 变更工具在同一调用里返回树 diff |
| 混合定位 | 先 AX 语义搜索,画布类应用可回退 Apple Vision OCR |
| Unicode | 中日文输入经 read-back 校验 |
工具一览¶
插件注册 12 个 cu_* 工具(名称以 README 为准):
| 工具 | 用途 |
|---|---|
cu_status |
服务健康、Accessibility / Screen Recording 授权、pause latch、活跃 session |
cu_session |
start / preview / stop / resume 视觉会话(胶囊、光晕、侧 dock、分屏、inline 预览) |
cu_windows |
列出屏幕窗口与运行中的应用 |
cu_launch |
按 bundle id 或 .app 路径启动;把舞台外窗口拉回当前 stage |
cu_snapshot |
AX 树与稳定引用 e1, e2, … 及 delta diff |
cu_screenshot |
窗口或全屏截图并 inline 附加 |
cu_click |
按 ref 或 x, y 后台点击,带 post-click AX delta |
cu_type |
后台文本(type / setvalue / action)与 read-back |
cu_key |
后台按键或快捷键 |
cu_scroll |
后台垂直 / 水平滚动 |
cu_find |
混合搜索:AX 优先,OCR 回退 |
cu_batch |
单调用本地执行多步 click / type / setvalue / key / scroll / wait / action |
Skill 在 DSH / 菜单中可见:/computer-use、/dsh-computer-use、/cu。
环境与依赖¶
- macOS 14+
- DeepSeek Harness 及插件加载相关包(
@deepseek-ai/dsh-tools、@deepseek-ai/schemastery等,见 package.jsonpeerDependencies) - 已构建并安装的
cu引擎,且对引擎应用授予 Accessibility 与 Screen Recording - DSH 引擎要求:
dsh>=0.1.5-rc.0(package.jsonengines)
随时检查授权与服务(README 示例):
curl -s http://127.0.0.1:47777/v1/status | jq '{accessibility, screenRecording, paused, windows}'
引擎二进制解析顺序:CU_BIN → ~/Library/Application Support/cu/bin/cu → /Applications/Computer Use.app/Contents/MacOS/Computer Use → 相对插件的 ../../../bin/cu。
安装与启用¶
官方步骤(须先装好引擎并确认 http://127.0.0.1:47777 可用):
- 构建并安装 engine,确认本机服务已启动。
- 在 DSH profile 目录安装插件:
cd ~/.dsh/profiles/<your-profile>
pnpm add link:/path/to/dsh-computer-use
- 在 profile 的
package.json→dsh.profile.bundles中登记 bundle,或由自带的cordis.patch.yml注册。 - 重启 DSH。12 个
cu_*工具应出现,skill 进入/菜单。
配置项¶
| 选项 | 默认 | 说明 |
|---|---|---|
serviceUrl |
http://127.0.0.1:47777 |
本地引擎 URL |
autoSession |
true |
对窗口操作时自动显示浮动胶囊 |
defaultPreviewMaxDim |
960 |
inline 预览最大边长(像素) |
典型用法思路¶
先做 cu_status 或上述 curl 确认引擎与 TCC;用 cu_windows / cu_launch 选定目标应用与窗口。
对需要连续 UI 操作的回合,优先 cu_snapshot 拿 e1… 引用,再用 cu_click、cu_type、cu_key 等单步工具,或 cu_batch 把多步合并为一次本地执行;每次变更工具返回的 AX delta 才是判断 UI 是否变化的主要依据(ok: true 不保证界面已变)。
需要可视化协作时:cu_session(start) 开启分屏、胶囊与 inline 预览;用户点 Stop 后需 cu_session(resume) 才能继续变更类调用。截图观测可用 cu_screenshot;元素难找时用 cu_find。
安全与适用注意¶
- Stop 始终一键可达;pause 后插件拒绝进一步变更调用,直至 resume。
- 插件只访问 127.0.0.1,README 写明无凭据收集、无遥测。
- 适合:已在 DSH 中开发 macOS 桌面自动化、能接受单独维护
cu引擎与 TCC 授权的开发者。 - 插件随当前 DSH 进程 加载运行;安装前请自行审阅源码与 MIT 许可证。SkillHub 社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
- 仅支持 macOS;非 Mac 环境无需安装此客户端插件。
结尾¶
dsh-computer-use 把 Harness 的工具面扩展到真实 macOS UI:后台 AX、本地 batch、增量观测与分屏会话,意图降低「每步一轮模型 + 全屏图」的成本。使用前完成 cu 引擎 与双 TCC 授权;插件与 profile 按 README 用 pnpm add link:… 链入并重启 DSH 即可。