前言¶
在使用 DeepSeek Harness(DSH)时,如果 WorkBuddy 插件积分耗尽,DSH 内置的重试机制只能用同一个 provider 重试,无法自动切换到其他模型。这会导致当前会话被卡住,新会话也会继续撞额度墙。dsh-wb-credit-fallback 用一个 host 侧小插件补上这个缺口,在检测到积分不足时自动把会话切到 DeepSeek,并把默认模型永久回落到 DeepSeek。
是什么¶
dsh-wb-credit-fallback 是一个 DSH 插件,由 Yikeqm 维护,分类为模型推理。它的核心作用是:当 WorkBuddy 报告积分不足时,自动把当前会话切换到 DeepSeek,并把默认模型写回 profile,之后新会话直接走 DeepSeek,不再撞额度墙。
核心功能¶
- 监听
agent/request-error:当失败 provider 是workbuddy且错误文本包含hard_credit、insufficient credit、402、积分不足、额度不足、余额不足等标记时: - 用
sessionController.agents.selectForNextRequest把当前会话切换到目标 provider/model(默认deepseek-account / deepseek-flash,可配置reasoningEffort); - 用
agentDefaultModel.saveSelection把目标模型写入 profile 默认模型(通过官方配置编辑器写回cordis.patch.yml,不手改 YAML); - 返回
{ kind: "retry" },让当前请求重试一次。 - 监听
agent/request:当切换尚未落盘时直接重写这次请求的 provider/model,因为同一步的重试不会重新组装系统提示。 - 保护:每个 turn 最多自动切换一次;非积分类失败(400/401/网络错误)不触发;监听器内部异常全部吞掉,不影响正常请求。
安装与启用¶
桌面客户端的 profile 由 App 独占管理,CLI 不能装,用 App 内入口:
- 左侧栏「插件」→「添加插件」;
- 输入本目录的绝对路径(安装向导接受绝对路径);
- 安装 → 立即启用 → 完全退出客户端(含托盘)再打开。
卸载在插件页里完成,本插件不写任何用户数据。
dsh web / dsh tui 这类命令行 profile 可以直接从 GitHub 源码安装(桌面客户端的 desktop profile 仍只能用 App 内入口):
dsh plugin --profile web add github:Yikeqm/dsh-wb-credit-fallback
装完重启对应 profile,再刷新页面即可。用 GitHub 源安装时插件会跟随仓库 main 分支更新,需要重新 dsh plugin remove + add 才会取到新提交。
配置¶
bundle 的 cordis.patch.yml 里给了默认值,可在 profile 的 cordis.patch.yml 里按行 id wb-credit-fallback 覆盖:
config:
from: workbuddy # 触发条件:哪个 provider 报额度不足
to: # 切到哪个 provider/model
provider: deepseek-account
model: deepseek-flash
reasoningEffort: high
persistDefault: true # 同时写回默认模型;false = 只救当前会话
适用场景与注意¶
适合在 DSH 环境中同时使用 WorkBuddy 和 DeepSeek,并希望 WorkBuddy 积分耗尽时自动切换到 DeepSeek 的开发者。
务必注意:插件在宿主进程内运行,如遇异常行为先在插件页禁用它。插件依赖 DSH 0.2.0-rc.2 的 agent/request / agent/request-error 瀑布与 sessionController、agentDefaultModel 服务,升级 DSH 大版本后需复核。积分不足靠错误文本匹配;WorkBuddy 若更换措辞需要补标记。
短结尾¶
dsh-wb-credit-fallback 解决了 DSH 在 WorkBuddy 积分耗尽时无法跨 provider 回退的问题,适合需要同时使用多个模型且希望自动兜底的智能体开发者。
目录页:https://www.skillhub.cn/plugins/Yikeqm/dsh-wb-credit-fallback
GitHub:https://github.com/Yikeqm/dsh-wb-credit-fallback