dsh-computer-use:在 DeepSeek Harness 中驱动 macOS 桌面应用

前言

在 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 及后续步骤,而不是直接崩溃。

设计要点

README 归纳的三条思路与多数「逐步点屏」循环的差异如下:

  1. 本地批量执行:cu_batch 在本地一次跑完 click → type → key → wait 等序列(约 300 ms 量级),而不是每个动作各占一轮模型。
  2. 按增量观测:变更类调用返回紧凑的 +added / -removed / ~changed AX 树 diff,模型读几行文本而非大图。
  3. 不抢指针:点击、输入、滚动经 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.json peerDependencies)
  • 已构建并安装的 cu 引擎,且对引擎应用授予 Accessibility 与 Screen Recording
  • DSH 引擎要求:dsh >=0.1.5-rc.0(package.json engines)

随时检查授权与服务(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 可用):

  1. 构建并安装 engine,确认本机服务已启动。
  2. 在 DSH profile 目录安装插件:
cd ~/.dsh/profiles/<your-profile>
pnpm add link:/path/to/dsh-computer-use
  1. 在 profile 的 package.json → dsh.profile.bundles 中登记 bundle,或由自带的 cordis.patch.yml 注册。
  2. 重启 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 即可。

羽毛球分组比赛记分
小程序二维码

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

小夜