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
羽毛球分组比赛记分
小程序二维码

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

小夜