前言¶
DeepSeek Harness (DSH) 采用插件化架构。当会话因上下文过长频繁触发 429 TPM 限流时,传统的重试策略往往只会重复发送超大上下文,导致持续失败并消耗额度。旧插件 dsh-auto-continue-429 仅支持反复 continue,无法从根本上解决问题。
dsh-migrate-on-429 旨在解决这一问题。它是一个工作流插件,当检测到频繁 429 时,会自动总结当前会话并迁移到新会话继续任务。与旧插件不同,它采用“先取消旧会话、再启动新会话”的串行交接策略,确保任务转移而非并行执行,从而避免在限流池中空烧额度。
核心功能¶
该插件提供以下核心能力:
- 智能限流检测:自动监听
agent/request-error和session/event,识别RATE_LIMIT、QUOTA或CONTEXT_WINDOW_EXCEEDED错误。 - 阈值前重试:在达到迁移阈值前,按退避延迟自动向当前会话发送
continue消息重试。 - 自动交接迁移:达到阈值后,自动生成交接摘要,创建全新会话并注入任务,旧会话则停止运行。
- 串行交接:执行严格的串行逻辑——先中止旧会话并等待其空闲,再创建新会话,防止新旧会话并行导致冲突。
- 工作区自动登记:新会话创建后,通过
workspace.attachSession自动登记到源会话所属的工作区,确保侧边栏可见。 - 多子代理防连环交接:引入全局协调机制,防止父代理开启多个子代理时,因所有子会话同时触发 429 而导致连锁的迁移与 429 循环。
- 双端安全:客户端代码零 node builtins,宿主入口无
@deepseek-aiimport,确保浏览器端打包安全。
安装与启用¶
安装本插件前,必须先移除旧插件 dsh-auto-continue-429,两者监听同一事件源,同时启用会互相冲突。
- 卸载旧插件:从
dependencies和dsh.profile.bundles中移除dsh-auto-continue-429。 - 安装新插件:运行以下命令安装 scoped 包
@minyang2026/dsh-migrate-on-429。
dsh plugin --profile web add @minyang2026/dsh-migrate-on-429
重启 DeepSeek Harness 应用后,插件生效。
配置与使用¶
配置文件默认位于 ~/.dsh/migrate-on-429.json。你也可以在 Web 设置页的「429 自动迁移」Tab 中修改配置,或通过环境变量 DSH_MIGRATE_ON_429_CONFIG 指定自定义路径。
主要配置项说明:
| 配置键 | 默认值 | 说明 |
|---|---|---|
enabled |
true |
主开关 |
quickOn |
true |
对话框快捷开关 |
migrateThreshold |
3 |
连续失败达到此数触发迁移(建议 2-50) |
windowMs |
180000 |
请求级 429 滚动统计窗口(毫秒) |
llmSummary |
true |
尝试使用 LLM 精炼交接摘要(失败自动回退结构化提取) |
continueMessage |
"continue" |
阈值前自动重试的消息内容 |
globalCooldownMs |
60000 |
每次迁移后的全局冷却时间(毫秒) |
手动触发迁移可以通过 HTTP API:
POST /api/migrate-on-429/migrate-now
# Body 可选 { "sessionId" }
注意事项¶
- 生态收录状态:本插件尚未提交收录至 awesome-dsh-plugin.com 市场,无法通过 Web 界面搜索安装,请务必使用命令行安装。
- 依赖要求:插件依赖
@deepseek-ai/cordis和@deepseek-ai/dsh-llm。 - 插件互斥:请勿与
dsh-auto-continue-429同时启用,已证实两者会互相抢夺控制权。 - 运行权限:插件运行在 DSH 进程权限下,安装前建议检查源码与许可证。
总结¶
dsh-migrate-on-429 是解决 DeepSeek Harness 长上下文 429 限流问题的有效方案。它通过自动总结、串行交接和多子代理保护机制,确保了任务在遇到限流时能平稳过渡到新会话,避免了无效的重试循环。对于需要处理复杂、长对话任务的场景,该插件能显著提升稳定性。