thu-tok-auto:在 DSH 裏自動獲取並續期清華 MadModel Token

前言

在 DeepSeek Harness(DSH)裏接清華 MadModel(madmodel.cs.tsinghua.edu.cn)時,API token 會過期,模型 Provider 還要和憑據字段對齊。手工從瀏覽器複製 token、寫進 MADMODEL_API_KEY、再改 llm-pi-ai.providers 既重複,也容易踩 YAML 折行等坑。社區插件 thu-tok-auto(維護者 OverDustD7)以 DSH profile bundle(Cordis 插件)形式運行:一鍵獲取 token、寫入 DSH 憑據與模型配置,並支持定時自動續期;SSO 會話失效時,手動 Get 可走清華統一認證登錄兜底。當前版本 0.3.24(MIT 許可證)。

這是什麼

thu-tok-auto 面向已使用 DSH web profile 的開發者:從 MadModel 站點拿到最新 JWT,經 DSH 的 credentials.set('MADMODEL_API_KEY', token) 落盤,並按 apiKeyEnv: MADMODEL_API_KEY 或 baseURL 匹配目標 Provider;找不到則創建 llm-pi-ai.providers.madmodel(api: openai-completions)。插件在宿主進程側跑續期邏輯,UI 注入 DSH Web 側邊欄,不替代 DSH 本身的模型路由能力。

目錄頁:skillhub.cn/plugins/OverDustD7/thu-tok-auto
源碼:github.com/OverDustD7/thu-tok-auto

核心功能

Get:立即續期

點 Get 時按固定順序嘗試,且不會被「現有令牌仍有效」短路:

  1. 用現有憑據調用 GET /model-api/auth-login/check 簽發新令牌(2026-09-29 起站點已關閉免登錄簽發,此步常返回 10001);
  2. SSO 重放:用本地保存的 cookie jar 走清華統一認證鏈換 ticket,再換令牌;登錄窗口捕獲失敗時也走這條兜底;
  3. 複用仍能通過 /model-api/auth-login 校驗的舊 token;
  4. 以上都拿不到新令牌時,僅在手點 Get 時打開登錄窗口(直達 id.tsinghua.edu.cn 統一認證,成功跳回 madmodel);插件每 2.5 秒監視窗口,登錄完成後自動捕獲、校驗、寫憑據、同步 Provider,並關閉自開窗口——一次點擊即可,等待期間控件顯示「等待登錄」;
  5. 拿到 token 後比對 JWT exp:若與舊令牌相同,狀態爲「刷新未生效:到期時間未前進」,而不是顯示成功。

Auto:後臺自動續期

開啓 Auto 後,每 20 分鐘在 Host 側觸發一次續期,與 Web 頁面是否打開無關,也不依賴瀏覽器常開。後臺永不彈登錄窗口;續期失敗會顯示「需要登錄」,需你手動點 Get。失敗重試有退避(5 分鐘起翻倍,上限 30 分鐘);令牌剩餘不足 1 小時時退避下限回到 5 分鐘。

模型列表與 Provider 同步

每次 Get / Auto 成功後,插件從站點前端包讀取當前模型列表(非寫死名單),寫入 Provider 的 models;contextWindow 統一爲 1000000。內置排除 DeepSeek-V4-Flash-Vision-Exp 與 DeepSeek-R1-W8A8。若 madmodel 鍵已被其他配置佔用,插件寧可報錯也不覆蓋。

狀態與 UI

默認掛在左側邊欄底部「設置」上方(若已有 Remote 等按鈕,則排在最上方):[●] [Get] [Auto ✓] hh:mm。健康時控件安靜;需要登錄、令牌過期、續期未生效或「Token 已更新但模型配置未同步」時,第二行用文字說明並改圓點顏色。網絡不可達時不會誤判爲令牌失效。懸停可見完整狀態、上次獲取時間、token 剩餘壽命,以及上一次點擊與上一次自動運行各自的判據。

安裝與啓用

插件以 DSH profile bundle(npm 包 thu-tok-auto)安裝,需 Node.js >= 22。安裝後重啓 DSH Web(或對應 profile)加載。

dsh plugin --profile web add thu-tok-auto

也可在 ~/.dsh/profiles/web/package.json 的 dependencies 與 dsh.profile.bundles 中加入 thu-tok-auto 後重新安裝。

更新:

dsh plugin --profile web up thu-tok-auto

典型用法

  1. 安裝並重啓後,在側邊欄底部找到 [Get]、Auto 與計時器(從未獲取過顯示 --:--);
  2. 首次或 SSO 過期後:點 Get;若自動階梯失敗,在彈出窗口完成清華統一認證,無需二次點擊 Get;
  3. 需要無人值守續期時,點 Auto 開啓(按鈕顯示 Auto ✓);若面板出現「需要登錄」,回到步驟 2;
  4. 在 DSH 模型配置中使用 MADMODEL_API_KEY 或已同步的 madmodel Provider 即可調用 MadModel API。

免登錄簽發已不可用,至少需成功登錄過一次,後續才依賴保存的 SSO 會話材料做重放。

適用場景與注意

適合:在 DSH 中長期使用清華 MadModel、希望 token 與 Provider 自動對齊的開發者。

務必知曉:

  • 插件以當前 DSH 宿主進程權限運行,安裝前請閱讀源碼與 MIT 許可證,並理解 已知限制。
  • 不要手拼 ~/.dsh/.credentials.yaml 裏 MADMODEL_API_KEY 的值:YAML 雙引號折行中行尾 \ 是續行符,不屬於 token 本身;請通過 DSH 憑據 API 或 YAML 解析器讀取。
  • 登錄捕獲依賴本機 Edge/Chrome 的 DevTools 調試端口(9333–9343);狀態與 cookie 保存在用戶目錄(如 %USERPROFILE%\.dsh\madmodel\state.json),token 僅寫入 DSH 憑據,文檔稱無遙測,網絡訪問限於 MadModel、清華認證域與本機 CDP。
  • Auto 的 20 分鐘間隔來自維護者本機對 IDP 會話長度的觀測,不保證所有賬號一致;更在意簽發次數時可關閉 Auto,改用手動 Get。
  • 已在 DSH 0.2.0-rc.2 上覈對 bundle、settings、credentials 等接口;社區目錄 skillhub.cn 與 DeepSeek / 幻方無官方從屬關係,插件亦非官方應用。

結尾

thu-tok-auto 把 MadModel token 的獲取、續期、憑據寫入與 Provider 同步收進 DSH 側邊欄一條工作流:手點 Get 可帶 SSO 登錄閉環,Auto 適合在會話仍有效窗口內後臺刷新。細節與變更見倉庫 README 與 CHANGELOG。

  • 目錄頁:https://www.skillhub.cn/plugins/OverDustD7/thu-tok-auto
  • GitHub:https://github.com/OverDustD7/thu-tok-auto
羽毛球分组比赛记分
小程序二维码

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

小夜