dsh-migrate-on-429: DeepSeek Harness 429 限流自动迁移插件

前言

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-ai import,确保浏览器端打包安全。

安装与启用

安装本插件前,必须先移除旧插件 dsh-auto-continue-429,两者监听同一事件源,同时启用会互相冲突。

  1. 卸载旧插件:从 dependencies 和 dsh.profile.bundles 中移除 dsh-auto-continue-429。
  2. 安装新插件:运行以下命令安装 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" }

注意事项

  1. 生态收录状态:本插件尚未提交收录至 awesome-dsh-plugin.com 市场,无法通过 Web 界面搜索安装,请务必使用命令行安装。
  2. 依赖要求:插件依赖 @deepseek-ai/cordis 和 @deepseek-ai/dsh-llm。
  3. 插件互斥:请勿与 dsh-auto-continue-429 同时启用,已证实两者会互相抢夺控制权。
  4. 运行权限:插件运行在 DSH 进程权限下,安装前建议检查源码与许可证。

总结

dsh-migrate-on-429 是解决 DeepSeek Harness 长上下文 429 限流问题的有效方案。它通过自动总结、串行交接和多子代理保护机制,确保了任务在遇到限流时能平稳过渡到新会话,避免了无效的重试循环。对于需要处理复杂、长对话任务的场景,该插件能显著提升稳定性。

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

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

小夜