前言¶
在 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 用流程说明插件如何把每次观察当作短期能力票据:
computer_observe在显式 App/窗口上读取有界 AX 树,返回 opaque ref、指纹与过期时间(ref 在内存中保留约 1–30 秒,且按exec.agent.id隔离)。- 可选的
computer_visual_observe在同一 observation 互斥锁下,对绑定窗口做原生 PNG、像素校验,并把 AX Set-of-Mark 编号烙入图片,经 DSH 附件交给当前支持图片的模型。 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 未给出单条「复制即用」的业务脚本,但工具契约决定了可复现的调用顺序:
- 用
computer_apps或computer_launch确定目标 App 与窗口上下文(computer_launch仅接受精确 bundle id)。 - 调用
computer_observe取得observation_id与 ref;在 ref 过期或窗口变化前完成后续步骤。 - 若当前模型 route 支持图片且需理解自定义控件,先
computer_visual_observe,再经宿主批准后computer_visual_act(使用附件像素坐标与capture_sha256);效果须通过再次观察验证,因视觉派发回执恒为unknown。 - 对 AX 可解析目标,用
computer_act执行 click/type/key 等;遇策略拦截时完成宿主一次性确认。 - 调试权限或回执时调用
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 配置存在不等于已通过签名公证发布。
链接¶
- SkillHub 目录页:https://www.skillhub.cn/plugins/ZSeven-W/dsh-computer
- 源码与英文/简体中文 README:https://github.com/ZSeven-W/dsh-computer
DSH Computer 把 macOS 桌面自动化收束为「短观察 → 可选视觉证据 → 重新核验 → 宿主门控 → 有界回执」的链路,适合在 DSH「一切皆插件」的生态里,以 admin-security 取向补齐本机 Computer Use,而不是把屏幕快照当成长期操作授权。