dsh-vision:讓純文本 DSH 會話也能讀圖

前言

DeepSeek Harness(DSH)裏,宿主已經能把圖片交給聲明瞭 image 輸入能力的模型。實際開發會話裏卻常卡在兩點:內置的 read_image 要求當前會話模型本身支持圖片,純文本模型會直接拒絕;把讀圖交給子智能體並指定視覺路線時,又可能被會話級的模型選擇白名單攔住。

你需要的是:對話繼續用正在用的推理模型,讀圖單獨走一條宿主已配置的視覺路線,結果以文本回到上下文裏。維護者 YOUNG-FELIX 的 dsh-vision(分類:模型推理,當前版本 v0.4.4)就是圍繞這個缺口做的插件:一個可調用工具、一塊設置面板,無額外運行時依賴。

這是什麼

dsh-vision 通過宿主進程內的 ctx.llm.stream() 直連視覺模型,把模型回覆當文本交給調用方;鑑權留在宿主的 provider 適配器裏,插件不接觸 API 密鑰。SkillHub 目錄頁的簡述是:Let any DSH session read images through a vision-capable model the host already has. Tool + settings panel, no runtime dependencies.

插件在 DSH 社區目錄 SkillHub 上架,源碼與完整說明見 GitHub:YOUNG-FELIX/dsh-vision。許可爲 MIT;package.json 要求 Node >=22.19.0。

核心功能

工具 vision_read

面板裏可以改工具顯示名,默認可通過 JSON 參數調用(字段與 README 一致):

{
  "path":  "/home/you/shot.png",
  "paths": ["a.png", "b.png"],
  "task":  "ui",
  "prompt": "只關心左上角的錯誤提示",
  "route": "someprovider/some-model"
}
  • path / paths:本地 PNG、JPEG、GIF、WEBP;多張時數量上限可在面板配置。
  • task:auto | describe | text | ui | chart | diff | question。
  • prompt:可選,追加到對應任務模板之後。
  • route:可選,覆蓋面板裏配置的主路線。

成功時返回模型文本,並附一行元數據,例如:

[model provider/model · transport attachment · 6.2s · 1 image(s) · 220 KB · tokens 1412→180]

失敗時會露出各次嘗試的原始錯誤,不吞異常。

任務模板與可編輯提示詞

調用方只選 task,不必每次手寫提示詞,換模型、換會話時輸出顆粒度一致。六套預置模板含義如下(摘自官方文檔):

task 用途 產出側重
auto 自定義完整指令 原樣發送,不套模板
describe 通用(缺省) 主體、位置、逐字文字、顏色材質、不確定項
text 純 OCR 僅文字,保留換行與縮進
ui 軟件截圖 標題、導航、控件狀態、報錯原文、路徑與版本等
chart 圖表 類型、座標軸、圖例、可讀數值與異常
diff 多圖對比 逐項差異、變化區域、增刪元素
question 定向問答 僅依據可見內容;看不出則說明

在 設置 → 視覺 → 提示詞 中可就地修改模板,點「保存提示詞」或頁面級「保存」後寫入 ~/.dsh/dsh-vision/config.json,下一次讀圖即生效,無需重建或改源碼。promptPrefix 會拼在每次請求最前面,便於固定輸出語言或格式。

路線與設置面板

設置 → 視覺 提供狀態、路線、提示詞、自定義 API、參數與限制、開關、最近調用等區塊。主路線只列出宿主已發現且聲明支持圖片輸入的 provider 模型(如 workbuddy/…、aliyun/…、direct/…);傳輸方式可選 auto / attachment / inline,並支持備用路線與「重新發現模型」。

若無付費視覺 API,文檔給出與 dsh-connect-workbuddy 組合的路徑:從市場安裝連接器並登錄後,在視覺面板選已註冊的免費視覺模型作路線,會話計費模型可保持不變。

插件還支持 OpenAI 兼容的 自定義 API(圖片僅能 base64 內聯,密鑰落在插件配置或 apiKeyRef 引用的 ~/.dsh/.credentials.yaml);有宿主路線時文檔建議優先用宿主路線。

「運行自檢」會由宿主生成純色測試圖,讓當前路線回答顏色並比對,用於端到端驗證傳輸與模型能力。

文檔中的能力邊界(實測結論)

README 用三張固定樣圖對比了三類路線(大視覺語言模型、小通用 VL、專用 OCR)。值得寫進調用習慣的兩點:

  1. 逐字轉寫:三種路線在同一條漫頁上對白一致;若目標是文字,task: "text" 通常最快、最省。
  2. 計數與朝向:同一模型在多圖合併請求中可能把朝向說反;涉及分格數、面板方向時,每次只送一張圖,儘管 paths[] 支持多張。

不適合:當前會話模型已能直接附圖時(應直接附件);需要像素級 diff 時(文檔建議裁剪區域再問,不依賴對話模型做精確比對)。

安裝與啓用

官方 README 給出的是將插件目錄複製進 profile 並登記 bundle,不是一條 dsh plugin add … 命令。步驟如下。

  1. 將 dsh-vision 目錄複製到當前 profile 的 local-plugins 與 node_modules(<profile> 換成你的 profile 名):
cp -r dsh-vision ~/.dsh/profiles/<profile>/local-plugins/dsh-vision
cp -r dsh-vision ~/.dsh/profiles/<profile>/node_modules/dsh-vision
  1. 在 ~/.dsh/profiles/<profile>/package.json 的 dsh.profile.bundles 中加入 "dsh-vision"。

  2. 重啓 DSH 應用。

卸載時:從 bundles 與 dependencies 移除、刪除上述兩個目錄,並刪除 ~/.dsh/dsh-vision。

啓用後應在 設置 → 視覺 配置主路線;僅有自定義端點時再填 自定義 API。配置與統計分別落在:

~/.dsh/dsh-vision/config.json
~/.dsh/dsh-vision/stats.json

典型用法

下面介紹一次最小可用的讀圖調用。先確認路線已在面板保存,再在會話中讓模型調用工具(或由工作流、子智能體調用)。

單張截圖、關心 UI 文案與報錯:

{
  "path": "/home/you/app-error.png",
  "task": "ui",
  "prompt": "只列出紅色錯誤框內的原文"
}

漫畫或掃描件、只要臺詞:

{
  "path": "/home/you/page.webp",
  "task": "text"
}

臨時指定便宜 OCR 路線(會話仍爲純文本模型):

{
  "path": "/home/you/label.jpg",
  "task": "text",
  "route": "workbuddy/hy3"
}

route 的值須是宿主或面板裏已配置、且支持圖片輸入的模型 id;具體名稱以你環境中「重新發現模型」列表爲準。

倉庫內可用冒煙測試驗證插件邏輯(不啓動完整 DSH):

node scripts/smoke.mjs

適用場景與注意

適合誰

  • 主會話綁定純文本強推理模型,但仍要把本地圖片事實納入上下文。
  • 上傳鏈路被部分 provider 拒絕,需要繞過「會話模型直讀附件」的路徑。
  • 讀圖想用專用模型(OCR、大 VLM),對話繼續用已在付費的會話模型。
  • 腳本、子智能體或工作流需要讀圖,而不改會話模型或白名單。

不適合誰

  • 會話模型已支持圖片:直接附圖即可。
  • 依賴模型做像素級差異比對。

運行與安全

  • 插件隨 當前 DSH 進程 運行,權限與宿主一致;安裝前請自行查閱源碼與 MIT 許可證。
  • vision_read 只讀本地文件,不替你下載 URL;圖片字節會發往當前路線所屬的模型服務。
  • 插件設計爲不持有宿主路線的密鑰;自定義 API 路徑可能在配置中存 key 或通過 apiKeyRef 解析,面板與 /state 對密鑰做不回顯處理。詳見 README「安全說明」。
  • 每次調用都是真實模型請求,費用由提供該模型的方計量。

社區目錄 SkillHub 與 DeepSeek / 幻方無官方從屬關係;DSH 生態奉行「一切皆插件」,選用插件時以目錄頁與倉庫文檔爲準。

結尾

dsh-vision 用一條宿主內的視覺路線、一個 vision_read 工具和可配置的六套任務模板,把「讀圖」從「當前會話模型能不能看圖」裏拆出來。純文本會話、子智能體腳本和分任務選模型(OCR 對 UI 對描述)是文檔寫明的典型用法;涉及計數與方位時單圖單呼,轉寫優先 text,是 README 實測裏反覆強調的習慣。

  • 目錄頁:https://www.skillhub.cn/plugins/YOUNG-FELIX/dsh-vision
  • 倉庫:https://github.com/YOUNG-FELIX/dsh-vision
羽毛球分组比赛记分
小程序二维码

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

小夜