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 的痛點。安裝簡單,配置靈活,適合需要在對話中頻繁使用視覺反饋的開發者。

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

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

小夜