DeepSeek Harness (DSH) 采用插件化架构,旨在扩展智能体的能力边界。在 macOS 环境下实现“计算机使用”能力,通常涉及复杂的权限申请、分辨率适配和进程通信。@wangyong1972/dsh-computer-use-macos 插件提供了原生实现方案,利用 macOS 系统内置工具(screencapture、sips、osascript)直接驱动真实屏幕,无需额外安装依赖或网络调用。
核心功能¶
该插件在 DSH 中注册了 computer 工具,提供以下能力:
- 截图与查看:截取真实屏幕并在对话流中内联显示。
- 鼠标控制:支持移动鼠标、左键点击、右键点击、双击,以及读取当前光标位置(尽力而为)。
- 输入控制:支持文本输入和快捷键组合(如
Return、cmd+c、ctrl+shift+t)。 - 滚动与等待:支持上下左右滚动,以及等待指定时长。
- 多显示器支持:支持选择特定的显示器索引进行操作。
安装与启用¶
使用 DSH 官方插件命令安装:
dsh plugin --profile <name> add @wangyong1972/dsh-computer-use-macos
安装后,插件会自动注册 computer 工具。默认配置下,该工具处于启用状态。
配置项¶
插件支持以下配置项(部分默认值如下):
enabled: 主开关,设为false可完全禁用该工具。requireConfirmation: 是否对修改性动作(点击/输入等)进行审批拦截。allowedDisplayIndex: 默认显示器索引(0-based)。screenshotFormat: 截图格式,当前仅支持'png'。actionTimeoutMs: 子进程调用的超时时间(默认 10000ms)。maxTypeTextLength: 单次输入文本的最大长度限制(默认 4096)。enableMachineLock: 启用机器级锁,防止同一 Mac 上的多个 DSH 进程并发操作。hideOtherAppsWhileActing: 操作时是否隐藏其他可见应用。excludeHostFromScreenshots: 截图时是否排除主机进程(避免截图显示终端而非目标应用)。enableSessionNotifications: 是否发送 macOS 通知提示操作开始/结束。enableAppRiskWarnings: 当操作目标为终端/IDE/系统设置时,是否在审批提示中增加警告文本。
前置要求与权限设置¶
- 系统要求:仅支持 macOS (
"os": ["darwin"])。 - DSH 主机:DSH 主机必须挂载
tools和attachments服务。 - 权限申请:
macOS 需要手动授予两个权限,插件无法自动申请:- 辅助功能:用于鼠标移动、点击、输入等操作。在「系统设置 → 隐私与安全性 → 辅助功能」中开启。
- 屏幕录制:用于截图。在「系统设置 → 隐私与安全性 → 屏幕录制」中开启。
- 注意:权限列表中通常显示为
osascript或当前启动 DSH 的终端应用,需先尝试一次computer操作(会报错提示权限缺失),随后再去系统设置中查找并勾选。
技术特点¶
- 零依赖:不安装任何额外的系统二进制文件或编译依赖。
- 零网络:所有交互均在本地完成,无网络调用。
- 自动缩放:截图会自动按比例缩小(最长边限制为 1568px),以适配视觉模型的像素限制,无需手动调整系统分辨率。
注意事项¶
- 插件未实现全局
Esc中断热键。 - 截图坐标基于缩放后的图片像素空间,而非屏幕原生像素空间。