DSH Computer:有界观察与宿主审批的 macOS 桌面自动化插件

前言

在 DeepSeek Harness(DSH)里做 Computer Use,常见做法是模型根据截图或坐标去点界面。窗口会移动、进程会重启、同一 PID 可能被复用,另一个 Agent 也可能同时在操作——「刚才看见一个按钮」并不能当作「现在仍可安全点击」的依据。若把 AX 路径、坐标或 PID 长期交给模型参数,风险会集中在误点、过期目标和敏感字段上。

下面介绍社区插件 DSH Computer(@zseven-w/dsh-computer):面向 macOS 的无头优先 Computer Use 驱动,通过有界 Accessibility 观察、短寿命 opaque ref、动作前重新核验,以及宿主侧一次性审批,把「观察」和「动作」拆成可审计的步骤;视觉证据经原生窗口截图与 Set-of-Mark 编号交付,不依赖模型自行上报缩放或原生坐标。

这是什么

DSH Computer 由维护者 ZSeven-W 发布,npm 包名为 @zseven-w/dsh-computer,当前 README 标注的本地候选版本为 0.1.0-rc.3,许可证为 MIT。在 SkillHub 社区目录中归类为 admin-security。

插件解决的核心问题是:在 macOS 上为 DSH Agent 提供一套 headless 工具链,观察 Accessibility 树与可选的视觉附件,对高风险操作做宿主审批,对密码等安全字段永久拒绝,并以 confirmed | unknown | rejected | failed 等形式返回动作回执。原生 Helper 不随 npm 包预编译分发,需在本机构建并授予 Accessibility / Screen Recording;README 明确说明没有 Developer ID 公证的发布计划,自行构建是受支持路径。

运行环境:macOS + Node.js >=24.11.0;仓库使用 pnpm 10.34.5 作为包管理器。

设计要点:观察不是长期坐标

README 用流程说明插件如何把每次观察当作短期能力票据:

  1. computer_observe 在显式 App/窗口上读取有界 AX 树,返回 opaque ref、指纹与过期时间(ref 在内存中保留约 1–30 秒,且按 exec.agent.id 隔离)。
  2. 可选的 computer_visual_observe 在同一 observation 互斥锁下,对绑定窗口做原生 PNG、像素校验,并把 AX Set-of-Mark 编号烙入图片,经 DSH 附件交给当前支持图片的模型。
  3. computer_act 或 computer_visual_act 在动作前重新观察身份;策略要求时对高风险目标向所属用户请求一次 allowed-once;一次 observation 在可能被接受的变更动作后,其下所有 ref 失效,Agent 必须重新观察。

模型参数中不包含 Agent id、AX path、PID lease 或自报的 sensitive 开关;实时 Agent 身份由宿主提供,原始 AX 定位留在 Driver 内部。

核心工具(headless)

首个纵向切片提供下列工具(README 工具表;computer_evidence 用于就绪状态与回执查询):

工具 作用概要
computer_apps 只读列出 Dock 可见运行中 App(bundle id、pid、是否最前、可供 computer_observe 使用的 window_number)。
computer_launch 按精确反向域名 bundle id 打开或激活 App,并短暂等待首个窗口;不传参数/文档/URL,故无需审批。
computer_observe 有界 AX 树观察,返回 opaque ref、指纹、过期时间。
computer_visual_observe 对新鲜 observation 绑定的编号窗口截图,校验像素,Set-of-Mark 后通过 DSH 附件交付;仅接受 observation_id 与可选 max_marks(1–200,默认 80)。
computer_visual_act 在附件图像像素上执行 click / drag / scroll;一律需宿主审批,派发后回执为 unknown,不应盲目重试。
computer_act 对单个 fresh ref 执行 click、focus、type、key 或 scroll;每次动作前重新核验;scroll 在重新观察证明内容移动前可能为 unknown。
computer_evidence 交互会话、Accessibility/录屏就绪、Helper 身份与当前 Agent 近期 AX/视觉动作回执。

此外,插件通过 Cordis 暴露 zsevenComputerDriver 服务,并导出 @zseven-w/dsh-computer/driver 下的 TypeScript 契约(当前 contractVersion 为 5),供如 dsh-qa 等场景注入使用。

安全边界(摘要)

以下行为在 README「安全与结果语义」中有明确定义,使用时需一并理解:

  • 锁屏、登录窗口、非控制台或无法确认的桌面会话:观察、截图、动作前 fail-closed;Helper 不会唤醒、解锁或激活 App。
  • 密码框输入 永久拒绝,不能通过审批放行。
  • 删除、资金、发送、发布、分享等语义的高风险点击,以及部分按键组合,需宿主 allowed-once;安全 focus/导航可不弹窗。
  • 视觉坐标动作按 AX-opaque 未知目标处理,审批前后重新截图/核验;坐标下若发现安全字段则拒绝。
  • 插件以当前 DSH 进程权限运行;Helper 的 stdin/stdout JSON 链路在公开发行前 README 仍提醒需更强的认证 IPC/XPC 或签名宿主约束,才能抵御同用户下其他进程——安装前应阅读源码与 MIT 许可证,并理解 TCC 授权对象是 实际路径上的 DSH Computer Helper。

安装与启用

Helper 不会安装到 /Applications,也不会随包带入本机签名的 .app。官方快速开始(本地候选版)步骤如下。

1、安装 DSH CLI:

npm install -g @deepseek-ai/dsh@latest

2、在 dsh-computer 仓库 checkout 目录 安装依赖并构建(将路径替换为你的绝对路径):

pnpm install
pnpm build
dsh plugin --profile web add link:/absolute/path/to/dsh-computer
dsh web

3、观察 UI 前,需已解锁的交互式控制台会话,并为 Helper 授予 Accessibility;截图需为同一 Helper 单独授予 Screen Recording。computer_evidence 可查看会话与 TCC preflight 状态(不会代你弹权限框)。

4、若需要稳定的本机 TCC 身份,需自行选择代码签名证书并显式运行安装脚本(示例来自 README):

security find-identity -v -p codesigning
pnpm run helper:install-local -- --identity "<证书完整名称或 SHA-1>"

脚本会组装 ~/Library/Application Support/ZSeven/DSH Computer/DSH Computer Helper.app,bundle id 为 io.github.zseven-w.dsh-computer.helper。

说明:非 macOS 上包仍可安装以便 profile 报告「不支持」,原生动作不可用。SkillHub 目录页与 GitHub 仓库是社区生态入口,与 DeepSeek / 幻方无官方从属关系;安装命令以 README 为准,勿凭插件名臆造 dsh plugin add github:... 形式。

典型用法思路

README 未给出单条「复制即用」的业务脚本,但工具契约决定了可复现的调用顺序:

  1. 用 computer_apps 或 computer_launch 确定目标 App 与窗口上下文(computer_launch 仅接受精确 bundle id)。
  2. 调用 computer_observe 取得 observation_id 与 ref;在 ref 过期或窗口变化前完成后续步骤。
  3. 若当前模型 route 支持图片且需理解自定义控件,先 computer_visual_observe,再经宿主批准后 computer_visual_act(使用附件像素坐标与 capture_sha256);效果须通过再次观察验证,因视觉派发回执恒为 unknown。
  4. 对 AX 可解析目标,用 computer_act 执行 click/type/key 等;遇策略拦截时完成宿主一次性确认。
  5. 调试权限或回执时调用 computer_evidence。

开发验收可在仓库内执行:

pnpm install
pnpm run typecheck
pnpm test
pnpm build
pnpm run smoke:pack

适用场景与注意

适合:在 macOS 上为 DSH Web profile 或集成 Cordis Driver 的 QA/自动化场景,需要 AX 优先、视觉证据有界、高风险动作可审计的 Computer Use 驱动;愿意本地构建 Swift Helper 并自行管理 TCC 与可选代码签名。

注意:

  • 当前边界包括:无内置 OCR、剪贴板自动化或完整 IME;type 走可写 AX value,不等同于自然键盘输入;部分 App AX 暴露不完整时动作会 fail-closed。
  • 视觉观察依赖明确窗口号、录屏权限、DSH 附件服务及声明支持图片的 model route。
  • GitHub 星标为 0(目录页线索);版本为 RC 阶段,CI 配置存在不等于已通过签名公证发布。

链接

DSH Computer 把 macOS 桌面自动化收束为「短观察 → 可选视觉证据 → 重新核验 → 宿主门控 → 有界回执」的链路,适合在 DSH「一切皆插件」的生态里,以 admin-security 取向补齐本机 Computer Use,而不是把屏幕快照当成长期操作授权。

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

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

Xiaoye