前言¶
在 DeepSeek Harness (DSH) 中開發智能體時,處理多模態輸入通常需要手動判斷。此插件解決了這個問題:它檢測用戶消息中的圖像,並自動將路由切換到視覺模型,同時將純文本請求保留在原始模型上。這避免了在文本輪次中調用視覺模型造成的資源浪費,也防止了在圖像輪次中調用純文本模型導致的失敗。
插件介紹¶
@blue/dsh-image-model-router 是一個由 Blue-2571 維護的 DSH 插件。它的核心功能是:當用戶消息包含圖像時,將代理請求路由到視覺模型(默認爲 deepseek-v4-flash-vision-exp);當消息僅包含文本時,保持使用原始模型(如 deepseek-v4-pro)。插件內部使用 WeakMap 進行狀態標記,確保狀態僅在當前代理和步驟內有效,不會跨代理或跨輪次泄漏。
安裝與啓用¶
插件默認處於禁用狀態,安裝後不會立即改變現有路由邏輯。
1. 通過 NPM 安裝:
dsh plugin --profile web add @blue/dsh-image-model-router
2. 從本地 Git 檢查安裝(開發模式):
git clone https://github.com/Blue-2571/dsh-image-model-router.git
cd dsh-image-model-router
dsh plugin --profile web add .
配置說明¶
插件安裝後不會自動生效,必須在對應 profile 的 cordis.patch.yml 文件中手動配置並啓用。
配置示例:
- id: dsh-image-model-router
disabled: false
config:
provider: deepseek-official
model: deepseek-v4-flash-vision-exp
配置項說明:
* provider:視覺請求的目標提供者 ID,默認爲 deepseek-official。
* model:視覺模型 ID,默認爲 deepseek-v4-flash-vision-exp。你可以根據 provider 支持的任何圖像能力模型進行修改。
工作原理¶
插件在代理執行流程中攔截請求並檢測圖像:
1. 當用戶消息包含圖像塊時,插件會在 agent/pre-step 階段標記當前代理。
2. 在 agent/request 階段,插件檢查標記。如果存在標記,則交換 provider 和 model 爲視覺配置,並在處理完成後清除標記。
3. 如果消息不包含圖像,則跳過標記和交換,使用原始模型配置。
插件會像 DSH 本身的圖像策略一樣,遍歷嵌套的 tool-result 內容,因此工具返回的圖像也會被視爲輸入圖像。
注意事項¶
- 默認禁用:安裝後必須顯式在
cordis.patch.yml中將disabled設爲false才能啓用。 - 刷新生效:修改配置後,必須重啓 profile (
dsh web) 並在瀏覽器中執行硬刷新,配置纔會生效。 - 環境要求:需要 Node.js 環境
^22.19.0 || >=24.0.0。
總結¶
該插件通過自動化模型路由邏輯,降低了在 DSH 中處理多模態輸入的複雜度。更多細節和源碼,請參考:GitHub 或 DSH 插件目錄。