前言¶
在 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 设置 左侧出现 账号切换 后,可进行:
- 保存当前账号:把当前登录账号存入账号库,可附备注名。
- 添加账号:走官方浏览器登录流程新增账号;成功后自动入库并设为当前账号,不会撤销原账号 token。
- 导入 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。 - 用网页 token 交换:从已登录
platform.deepseek.com的浏览器 DevTools 复制Authorization: Bearer ...,插件按auth_init → auth_approve → auth_exchange换取 DSH grant 并导入/切换;仅支持 platform 登录 token,交换用 token 不写入账号库或日志。 - 切换:将目标 grant 写入凭证存储。
- 同步登录账号:从
~/.dsh/account-login/accounts.json导入 grant(需已安装登录插件并完成登录)。 - 余额:切换、保存/导入后后台拉取资料与余额;界面显示「余额 X CNY」,赠金并入同币种总额;可手动刷新。
- 删除:仅从本地库移除;删当前号会先切下一个,无下一个则本地登出,不向平台发 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。之后切换均为热生效。
本地路径安装¶
- 打开 DSH 插件 页,点 添加插件 → 安装第三方插件。
- 在包名/路径输入框填写本机目录绝对路径,例如:
/path/to/dsh-account-switcher
- 立即启用 后重启一次 DSH。
- 打开 设置,左侧应出现 账号切换。
升级 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 |
典型用法¶
- 安装本插件;若需从登录插件同步账号,再安装并配置
dsh-account-login。 - 重启 DSH,在 设置 → 账号切换 用「添加账号」或「导入 token」建立账号库。
- 在列表中选目标账号点 切换;需要与登录插件对齐时点 同步登录账号。
- 若长期跑自动化任务,可在同页开启自动轮换并设置低余额阈值(注意守卫与「无会话时才因余额切换」的限制)。
适用场景与注意¶
适合:在同一台 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