前言¶
DeepSeek Harness (DSH) 採取“一切皆插件”的架構。如果你使用 gpt-load 管理模型池,並希望將其接入 DSH,dsh-plugin-gpt-load 提供了一個直接的方案。該插件解決了 DSH 原生 llm-pi-ai 在 provider 路由一級處理協議的限制,允許在一個分組內混用 OpenAI 和 Anthropic 協議,無需在配置文件中爲每種協議單獨建立 provider。
核心功能¶
- 單一分組:在模型選擇器中只顯示一個 “GPT-Load” 分組,不再按協議拆分。
- 每模型可選協議:默認依據 gpt-load 返回的
protocols字段判定,也可在設置中將任意模型單獨固定爲 OpenAI 或 Anthropic 協議,或恢復自動判定。 - 自動同步:啓動時與定時從
/api/models拉取模型池,無需手動維護配置列表。 - 能力自動填充:自動讀取上下文窗口、最大輸出、多模態輸入能力以及 Thinking 思考檔位(low/medium/high)。
- 密鑰安全:AccessKey 交由 DSH 的 credentials 服務保存,不寫入
settings.yaml。 - 無損寫入:同步操作只更新自身的
gpt-load配置節,不影響其他 provider 的配置與註釋。
安裝與啓用¶
- 進入目標 DSH profile 目錄(例如
~/.dsh/profiles/web)。 - 運行安裝命令:
cd ~/.dsh/profiles/web && npm install wesleyel/dsh-plugin-gpt-load
- 安裝完成後重啓 DSH 進程,插件即生效。
典型用法¶
安裝並重啓後,可在 Web UI 中進行配置:
- 進入 設置 → GPT-Load。
- 填寫網關地址(例如
http://127.0.0.1:3001)與 AccessKey。 - 點擊「立即同步模型」。
也可以在 profile 的 YAML 配置中預置:
plugins:
gpt-load-sync:
endpoint: http://127.0.0.1:3001
apiKey: gl-your-access-key
displayName: GPT-Load
defaultProtocol: auto
syncOnStart: true
syncIntervalMinutes: 60
技術說明¶
實現原理¶
Harness 的 llm-pi-ai 組件將協議定在 provider 路由一級,模型條目上的協議會被忽略。因此,在 settings.yaml 中無法表達“一個分組裏混用兩種協議”。該插件據此構建 provider,並交給 harness 自帶的適配器處理請求翻譯。
協議判定優先級¶
- 模型自身的
protocol(在設置裏顯式選擇,重啓後保留)。 - 上游
protocols只允許一種可服務協議 → 直接採用。 - 上游允許兩種 → 全局
defaultProtocol生效則用它,否則取上游列表第一個(auto)。 - 上游未聲明 → 使用
openai-completions。
只有 openai-completions 與 anthropic-messages 兩種協議可服務,上游聲明的 openai-responses、gemini 等會被忽略。
版本升級¶
舊版本在 llm-pi-ai 路由中寫入的 gpt-load / gpt-load-anthropic 會被自動接管:插件會先還原 endpoint,再移除這兩條路由。其餘 provider 不受影響。
適用場景¶
該插件適合需要通過 gpt-load 管理模型池,並希望在一個 DSH provider 分組內靈活切換 OpenAI 或 Anthropic 協議的開發者。使用時請確保安裝前已閱讀源碼與許可證。