前言¶
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 限流問題的有效方案。它通過自動總結、串行交接和多子代理保護機制,確保了任務在遇到限流時能平穩過渡到新會話,避免了無效的重試循環。對於需要處理複雜、長對話任務的場景,該插件能顯著提升穩定性。