前言¶
OpenCode Go 需要代碼來處理共享 pi-ai 適配器未提供的兩個關鍵功能:會話身份和實時模型目錄。此插件通過 opencode-go 路由提供服務,該路由爲每個模型處理 Wire 協議,並將會話 ID 映射到頭中,同時刷新模型列表以包含新發布的模型。
核心功能¶
該插件作爲 DeepSeek Harness 中的第一級 OpenCode Go 模型提供商。它實現了以下功能:
- 會話身份: 將
GenerateOptions.sessionId映射到x-opencode-session和x-deepseek-harness-session-id頭中,以滿足 Go 客戶端矩陣對穩定會話 ID 的要求。 - 實時目錄: 從
{apiRoot}/v1/models刷新模型列表,合併新 ID 並豐富模型信息,使今天發佈的模型立即可選。 - Web 設置卡片: 在“設置 → 模型”頁面底部提供一個卡片,用於管理 API 密鑰、端點和刷新間隔。
安裝與啓用¶
此插件需要 DeepSeek Harness 0.2.0-rc.2 或更高版本。GitHub 安裝不需要構建步驟。
- 執行安裝命令:
dsh plugin --profile web add github:scavanger2221/dsh-llm-opencode-go#v0.1.4
- 啓動 Web 界面:
dsh web
若要從本地檢出安裝,請運行:
git clone https://github.com/scavanger2221/dsh-llm-opencode-go
cd dsh-llm-opencode-go
./scripts/install-local.sh
dsh web
配置與使用¶
配置通過 Web 界面的“設置 → 模型”卡片進行。API 密鑰通過 Harness 憑據服務存儲在 OPENCODE_GO_API_KEY 下。
- 編輯端點與刷新: 在卡片中直接編輯 API 根目錄和刷新間隔(默認爲 21600000 毫秒)。
- 模型覆蓋: 編輯單個模型時,每個字段默認爲“繼承”。例如,將上下文窗口更改爲 256K 不會改變協議或推理標誌。
- 禁用/啓用模型: 禁用會將模型從目錄中移除,但保留其描述。刷新目錄不會復活已禁用的模型。
- 輸入限制: 如果模型未列出圖像,則拒絕包含圖像的提示。
注意事項¶
- 配置文件變更: 在版本 0.1.7 中,不存在
settings.yaml文件可編輯。配置通過cordis.patch.yml中的config:覆蓋在配置文件中持久化。 - 強制輸入: 插件強制執行輸入類型檢查,如果模型未列出圖像,則拒絕包含圖像的請求。
- 依賴版本: 確保安裝的 DeepSeek Harness 版本爲 0.2.0-rc.2 或更高。
此插件爲 OpenCode Go 提供了完整的會話管理和實時模型發現能力,適合需要穩定對話路由和緊跟模型更新的場景。更多細節與源碼請訪問 GitHub 倉庫。