前言¶
在 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 时按固定顺序尝试,且不会被「现有令牌仍有效」短路:
- 用现有凭据调用
GET /model-api/auth-login/check签发新令牌(2026-09-29 起站点已关闭免登录签发,此步常返回10001); - SSO 重放:用本地保存的 cookie jar 走清华统一认证链换 ticket,再换令牌;登录窗口捕获失败时也走这条兜底;
- 复用仍能通过
/model-api/auth-login校验的旧 token; - 以上都拿不到新令牌时,仅在手点 Get 时打开登录窗口(直达
id.tsinghua.edu.cn统一认证,成功跳回 madmodel);插件每 2.5 秒监视窗口,登录完成后自动捕获、校验、写凭据、同步 Provider,并关闭自开窗口——一次点击即可,等待期间控件显示「等待登录」; - 拿到 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
典型用法¶
- 安装并重启后,在侧边栏底部找到 [Get]、Auto 与计时器(从未获取过显示
--:--); - 首次或 SSO 过期后:点 Get;若自动阶梯失败,在弹出窗口完成清华统一认证,无需二次点击 Get;
- 需要无人值守续期时,点 Auto 开启(按钮显示 Auto ✓);若面板出现「需要登录」,回到步骤 2;
- 在 DSH 模型配置中使用
MADMODEL_API_KEY或已同步的madmodelProvider 即可调用 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