🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

TPM 限流重试 wsfangyou/dsh-tpm-quota-retry

DeepSeek 客户端
wsfangyou4 天前有提交已提供中文文档扫描:未发现敏感能力兼容 / 相关生态

把每分钟限流错误转为有界等待重试,避免回合中断

30.5/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/6 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/wsfangyou/dsh-tpm-quota-retry.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/06·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 4 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/6(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
展开完整介绍(135 字)↓

DSH 宿主侧插件:把 qwen-token-plan 的每分钟 TPM 限流(429 Allocated quota exceeded / insufficient_quota)从终止失败救回为有界重试等待,白名单之外的 provider 与真正的额度耗尽一律原样放行

README

由 DeepSeek 最新模型翻译生成
dsh-tpm-quota-retry 把 qwen-token-plan 的每分钟 TPM 限流从终止失败救回为有界重试等待。只接管这一个 provider,其他模型行为零变化。 它解决什么 qwen3.8-flash 在长智能体回合里会撞上百炼的每分钟 Token 限流,上游回 429: 429: {"message":"Allocated quota exceeded, please increase your quota limit. …#token-limit", "type":"insufficient_quota","code":"insufficient_quota"} 这一串在 DSH 里会走成终止失败:dsh-llm 的 isQuotaExceededError 命中 exceed…quota 措辞 → 归类为 QUOTA(语义是账户额度耗尽)→ dsh-llm-retry 的 normal mode 只重试 EMPTY_RESPONSE/RATE_LIMIT/SERVER/TIMEOUT/TRANSPORT,QUOTA 不在集合内 → next() 放行 → 智能体 loop 抛终止 LlmError,回合结束,界面显示「当前请求的额度已用尽」。
展开完整文档(README 剩余 1 节)
dsh-tpm-quota-retry

把 qwen-token-plan 的每分钟 TPM 限流从终止失败救回为有界重试等待。只接管这一个 provider,其他模型行为零变化。

它解决什么

qwen3.8-flash 在长智能体回合里会撞上百炼的每分钟 Token 限流,上游回 429:

429: {"message":"Allocated quota exceeded, please increase your quota limit. …#token-limit",
"type":"insufficient_quota","code":"insufficient_quota"}

这一串在 DSH 里会走成终止失败:dsh-llm 的 isQuotaExceededError 命中 exceed…quota 措辞 → 归类为 QUOTA(语义是账户额度耗尽)→ dsh-llm-retry 的 normal mode 只重试 EMPTY_RESPONSE/RATE_LIMIT/SERVER/TIMEOUT/TRANSPORT,QUOTA 不在集合内 → next() 放行 → 智能体 loop 抛终止 LlmError,回合结束,界面显示「当前请求的额度已用尽」。

而阿里云百炼限流文档写明:Allocated quota exceeded 与 You exceeded your current quota 表示触发了每分钟 Token 消耗(TPM)限流,通常一分钟内自动恢复;429 是限速拒绝,403 才是额度耗尽。于是「等一分钟重试」才是正确处理,模型本身没问题。

机制

挂在智能体 loop 的 agent/request-error waterfall(与 dsh-llm-retry 同一个扩展点):

1. 失败满足全部三条才接管:provider 在 providers 白名单内、failure.code === 'QUOTA'、failure.message 命中 TPM 措辞表;
2. 先向会话追加 llm/retry 事件(可重放),再等待 —— 对齐到下一个限流窗口边界,第 n 次重试多等 n-1 个完整窗口;providerRetryAfterMs 有效时优先遵守;
3. 返回 { kind: 'retry' },loop 在同一打开的轮次里重跑该步骤,随后追加 llm/retry-started。

不影响其他模型

- provider 白名单:默认只有 qwen-token-plan。deepseek / xiaomi / lm 等 provider 完全不走这段逻辑。
- code 闸门:只认 QUOTA。若某天适配器把这类 429 标成 RATE_LIMIT,那 dsh-llm-retry 的默认策略本来就该管它,本插件自动让位。
- 措辞闸门:只认 TPM 限流的两种报法。Arrearage、Access denied, please make sure your account is in good standing.、isv.OUT_OF_SERVICE、out of credits 等真正的余额耗尽措辞一律放行终态 —— 真问题不会被掩盖。
- 预算有界:每个 (provider, turn, step) 最多 maxRetries(默认 4)次;耗尽后原样交给终止路径,界面照常提示。
- 可取消:turn 取消或插件释放会立刻中止等待,且不返回重试决定。
- 可关闭:enabled: false 或 maxRetries: 0 都等价于没装。

配置

补丁层(cordis.patch.yml)可覆盖全部字段:

| 字段 | 默认 | 含义 |
| enabled | true | 总开关 |
| providers | ["qwen-token-plan"] | 白名单 provider 名 |
| windowMs | 60000 | 限流窗口宽度(ms) |
| maxRetries | 4 | 同一 (provider, turn, step) 的最大等待次数 |
| maxDelayMs | 300000 | 单次等待上限(ms) |
| minDelayMs | 1000 | 单次等待下限(ms) |

默认节奏下四次等待各约 1、2、3、4 分钟,总预算约 10 分钟。若某个 provider 配置档也吃这套限流,把它的名字加进 providers 即可,例如:

- id: tpm-quota-retry
name: dsh-tpm-quota-retry
config:
providers:
- qwen-token-plan
- qwen-other-plan

安装

插件源码放在工作区,配置档用 junction 引用(与本机其他插件一致):

powershell -NoProfile -ExecutionPolicy Bypass -File install.ps1

脚本做三件事,且可重复运行:在 profiles\web\node_modules 建 junction、把 dsh-tpm-quota-retry 加进配置档 package.json 的 dsh.profile.bundles、跑 test\verify-install.mjs 验证解析与配置。bundle 列表在启动时读取,装完需要重启 DSH(Desktop 应用)才生效。

(脚本刻意全 ASCII:Windows PowerShell 5.1 会把无 BOM 的 UTF-8 脚本按 ANSI 解码,中文会变成假的语法错误。)
依赖不走 pnpm:node_modules\@deepseek-ai\{schemastery,cosmokit} 与 node_modules\@standard-schema\spec 是从 profile 同级 node_modules 复制来的同版本副本,Node 按 realpath 解析依赖时正好命中它们。升级 profile 的 schemastery 后如果想同步,重跑一次复制即可。

卸载:删掉 junction 与 bundles 里的那一行。

验证

node test/smoke.mjs # 行为:21 项
node test/verify-install.mjs # 安装:解析 / 清单 / bundles / YAML / 导出

冒烟覆盖:真实 429 报文命中、欠费措辞与 ACCOUNT_QUOTA/RATE_LIMIT 放行、其他 provider 放行、预算耗尽放行、maxRetries: 0 与 enabled: false 关闭、providerRetryAfterMs 遵守、取消与释放中止等待、畸形负载不抛。安装验证需要先设 DSH_PROFILE / DSH_SOURCE(install.ps1 会设好)。

已知限制

- 只处理 QUOTA code;若上游换措辞(例如又造一个新句子),需要往 THROTTLE_PHRASES 里补一条。
- 等待期间不产出模型可见内容,界面只在会话里留下 llm/retry 记录,没有独立的倒计时提示。
- 预算账本在进程内存里(以 session 为弱键)。进程重启后同一步骤重新计数,最多多花一轮等待预算;不会无限重试。

许可

MIT

本仓库不含 node_modules:依赖由 DSH profile 的扁平层解析。克隆后走设置页「导入插件…」选中本目录,或手动复制到 <数据目录>/profiles/web/node_modules/,再把包名加进该 profile package.json 的 dsh.profile.bundles。
预览分享卡片长什么样 ↓wsfangyou/dsh-tpm-quota-retry
分享 · DeepSeek Harness Hub
wsfangyou/dsh-tpm-quota-retry

把每分钟限流错误转为有界等待重试,避免回合中断

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部