前言¶
在 DeepSeek Harness(DSH)裏接第三方模型,常見做法是單獨配 API Key、走 OAuth,或維護一套與桌面客戶端無關的憑據。若你已經在本機用 Qoder 國內版桌面 App 登錄過,更省事的路徑是直接複用客戶端保存在本地的登錄態,讓 DSH 模型選擇器裏出現獨立的「Qoder」分組,而不必再跑一遍授權流程。
下面介紹社區插件 dsh-qoder-connect(維護者 marsma-101),它面向「模型推理」場景:解密 Qoder CN 客戶端的 Chromium OSCrypt 本地憑據,按 COSY 方案簽名請求,並向 DSH 註冊 qoder 模型組。插件當前版本 0.1.0,許可證 MIT;GitHub 星標爲 0(以倉庫公開信息爲準)。
這是什麼¶
dsh-qoder-connect 是一條「桌面 App → DSH」的橋接插件:讀取 %APPDATA% 下 Qoder CN 的數據目錄,解出 auth.v1.dat 中的令牌,經 gateway.qoder.com.cn 的 agent_chat_generation SSE 與上游對話,再通過 loopback OpenAI 兼容入口和 ctx.llm.registerAdapter 把模型掛進 DSH。全程零交互,README 明確說明 No OAuth interaction needed。
簽名實現參照 MIT 許可的 qoder2api 公開方案移植。項目聲明僅供個人學習與研究,與 Qoder、阿里雲、DeepSeek 無關聯,使用前請自行閱讀倉庫免責聲明與服務條款。
核心功能¶
零交互登錄與憑據跟隨¶
插件會自動掃描 %APPDATA% 下所有 com.qodercn.app.* 數據目錄(stable、beta、dev 等渠道)。對每個候選用 Chromium OSCrypt(DPAPI 保護的 AES-256-GCM)解密 auth.v1.dat:
- 首次運行會通過 PowerShell 一次性導出各渠道密鑰到
<DSH_HOME>\.qoder-connect\oscrypt-<渠道>.key(例如oscrypt-stable.key);舊版單文件oscrypt.key會被複製爲 stable 緩存,原文件保留。 - 之後由 Node 純本地解密。多個目錄都有憑據時 stable 優先,其餘按目錄 mtime 新者優先。
- 解密失敗會作廢緩存並重新導出一次;桌面 App 刷新令牌後,插件按文件 mtime 跟隨,簽名會話在令牌輪換後自動重建。
一個憑據都解不出時,錯誤信息會提示:先確認 Qoder 桌面程序已啓動並登錄過(掃描模型列表與路徑期間需保持程序處於啓動狀態),首次使用需先在 Qoder 裏完成一次登錄。
顯式指定數據目錄¶
設置卡字段 dataDir,或環境變量 QODER_DATA_DIR,可直接指定 Qoder 數據目錄,甚至指向 auth.v1.dat 文件。顯式路徑優先於自動掃描;若顯式路徑解不開,會自動回落到掃描。
動態模型目錄與標註¶
插件會完整拉取上游模型目錄(assistant 分組,不過濾),約 10 分鐘 自動刷新。模型名後按 WorkBuddy 樣式標註積分倍率(如 · x0.5,免費模型標 · 免費)。上游 enable 與賬號餘額聯動,不代表模型本身不可用,因此 不會 據此隱藏模型。
工具調用與推理¶
- 上游返回的
tool_calls原樣併入 OpenAI 兼容響應(流式 delta 與非流式 message 均支持)。 - 按模型的
is_reasoning標記決定是否透傳思考強度。
工作原理概覽¶
- 憑據:掃描候選目錄 → 用各渠道密鑰緩存解
auth.v1.dat(v10+ nonce + cipher + tag)→ 取得有效dt-令牌後用於後續請求。 - COSY 簽名:設備指紋派生 → RSA(PKCS1) 加密臨時密鑰 → AES-CBC 加密身份載荷 → 對 payload、密鑰、日期、body、path 等做 md5 簽名;請求體使用自定義字母表 base64 變體編碼。
- 協議翻譯:聊天走 SSE;上游幀爲
{headers, body, statusCodeValue}信封,兼容 body 爲字符串、對象或字面量"null"。用戶消息用contents數組重建;developer角色摺疊爲system。 - 註冊:本地 OpenAI 兼容小門 + DSH 內註冊
qoderprovider,模型選擇器出現 Qoder 分組。
安裝與啓用¶
已抓取資料與 GitHub README 未給出 形如 dsh plugin add … 的固定一行安裝命令;請勿憑倉庫名自行拼接。建議在 DSH 生態的社區目錄 SkillHub 中查找並安裝該插件:
- 目錄頁:https://www.skillhub.cn/plugins/marsma-101/dsh-qoder-connect
- 源碼與說明:https://github.com/marsma-101/dsh-qoder-connect
package.json 中聲明插件通過 cordis.patch.yml 作爲 bundle patch 接入 DSH(dsh.bundle.patch 指向該文件)。安裝前請閱讀倉庫源碼與 MIT 許可證,確認你願意在本機以 當前 DSH 進程權限 運行解密與簽名邏輯(會接觸桌面客戶端本地登錄數據)。
典型用法(可復現前提)¶
下列步驟來自 README 描述的使用前提,而非虛構案例:
- 在本機安裝並啓動 Qoder CN 國內版 桌面程序,至少完成一次登錄(換電腦或換渠道後,該渠道的客戶端也需在本機登錄過一次,否則密鑰導不出)。
- 在 DSH 中安裝並啓用 dsh-qoder-connect(安裝入口以 SkillHub 目錄頁爲準)。
- 保持 Qoder 桌面程序處於已啓動狀態,尤其在插件首次掃描模型列表與路徑時。
- 在 DSH 模型選擇器中選擇 Qoder 分組下的模型發起對話;若自動掃描找不到數據,可在插件設置中填寫
dataDir,或設置環境變量QODER_DATA_DIR指向數據目錄或auth.v1.dat。
插件通過 DSH 暴露的 OpenAI 兼容接口調用,具體對話方式與同機其他已註冊 provider 一致,無需額外 OAuth 頁面。
適用場景與注意事項¶
適合誰:已在使用 Qoder CN 桌面版、希望在 DSH 統一編排裏直接選用 Qoder 模型目錄(含工具調用、部分推理模型)的開發者;接受「依賴客戶端私有接口、需隨上游變更維護」的研究型用法。
環境與限制(README 已知限制):
- 僅支持國內版(CN)。
- 請求體基於抓包模板
baseprompt.json,上游結構變化時需更新插件。 - 依賴 Qoder 客戶端私有接口,客戶端大版本更新後可能需要調整。
安全與合規:
- 插件會解密本機 Qoder 登錄憑據並代簽請求,安裝前務必審閱 GitHub 源碼;僅建議驅動 你自己的 Qoder 賬號在本機調用。
- 免責聲明指出:因使用產生的賬號限制、額度清空、服務中斷等後果由使用者自行承擔;請勿用於商業用途。
結尾¶
dsh-qoder-connect 把「已在 Qoder 桌面版登錄」變成 DSH 裏即開即用的 Qoder 模型組:本地 OSCrypt 解密、COSY 簽名、動態模型列表與 tool_calls 透傳,避免重複 OAuth。DeepSeek Harness 社區採用「一切皆插件」的擴展方式;SkillHub 爲獨立社區站點,與 DeepSeek / 幻方無官方從屬關係。