dsh-whale-eyes:不截屏的屏幕感知,給 DSH 模型一雙眼睛

前言

在 DeepSeek Harness(DSH)裏做桌面智能體時,模型往往不知道用戶當前在哪個應用、焦點落在哪、還有哪些窗口開着。常見做法是截屏交給視覺模型,整屏像素成本高、延遲大,畫面還會離開本機。社區插件 dsh-whale-eyes(倉庫 Lh1314-China/dsh-whale-eyes)走另一條路:用 UI Automation 與 Win32 在本機彙總結構化短文本,註冊 screen_sight 工具,一次調用大約 55~75 token,且不截屏、不上傳。下面介紹它的定位、安裝方式與使用邊界。

這是什麼

dsh-whale-eyes(中文名「鯨魚的眼睛」)是面向 DeepSeek Harness 的屏幕感知插件,維護者爲 Lh1314-China(作者署名:小鯨 & 凌寒)。SkillHub 分類爲 模型推理;當前 npm 包版本 0.1.2,許可證 MIT,僅支持 Windows(os: win32)。

它解決的是:在儘量不增加 token 與隱私暴露的前提下,讓模型讀到前臺應用名、窗口標題、焦點控件摘要,以及可選的窗口列表——輸出是純文本,不是像素。

示例輸出形態(README 摘錄):

app: DeepSeek Harness
win: DSH插件:低token實現屏幕視覺 — DeepSeek Harness
focus: Document "DSH插件:低token實現屏幕視覺 — DeepSeek Harness" = dsh-app://app/
wins: 中轉站 | GitHub | 本地磁盤 (D:) - 文件資源管理器 | SakuraCat

不調用 screen_sight 時,插件本身不帶來額外開銷。

核心功能

工具:screen_sight

模型側只有一個工具,參數如下:

參數 類型 說明
budget integer 摘要體量。25 爲應用+標題;60 爲再加焦點控件;220(默認)爲再加窗口列表

調用示例:

{ "budget": 60 }

守護進程按 JSON 估算預算再裁剪,實際返回的純文本往往比估算更短。

與截圖方案的差異(README 對比)

截圖方案 本插件
隱私 整圖可能離開本機 僅結構化文本;密碼框爲 [password],部分密碼管理器類應用整條爲 [blocked]
成本 整屏約 660 token 量級(README 表中示意) 單次約 55~75 token,還可繼續壓 budget
速度 渲染、縮放、編碼 本地 TCP 往返,README 稱約 10~30 ms
信息形態 像素,需模型自行解讀 已是「在哪個應用、哪個控件」

隱私與邊界

README 明確約定:

  • 不截屏、不上傳、不讀剪貼板、不落盤。
  • 密碼框(IsPassword)內容一律替換爲 [password]。
  • 密碼管理器一類應用整條摘要塌縮爲 [blocked]。
  • 僅在本機 127.0.0.1 通信,無出站請求。

工作原理(概要)

DSH 主機進程中的 index.js 註冊 screen_sight,必要時拉起守護進程;runtime/daemon.ps1 常駐(約 250 ms 輪詢),結合 UI Automation、Win32 與 runtime/lib.ps1 的隱私過濾與預算裁剪。默認監聽 127.0.0.1:8791(行式 JSON),端口被佔用時從 8791 起順延最多 +9,實際端口寫入 runtime/port.txt。

若本機已有 dsh-screen-sense 在跑同類守護進程,本插件會直接複用,不另起第二個輪詢器。可選 runtime/cdp.ps1 通過 DevTools HTTP 補瀏覽器標籤頁信息(同樣不截屏);默認工具路徑不觸碰會截圖的 region op。

安裝與啓用

裝完後 重啓 DSH,screen_sight 會出現在模型可用工具列表。README 給出三種方式,任選其一。

1. GitHub(推薦)

插件管理頁 → 添加插件 → 填寫:

https://github.com/Lh1314-China/dsh-whale-eyes

或 PowerShell:

dsh plugin --profile desktop add github:Lh1314-China/dsh-whale-eyes

2. npm(發佈之後)

dsh-whale-eyes

3. 本地目錄

C:\path\to\dsh-whale-eyes

環境要求(package.json):Node >=20;DSH >=0.2.1-rc.2 <0.4.0;聲明兼容 desktop、web profile,但運行時能力依賴 Windows 本機 API。

典型用法

在對話或智能體流程中,讓模型在需要「看清當前桌面上下文」時調用 screen_sight。若只需知道前臺應用與標題,可將 budget 設爲 25;需要焦點控件用 60;需要窗口列表用默認 220 或按需調整。

本地調試守護進程時,可手動起進程並用 TCP 發 digest 請求(README 示例,端口可改):

powershell -NoProfile -ExecutionPolicy Bypass -File .\runtime\daemon.ps1 -Port 8801
$c = New-Object Net.Sockets.TcpClient; $c.Connect('127.0.0.1', 8801)
$s = $c.GetStream(); $w = New-Object IO.StreamWriter($s); $w.AutoFlush = $true
$w.WriteLine('{"op":"digest","budget":220}')
(New-Object IO.StreamReader($s)).ReadLine()

守護進程還支持 ping、digest、events、pages 等 op;默認產品路徑不暴露會截圖的 region。

適用場景與注意

適合誰:在 Windows 上跑 DSH 桌面 profile、希望模型感知「當前在哪個窗口、焦點在哪、還有哪些窗口」,又不想爲每次感知付整屏截圖 token 的開發者。

已知限制(README):

  • 僅 Windows,依賴 UI Automation 與 Win32。
  • Electron / Chromium 應用在 UI Automation 中常只暴露窗口層,需 CDP 補齊(瀏覽器需 --remote-debugging-port)。
  • 中文標題可能被按字符截斷,… 爲截斷標記。

安全提示:插件以當前 DSH 進程權限運行,並通過本機 API 讀取界面結構。安裝前應自行查閱 源碼倉庫 與 MIT 許可證,確認符合你的合規與隱私要求。

DSH 生態主張「一切皆插件」;SkillHub 目錄頁 爲社區站點,與 DeepSeek / 幻方無官方從屬關係,並非官方應用商店。

結尾

dsh-whale-eyes 把桌面上下文壓成幾十 token 的純文本摘要,用 screen_sight 一次調用即可,適合作爲 Windows 上 DSH 智能體的低代價「眼睛」。進一步瞭解可打開 SkillHub 插件頁 與 GitHub 倉庫。

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

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

小夜