前言¶
DeepSeek Harness(DSH)把對話、工具與模型提供方拆成可插拔模塊。若你已經在用華爲雲 CodeArts 上的 GLM、盤古、Qwen、DeepSeek 等模型,常見做法是單獨開網頁或腳本里手工填 AK/SK、安全令牌,再對接 OpenAI 兼容接口。憑證過期、多賬號切換、以及 CodeArts 對每個賬號的併發會話限制,都會拖慢日常對話節奏。
下面介紹社區插件 dsh-codearts-connect(維護者 2239058652,GitHub 倉庫 2239058652/dsh-codearts-connect)。它在 DSH 設置裏完成 OAuth2(PKCE + DPoP)登錄,把 CodeArts 註冊爲 codearts provider,並在本機用 loopback shim 轉發請求,同時支持多賬號輪轉與本機用量統計。SkillHub 目錄將其歸類爲「模型推理」;截至資料抓取時倉庫星標爲 0,當前 package 版本爲 1.3.0(MIT 許可證)。
這是什麼¶
DSH CodeArts Connect 是把華爲雲 CodeArts 接入 DeepSeek Harness 的 provider 插件:在 DSH 對話窗口裏直接選用 CodeArts 提供的模型,無需在卡片里長期手工維護密鑰(也保留粘貼安全令牌的降級路徑,便於腳本或排查)。
插件沿用了與 dsh-codebuddy-cli 相近的結構:本地 loopback shim + pi-ai adapter。DSH 側以 OpenAI /chat/completions 格式、Bearer 爲本進程隨機密鑰訪問 shim;shim 再注入華爲雲 STS x-auth-token,並用 AK/SK 做 SDK-HMAC-SHA256 簽名,請求 CodeArts /api/v2/chat/completions。shim 只監聽迴環地址,並校驗 Host、Origin 與進程密鑰,降低本機其他進程冒用的風險。
核心功能¶
以下能力均來自項目 README 與 package 描述,安裝前仍建議自行通讀源碼與 CHANGELOG。
登錄與憑證¶
- 在 DSH 設置 → CodeArts 卡片點擊「使用華爲雲賬號登錄」,瀏覽器完成授權後憑證寫入
$DSH_HOME/.codearts-auth.json。 - 憑證約 2 小時有效,過期前自動續期;續期失敗會在卡片提示重新登錄,不會靜默使用失效憑證。
- 卡片裏也可直接粘貼安全令牌,適合無圖形界面或故障排查。
多賬號輪轉¶
可存多個華爲雲賬號(在卡片上再登錄一次即可添加)。當某個賬號的會話槽位被佔滿時,請求會自動切換到還有餘量的賬號。上游對每個賬號併發會話數限制爲 3,且停止生成不會提前釋放佔用;單賬號時剛停生成就立刻再問,仍可能要等約半分鐘,插件會排隊重試。README 建議添加第二個賬號以化解等待。
模型發現與可選列表¶
- 啓動後以及每小時向賬號拉取真實可用模型(內置 / 限時福利 / agent-center 三路合併),失敗時退回內置種子清單。
- 設置卡片裏可通過配置項
enabledModels勾選出現在模型選擇器中的模型;未勾選僅表示不再推薦,已選該模型的會話仍可用;不勾選等同於提供全部模型。 - 支持視覺的模型可在對話裏粘貼或拖入圖片。
排查「選擇器裏缺某個模型」時,應優先看 CLI 的 models 輸出(上游真實返回),而不是插件內手維護的種子清單。
本機用量與 CLI¶
- 卡片與
dsh-codearts-connect usage展示今日/累計請求數與輸入輸出 token(按模型、按賬號),以及各賬號的會話槽位佔用。CodeArts 沒有額度 API,此處統計的是本機經插件發出的請求,賬本文件爲$DSH_HOME/.codearts-usage.json,按天保留 60 天;官方個人用量見codearts.huaweicloud.com/portal/settings/personal-usage,卡片上有鏈接。 - 子命令:
status、models、usage、identity、doctor、logout(詳見下文命令行一節)。
賬號身份合併¶
上游登錄響應不返回穩定用戶標識時,插件會在登錄後再請求 /snap-manager/v1/current/user 取得 user_id 作爲自然鍵。歷史重複條目可用 identity --fix 合併(先不帶 --fix 爲只讀)。
安裝與啓用¶
官方說明見倉庫 INSTALL.md。核心步驟是把構建產物(package.json、lib/、cordis.patch.yml)部署到 profile 的 node_modules/dsh-codearts-connect/,並在 profile 的 package.json、node_modules/.package-map.json、node_modules/.modules.yaml 中登記。倉庫提供部署腳本,典型流程如下。
在插件源碼目錄構建並部署到 DSH profile(profileDir 默認爲 ~/.dsh/profiles/desktop):
pnpm install && pnpm run build
node scripts/deploy.mjs [profileDir]
運行環境要求 Node ^22.19.0 || >=24.0.0(見 package.json 的 engines)。插件以當前 DSH 進程權限運行,安裝前應檢查源碼、依賴與 MIT 許可證,並確認你信任維護者與網絡回調行爲。
改代碼調試時可參考倉庫 DEV.md(宿主 dsh-hmr、客戶端卡片 dsh-client-hmr),不必每次全量重啓 DSH。
典型用法¶
圖形界面¶
- 打開 DSH 設置 → CodeArts 卡片 → 「使用華爲雲賬號登錄」。
- 瀏覽器打開授權頁,登錄華爲雲賬號,自動跳回本機回調,憑證落盤。
- 新建對話,provider 選擇
codearts,再選模型即可開始。
命令行¶
將 <profile> 換成你的 DSH profile 名稱:
dsh plugin --profile <profile> exec dsh-codearts-connect status [--json]
dsh plugin --profile <profile> exec dsh-codearts-connect models [--json]
dsh plugin --profile <profile> exec dsh-codearts-connect usage [--json]
dsh plugin --profile <profile> exec dsh-codearts-connect identity [--fix]
dsh plugin --profile <profile> exec dsh-codearts-connect doctor
dsh plugin --profile <profile> exec dsh-codearts-connect logout
models:排查模型缺失的第一手段,打印上游合併後的清單。usage:讀本機賬本,不是賬號官方額度。doctor:輸出路徑、狀態與版本,不打印令牌,適合貼進 issue。logout:僅清除本插件保存的憑證副本,不影響華爲雲賬號本身。
適用場景與注意¶
適合誰:已在華爲雲 CodeArts 有個人賬號、希望在 DSH 統一窗口裏切換 CodeArts 模型、並需要 OAuth 登錄而非長期手填密鑰的開發者。
上游與參數限制(README「已知限制」):
- 福利網關對部分模型的
max_tokens標稱與聊天端點實測不一致;插件按實測上限下發(例如免費 DeepSeek 系列 65536、GLM-5.2 實測可到 131072),未實測模型保守 65536。 - 用量賬本僅本機統計;換機器或清空
$DSH_HOME會丟失歷史賬本。 - 項目聲明僅供個人學習研究,需遵守華爲雲及 CodeArts 服務條款;與華爲、DeepSeek 無官方關聯。
DSH 生態強調「一切皆插件」;SkillHub(插件目錄頁)是社區索引站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
經過上面的步驟,你可以在 DSH 裏用 OAuth 登錄 CodeArts、按需勾選 enabledModels、在多賬號間自動輪轉,並用 models / usage / doctor 做排查。詳情與更新以 GitHub 爲準: