DeepSeek Harness 多账号插件:dsh-account-switch

前言

DeepSeek Harness(DSH)是用于构建智能体的工作流平台。在官方 UI 中,一次只能保持一个账号处于登录状态。切换账号通常需要退出当前账号并重新登录,这会导致 Token 被注销。dsh-account-switch 插件解决了这个环节:它将多个账号的 Token 存入凭证库,支持在不重启 Harness 的情况下热切换账号,并能在额度用尽时自动切换。

核心功能

该插件通过 CLI 和插件 API 提供多账号管理能力,主要功能包括:

  • 多账号共存:任意多个账号的 Token 同时存在于凭证库中,互不覆盖、互不顶号。
  • 热切换:执行 dsh-account use <账号> 命令后立即生效,无需重启 Harness 或重新登录。
  • 额度自动换号:当当前账号额度用尽时,插件自动切换到下一个可用账号,并让失败的那一步在当前会话中原地重跑。
  • 账号冷却:刚被判额度不足的账号进入冷却期(默认 5 分钟),冷却期间不再被选中,避免账号在额度恢复前被反复切换。
  • 切换留痕:每次自动换号都会在日志中记录一行 JSON,包含切到的账号、错误原因和会话步骤。
  • 指纹化存档:账号 ID 由 sha256(token) 前缀派生,同一 Grant 永远映射同一槽位,归档天然幂等。
  • 昵称管理:支持给账号起中文名,使用时输入 use 主号 比 use acct-af3bded5 更直观。
  • CLI + 插件 API:提供 dsh-account 命令行工具,同时暴露 ctx.accountSwitch 接口供其他插件调用。
  • 零内核改动:全部利用公开的 seam,不修改官方包内核,Harness 升级不会冲突。
  • 不额外存秘密:registry.json 中只存储指纹,list --json 命令不输出 Token 明文。

安装与启用

安装时,脚本会将插件文件复制为真实目录而非目录联接,以确保 Harness 能正确加载。请使用以下命令:

powershell -NoProfile -File scripts/sync-install.ps1

安装完成后,需要在 profile 的 patch 文件中启用该插件。编辑 $DSH_HOME/profiles/desktop/cordis.patch.yml,在末尾追加配置:

- insert:
    - id: dsh-account-switch
      name: dsh-account-switch
      config:
        enabled: true
        autoArchiveOnStart: true
        autoCaptureOnSignIn: true
        verbose: false

修改后需要重启 Harness 才能使插件生效。

使用方法

查看与管理账号

首先查看当前已归档的账号列表:

dsh-account list

如果官方 UI 处于登录状态,可以使用 park 命令将当前账号撤下(不注销 Token,仅腾出 UI 槽位):

dsh-account park --label 主号

此时在官方 UI 中登录新账号,插件会自动将其归档。

切换账号

归档完成后,可以使用昵称或 ID 切换活跃账号:

dsh-account use 主号
dsh-account use acct-af3bded5

切换是全局的,下一个模型请求将立即使用新账号的 Token。

自动换号与日志

插件会监听模型请求错误。当遇到 ACCOUNT_QUOTA 或 QUOTA 错误时,会自动切换到下一个可用账号并重试当前步骤。所有切换行为都会记录在 $DSH_HOME/accounts/quota-switch.log 中。

注意事项

  • 切换是全局的:ctx.deepseekAccount 是进程级的单例。切换账号会影响当前 Harness 实例下的所有会话,无法实现 A 会话用账号 1、B 会话用账号 2 同时跑。
  • 目录结构要求:node_modules 必须是真实目录,不能用目录联接,否则插件无法加载。
  • 注销行为:在官方 UI 中点击退出登录会向平台注销 Token。

总结

dsh-account-switch 通过管理凭证库中的多个 Grant 槽位,解决了 DeepSeek Harness 官方 UI 单账号限制的问题。它提供了热切换、自动额度换号和留痕功能,适合需要长期运行且额度有限的智能体工作流。

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

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

小夜