dsh-screenshot-plugin:DeepSeek Harness 中的微信式截图按钮

在 DSH 生态中,视觉交互是智能体开发的重要一环。获取屏幕截图并直接反馈给 Agent,通常需要跨应用操作和手动整理,流程容易中断。这个插件将截图功能直接集成到对话输入框,提供类似微信的框选体验,减少手动步骤。

插件由 deepseekbluefish 维护,定位为 DSH 中的“微信式”截图工具。它通过在输入框左侧添加 ✂ 按钮,允许用户拖拽框选区域,自动编号 PNG 文件,并将包含时间戳的标记 [Shot N HH:mm] 填入输入框。

安装

使用官方命令安装插件。安装完成后,重启 DSH 或对应的客户端,输入框左侧会出现 ✂ 按钮。

dsh plugin --profile web add github:deepseekbluefish/dsh-screenshot-plugin

核心功能

插件提供了一套完整的截图交互流程:

  • 拖动框选:点击按钮后屏幕变暗,拖动鼠标框选目标区域。
  • 交互微调:松手后选区保留。用户可以拖动选区本身,或拖动选区四角/四边的 8 个手柄进行缩放。
  • 确认与取消:双击选区或按 Enter 键确认截取;按 Esc 取消。
  • 自动编号与标记:截图保存为 截屏N_HHmm.png(N 为序号),同时自动在输入框插入纯 ASCII 标记 [Shot N HH:mm]。

配置

默认情况下,截图文件保存于 ~/Pictures/DSH-Screenshots。如果需要更改目录,可以通过 profile 补丁覆盖配置。

创建或编辑 ~/.dsh/profiles/<name>/cordis.patch.yml:

- id: screenshot
  config:
    folder: 'D:\MyScreenshots'

典型用法

  1. 在对话界面点击输入框左侧的 ✂ 按钮,屏幕变暗。
  2. 拖动鼠标框选区域。松手后,选区会保持高亮,此时可以调整位置或大小。
  3. 双击选区(或按下 Enter 键)确认截取。
  4. 输入框内会自动出现 [Shot N HH:mm] 标记。
  5. 点击发送,将标记发给 Agent。配合视觉插件(如 ModLens),Agent 可根据标记中的编号与时间定位对应的 PNG 文件。

工作原理

插件分为客户端、宿主和截屏脚本三个部分:

  • 客户端:注册到 conversation.input.left 插槽,点击后发起 POST /api/screenshot/capture 请求。
  • 宿主:注册 webServer 路由,调用 PowerShell 启动全屏遮罩层。遮罩层使用 WinForms 实现,包含绿色边框、8 个缩放手柄及操作提示。
  • 截屏脚本:使用 CopyFromScreen 进行区域裁剪。脚本为纯 ASCII 源码,以避免编码问题。
  • 标记填充:标记通过 props.inputActions → sessions.provideInfo(...).props.inputActions → session.prompt(..., 'queue') 的优先级链路写入输入框。

限制与注意事项

  • 平台限制:插件仅支持 Windows,依赖 Windows PowerShell 和 System.Drawing 库。
  • 前台操作:按钮点击与框选过程需要在应用前台进行。
  • 多显示器:多显示器环境下,框选基于虚拟屏整体坐标计算。
  • Agent 读取:Agent 需要配置视觉引擎(如 ModLens)才能读取截图文件。

总结

该插件通过模拟微信的截图交互,解决了在 DSH 中快速截图并同步给 Agent 的痛点。安装简单,配置灵活,适合需要在对话中频繁使用视觉反馈的开发者。

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

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

小夜