DSH 账号切换器:多账号 grant 库、热切换与自动轮换

前言

在 DeepSeek Harness(DSH)里跑模型推理时,官方账号凭证通常落在 ~/.dsh/.credentials.yaml 的 deepseek-account-platform/default 一条 grant 上。若你手上有多个 DeepSeek 官方账号,常见做法是反复退出登录、重新走浏览器授权,或在不同机器上各登一个号——前者会撤销远端 token,后者又不好在同一台 Desktop 上轮换。社区插件 dsh-account-switcher(维护者 hyqweasd5-png,分类:模型推理)把多账号 grant 收进本地账号库,在不重启 GUI、不主动撤销 token 的前提下切换当前账号,并可按鉴权失效、额度、限流或低余额自动轮换。登录、SSH 隧道等仍由独立的 dsh-account-login 负责;两个插件配合使用即可。

这是什么

DSH 账号切换器(GitHub:hyqweasd5-png/dsh-account-switcher,包名 @local/dsh-account-switcher,当前资料中版本 0.3.0)是 DeepSeek Harness 的第三方插件,只使用 Cordis 服务与 Node 内置模块,不依赖 @deepseek-ai/* 运行时包。README 标明适用 DeepSeek Harness Desktop 0.2.1-rc.2(源码 tag 同版本)。

它解决的核心问题是:在单进程 DSH 内维护多个 platform grant,热更新凭证存储里的当前账号,并可选地在错误信号或低余额时切到下一个可用账号。

与登录插件的分工

本插件只做切换与轮换;登录、服务器 portal、SSH 隧道、token 缓存在 dsh-account-login 中完成。两者都安装后的数据流如下:

登录管理(登录插件) → 登录新账号 → grant 写入 ~/.dsh/account-login/accounts.json
账号切换(本插件)   → 同步登录账号 → 导入 grant → 切换/轮换

核心功能

账号库与热切换

账号库独立于凭证存储,默认路径为 ~/.dsh/account-switcher/accounts.json(目录与文件权限分别为 0700、0600)。切换时通过 ctx.credentials.modifyRecord 原子替换 ~/.dsh/.credentials.yaml 中 deepseek-account-platform/default 的 grant;凭证存储监听变化后,推理侧每个请求现读记录,因此官方说明为约 1 秒内生效,无需重启。

设置页能力

在 DSH 设置 左侧出现 账号切换 后,可进行:

  1. 保存当前账号:把当前登录账号存入账号库,可附备注名。
  2. 添加账号:走官方浏览器登录流程新增账号;成功后自动入库并设为当前账号,不会撤销原账号 token。
  3. 导入 token:粘贴 platform.deepseek.com 的 DSH 账号 grant(x-dsh-auth-token 的值);平台校验失败则拒绝写入。chat.deepseek.com 网页会话 token 不能直接导入(平台返回 code 40003),需用「添加账号」走平台浏览器登录。可靠来源之一是另一台已登录 DSH 的 ~/.dsh/.credentials.yaml 里 deepseek-account-platform/default 的 payload.token。
  4. 用网页 token 交换:从已登录 platform.deepseek.com 的浏览器 DevTools 复制 Authorization: Bearer ...,插件按 auth_init → auth_approve → auth_exchange 换取 DSH grant 并导入/切换;仅支持 platform 登录 token,交换用 token 不写入账号库或日志。
  5. 切换:将目标 grant 写入凭证存储。
  6. 同步登录账号:从 ~/.dsh/account-login/accounts.json 导入 grant(需已安装登录插件并完成登录)。
  7. 余额:切换、保存/导入后后台拉取资料与余额;界面显示「余额 X CNY」,赠金并入同币种总额;可手动刷新。
  8. 删除:仅从本地库移除;删当前号会先切下一个,无下一个则本地登出,不向平台发 logout。

不要用官方账号页的「退出登录」切号:该操作会 POST /auth-api/v0/users/logout 在服务端撤销 token,账号库中的副本也会失效。切号应始终用本页的「切换」。

自动轮换

默认关闭。开启后依据下表信号切换,并带有守卫:最小切换间隔 30 秒、10 分钟内最多 3 次、单账号冷却 10 分钟;无可用账号时只告警,不删除当前 grant。余额按币种比较,轮询默认 5 分钟,且仅在无运行中会话时因低余额切换。

信号 来源 行为
登录态失效(401 / 40003) 账号事件、模型错误 当前号标记失效,切下一个
额度耗尽(402 / QUOTA) 模型错误 当前号冷却,切下一个
限流(429 / RATE_LIMIT) 模型错误 当前号冷却,切下一个;连续两个号限流则暂停 5 分钟
余额低于阈值 定时轮询 仅在无运行中会话时切换

自动轮换只保证下一次请求使用新账号,不会自动重发失败的那轮对话。

安装与启用

命令行安装(源码)

dsh plugin --profile web add github:hyqweasd5-png/dsh-account-switcher

安装后重启一次 DeepSeek Harness。之后切换均为热生效。

本地路径安装

  1. 打开 DSH 插件 页,点 添加插件 → 安装第三方插件。
  2. 在包名/路径输入框填写本机目录绝对路径,例如:
   /path/to/dsh-account-switcher
  1. 立即启用 后重启一次 DSH。
  2. 打开 设置,左侧应出现 账号切换。

升级 DSH 后若设置页不出现,可查看 Host 日志中带 account-switcher 前缀的输出;正常就绪时有 account-switcher: ready。

配置(可选)

在 ~/.dsh/profiles/desktop/cordis.patch.yml 中覆盖 bundle patch 的 config:

- id: account-switcher
  config:
    platformOrigin: https://platform.deepseek.com
    debug: false
字段 默认值 说明
platformOrigin https://platform.deepseek.com 官方平台源
debug false 为 true 时开启 POST /account-switcher/api/debug/trigger 用于测试轮换
vaultPath $DSH_HOME/account-switcher/accounts.json 账号库路径
clientVersion 0.2.1-rc.2 平台请求的 x-client-version
locale 系统语言 平台请求的 x-client-locale

典型用法

  1. 安装本插件;若需从登录插件同步账号,再安装并配置 dsh-account-login。
  2. 重启 DSH,在 设置 → 账号切换 用「添加账号」或「导入 token」建立账号库。
  3. 在列表中选目标账号点 切换;需要与登录插件对齐时点 同步登录账号。
  4. 若长期跑自动化任务,可在同页开启自动轮换并设置低余额阈值(注意守卫与「无会话时才因余额切换」的限制)。

适用场景与注意

适合:在同一台 DSH Desktop 上管理多个你自己的 DeepSeek 官方账号,在额度、限流或 token 失效时尽量减少手工切号;与 dsh-account-login 组合做集中登录、本地切换。

限制与合规(来自 README):

  • 官方 grant 无自动刷新;失效后需重新登录或重新导入。
  • 不管理第三方 provider 的 API Key。
  • 切换后若目标账号模型目录不同,当前模型请求可能失败,需换模型或换号。
  • 多 Host 同时写同一账号库时,后写入会覆盖快照;活动 grant 仍由凭证存储跨进程锁保护。
  • 插件以当前 DSH 进程权限运行;安装前应在 GitHub 阅读源码与 MIT 许可证,自行评估信任边界。本地 API 仅接受 loopback 且要求 x-account-switcher: 1;账号库与 masked token 设计见 README「安全」一节。
  • 多账号轮换若用于规避额度或平台风控,可能违反服务条款。

社区插件目录 SkillHub 上的 dsh-account-switcher 与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本件为社区维护的模型推理类扩展。

卸载

在 插件 页移除 @local/dsh-account-switcher 并重启 App。当前 grant 仍留在凭证存储;账号库可手动删除:

rm -rf ~/.dsh/account-switcher

更完整的故障排查、目录结构与测试说明见仓库 README:https://github.com/hyqweasd5-png/dsh-account-switcher

羽毛球分组比赛记分
小程序二维码

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

小夜