前言¶
DeepSeek Harness(DSH)的核心理念是「一切皆插件」。在智能體開發或日常調試中,開發者常使用純文本模型(如 DeepSeek、GLM 系列)處理代碼或文檔,但剪貼板中的圖片無法直接發送。系統通常會在 composer 中提示「該模型不支持視覺,請切換視覺模型」,打斷工作流。
本插件在捕獲階段攔截 composer 內的圖片粘貼操作,將圖片字節通過 dsh-drop-caret 的上傳路由落盤,並把文件路徑插入輸入框。這樣,純文本模型可以繼續使用,而圖片內容則通過路徑傳遞給後續的 workflow 或視覺工具處理。
插件定位¶
這是一個 DSH Web 客戶端插件,由 quei4r 維護,採用 MIT 許可證。它的核心作用是解決純文本模型無法接收圖片的問題:對於配置列表中的文本路由,它攔截粘貼並轉換爲路徑;對於視覺模型,它保持原生行爲不受干擾。
核心能力¶
- 粘貼攔截與轉換
攔截 composer(textarea / contenteditable)內的圖片粘貼事件。圖片會被上傳至會話目錄並生成文件路徑,最終以文本形式插入輸入框。 - 原生管線保護
僅對配置列出的textOnlyRoutes生效。視覺模型及其它非配置模型的原生縮略圖、草稿附件等行爲完全不受影響。 - 操作繞過
支持Alt+粘貼快捷鍵,可繞過插件攔截,走產品原生行爲。 - 兼容性
與@deepseek-ai/dsh0.1.0-rc.6 版本兼容。
安裝與啓用¶
該插件依賴宿主路由提供配置橋接與文件上傳服務。
- 複製插件文件
將插件目錄複製到本地 DSH 安裝目錄。
cp -r dsh-client-paste-image ~/.dsh/profiles/web/node_modules/
- 配置 Patch
在~/.dsh/profiles/web/cordis.patch.yml的insert列表中加入以下條目:
- id: ui-paste-image
name: dsh-client-paste-image
- 重啓服務
由於宿主半註冊的路由只在啓動時生效,安裝後必須重啓dsh web才能加載配置。
典型用法¶
插件通過 textOnlyRoutes 配置項控制生效範圍。只有列表中的模型纔會觸發圖片轉路徑邏輯。
- id: ui-paste-image
name: dsh-client-paste-image
config:
textOnlyRoutes:
- zai-coding-cn/glm-5.3
- "opencode-go/deepseek-*" # 使用通配符匹配
配置後,在 composer 中粘貼圖片,系統會自動上傳文件並插入路徑文本。發送時,文本中包含的路徑會被序列化。
適用場景與注意¶
適用場景:
* 需要在純文本模型(如 DeepSeek-Coder)上下文中引用圖片。
* 使用 workflow 或 agent 機制,需將圖片路徑傳遞給後續的視覺模型或工具。
注意事項:
* 前置依賴:必須安裝並運行 dsh-drop-caret,它提供 POST /api/dsh-drop 上傳路由。
* 配置空列表:如果 textOnlyRoutes 列表爲空,插件處於 fail-safe 狀態,不會攔截任何粘貼操作。
* 文件落盤:圖片文件會落在 <會話cwd>/.dsh-drop/<sessionId>/ 目錄下。
* 會話 ID 獲取:插件依賴 conversation 插槽注入的 sessionId,確保與 DSH 版本兼容。
結語¶
dsh-client-paste-image 是解決 DSH Web 端純文本模型無法直接處理圖片的一個具體方案。它通過攔截與轉換,填補了工具鏈中的一處缺口,讓模型選擇與上下文傳遞更加靈活。更多細節可參考插件目錄或源碼倉庫。