dsh-opencode-session-header:DSH 中 OpenCode Go 的會話頭注入

前言

在使用 DeepSeek Harness (DSH) 調用 OpenCode Go 模型時,需要 x-opencode-session 請求頭來處理會話路由和提示緩存。DSH <= 0.1.2-rc.1 在默認配置下不發送該頭,導致所有 OpenCode Go 請求返回 400 MissingSessionID 錯誤。上游修復方案尚未發佈,此插件填補了這一本地修復的空白。

插件介紹

dsh-opencode-session-header 是一個爲 DeepSeek Harness (DSH) 編寫的插件,由 beihzb 維護。它通過注入 x-opencode-session 頭部,修復了 OpenCode Go 的會話校驗錯誤,同時保持原有的路由和緩存優化機制。

核心功能

  • 單會話注入:爲每個 DSH 會話注入獨立的 x-opencode-session 頭。
  • 修復報錯:解決 400 MissingSessionID 拒絕問題。
  • 優化保留:保持 OpenCode 的按會話路由和提示緩存優化。
  • 嚴格範圍:僅對 opencode.ai 域名生效,不影響其他 Provider。
  • 無需重啓:通過配置文件即時開關,無需重啓 DSH。
  • 零依賴:不引入額外的第三方庫。

安裝與啓用

在終端執行以下命令安裝插件:

dsh plugin --profile web add dsh-opencode-session-header

安裝後,需要重啓一次 dsh web 服務以加載插件。啓動日誌中應顯示插件加載信息。

運行時開關

插件提供運行時開關功能,無需重啓服務即可生效。

開關文件位於:
<DSH_HOME>/plugins/dsh-opencode-session-header.json

默認內容爲:

{ "enabled": false }
  • false:關閉注入,請求頭保持原樣。
  • true 或文件缺失:開啓注入。
  • 插件會在每次 LLM 請求時讀取該文件,修改後立即生效。

注意事項

  • 版本要求:插件已針對 DSH 0.1.2-rc.1 驗證。
  • 依賴環境:依賴 DSH 使用進程全局的 fetch 進行 LLM 流量轉發。如果未來 DSH 更換網絡棧,插件將失效。
  • 退役計劃:當 DSH 官方支持原生按會話注入會話頭(討論 #5495)時,建議卸載此插件。

總結

該插件通過攔截並修改 HTTP 請求頭,爲 DSH 中的 OpenCode Go 請求補全了必要的會話信息,解決了報錯問題。它不破壞現有功能,且配置簡單,適合需要在當前版本 DSH 下使用 OpenCode Go 的場景。

更多詳情請訪問插件目錄或 GitHub 倉庫:
- 插件目錄
- GitHub 倉庫

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

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

小夜