dsh-screen-eye:DeepSeek Harness 的自主屏幕视觉工具

前言

在模型推理场景中,让智能体“看到”界面是常见需求。传统的做法是开发者手动截图并上传。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 上首次使用时,需遵循以下步骤:

  1. 调用 screenshot。
  2. 如果失败,调用 screen_permission 并设置 action: "guide"。
  3. 系统会打开“隐私与安全性”设置页面。
  4. 在“屏幕录制”列表中找到对应的条目并开启开关。
  5. 再次调用 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),捕获的图像可能是低分辨率副本。
    • 如果进程未附加到交互式桌面(非交互式桌面),捕获可能为黑帧。

限制

  1. 单次调用限制:每次 screenshot 调用最多返回一张图像(即使系统有多个显示器)。
  2. 依赖:插件本身无原生构建步骤,但 macOS 平台会在首次捕获时从源码编译一个小助手。
  3. 手动干预:macOS 权限必须手动开启,无法自动化。

参考链接

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

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

小夜