前言¶
在模型推理场景中,让智能体“看到”界面是常见需求。传统的做法是开发者手动截图并上传。DeepSeek Harness 插件 dsh-screen-eye 将这一过程自动化:模型在调用工具时即可捕获屏幕,并在同一次调用中接收图像内容。
核心功能¶
该插件为 DSH 提供了两个可直接调用的工具:
screenshot:捕获屏幕并返回图像作为内容块,模型可以直接查看。screen_permission:在 macOS 上报告权限状态;使用action: "guide"时,会打开系统设置并定位到具体的权限条目,引导用户开启。
安装¶
安装该插件无需本地构建步骤,也没有额外依赖。
dsh plugin --profile web add github:davidekingsss/dsh-screen-eye
安装完成后需重启 DeepSeek Harness。
权限配置(macOS)¶
macOS 对屏幕录制有严格的权限控制。这是使用该插件的主要障碍。
权限状态检测¶
插件通过实际尝试捕获来检测权限状态,而非猜测。如果权限未授予,screenshot 会失败。此时调用 screen_permission 工具,如果 action 为 "guide",它会打开系统设置并指引用户。
启动器名称差异¶
macOS 的权限条目名称取决于启动 Harness 的应用(即“责任进程”),而不是 Harness 本身。例如:
* 通过浏览器启动:条目名为 Google Chrome。
* 通过终端启动:条目名为 Terminal 或 iTerm。
* 通过快捷指令启动:条目名为 运行 Deepseek Harness。
工具会列出常见情况,但用户需在设置中手动匹配该条目。
操作步骤¶
在 macOS 上首次使用时,需遵循以下步骤:
- 调用
screenshot。 - 如果失败,调用
screen_permission并设置action: "guide"。 - 系统会打开“隐私与安全性”设置页面。
- 在“屏幕录制”列表中找到对应的条目并开启开关。
- 再次调用
screenshot。
无法通过编程手段自动开启权限,这是系统安全策略(SIP 保护 TCC 数据库)的限制。
捕获模式¶
screenshot 工具支持多种 mode 参数,用于定义捕获范围:
screen(默认):捕获主显示器。display:按索引捕获单个显示器。region:捕获矩形区域。坐标系原点为主显示器的左上角,因此位于主显示器左侧或上方的显示器坐标可能为负数。displays:不捕获图像,仅列出连接的显示器及其索引。window:捕获当前置顶的窗口。select:交互式选择,等待用户点击窗口或拖拽矩形。Windows 平台不支持此模式。
多帧与运动¶
通过设置 frames 参数大于 1,可以捕获连续的图像序列。参数 interval_ms 决定了帧之间的时间间隔。
- 采样速度取决于捕获区域大小:4K 全屏约需 155ms,1200x800 区域约需 56ms。
- 返回的图像是单帧存储,不会自动合成 GIF。
- 序列的总时长由
timeout_ms决定(默认 5 分钟),帧数上限由提供者限制(约 600 张)。 - 响应会报告实际达到的时间间隔。
系统差异(Windows)¶
Windows 平台的实现与 macOS 有显著差异:
- 无权限报告:Windows 没有机制允许插件报告屏幕录制权限状态。
- 图像质量:
- 如果进程不感知 DPI(DPI-unaware),捕获的图像可能是低分辨率副本。
- 如果进程未附加到交互式桌面(非交互式桌面),捕获可能为黑帧。
限制¶
- 单次调用限制:每次
screenshot调用最多返回一张图像(即使系统有多个显示器)。 - 依赖:插件本身无原生构建步骤,但 macOS 平台会在首次捕获时从源码编译一个小助手。
- 手动干预:macOS 权限必须手动开启,无法自动化。