前言¶
在 DeepSeek Harness(DSH)裏跑長任務時,會話上下文很快就會頂到硬上限。常見做法是手動新開會話,把進度重新說一遍;或者裝上下文壓縮類插件,在原地縮歷史——後者容易丟細節、改對話結構,還可能影響前綴緩存。
dsh-auto-successor(自動接力)走另一條路:上下文快滿時自動建新會話,由 AI 把當前任務摘要成交接稿,寫進新會話第一條消息,再把舊會話歸檔。完整歷史留在歸檔側,新會話只帶結論繼續幹。
下面按定位、功能、安裝、用法和邊界說明這個工作流插件。
這是什麼¶
- 名稱:dsh-auto-successor(目錄展示名:自動接力)
- 維護者:rodrequezsaievade764-rgb
- 分類:工作流
- 當前版本(package.json):0.2.1
- 許可證:MIT
插件在 DSH 會話的 token 水位超過設定閾值且滿足輪數等條件時,觸發生成交接稿、創建同工作區同 preset 的新會話、投遞交接稿並可選歸檔舊會話。README 中的流程可以概括爲:
舊會話(水位 88%)→ 生成交接稿 → 新會話(首條消息 = 交接稿)→ 舊會話歸檔
與「原地壓縮」插件(如 billion-context)相比,自動接力強調保留完整歷史、另起乾淨會話、只遷移摘要,適合需要斷點清晰、又不想反覆口頭複述的長任務。
核心功能¶
自動與手動觸發¶
默認開啓,水位閾值 85%。到點且輪數滿足「最少輪數」後自動接力,無需人工干預。管理面板 狀態 頁爲每個活躍會話顯示水位條(綠 / 黃 / 紅)、輪數、是否被排除;也可用「接力當前會話」手動觸發。
監聽點在 session/event 的 turn/end,僅在 reason.kind === 'completed' 的正常輪次結束時判斷,半途而廢的輪次不計入觸發。
管理面板三頁¶
- 狀態:水位、輪數、排除標記、手動接力按鈕。
- 規則:總開關、水位閾值、最少輪數、冷靜期、兜底上下文窗口、交接後是否歸檔、排除的會話標題正則。
- 日誌:每次接力一條記錄——自動或手動、水位、成功或失敗、新會話號;降級交接稿會單獨標出。
全局工具¶
任意 DSH 會話均可調用:
successor_handoff— 立即接力(sessionId不填表示當前會話)。successor_status— 查看各會話水位與最近接力情況。
交接稿結構¶
交接稿固定五節,便於新會話直接接手:
## 任務背景
## 已完成 ← 關鍵文件路徑 / 命令 / 參數原文照抄
## 進行中
## 下一步 ← 按順序列 1-5 條
## 注意 ← 坑、約束、用戶偏好
生成交接稿時走宿主 llm.stream,不進入當前會話上下文;取材爲最近 40 條消息、每條最多 1500 字。模型失敗時會降級爲「原始記錄截取」版,接力仍完成,日誌標「降級交接稿」。
規則參數(默認值)¶
| 參數 | 默認 | 說明 |
|---|---|---|
| 水位閾值 | 85% | 占上下文窗口百分比 |
| 最少輪數 | 6 | 未滿該輪數不自動接力,避免誤傷新會話 |
| 冷靜期 | 10 分鐘 | 全局冷靜期,接力後一段時間內不再自動接力 |
| 兜底上下文窗口 | 128000 | 無模型窗口元數據時用此估算 |
| 交接後歸檔 | 開 | 關閉則只建新會話,舊會話保留 |
| 接力鏈上限 | 3 代 | 標題前綴「接力 · …」層數到此停止自動接力;手動仍可觸發 |
| 排除標題 | 空 | 正則,一行一條;命中則不自動接力 |
seedMode 默認通過 followup 把交接稿作爲新會話第一條消息跑一輪(耐重啓);設爲 system-prompt 可掛到系統提示詞側。宿主不支持時自動回落 followup,日誌寫明降級原因。
建議對「每句話都算一輪」、水位漲得快但無接力價值的會話做排除,例如 QQ 機器人:正則 ^QQ。
安裝與啓用¶
安裝前請自行查閱 GitHub 倉庫 源碼與 MIT 許可證。插件在當前 DSH 進程權限下運行,安裝即信任其邏輯與數據落盤路徑。
Windows(PowerShell):
& "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add github:rodrequezsaievade764-rgb/dsh-auto-successor
Linux / Docker:
dsh plugin --profile <profile> add github:rodrequezsaievade764-rgb/dsh-auto-successor
裝好後重啓 DSH,左側欄「自動化任務」下會出現 自動接力。規則修改後熱生效,無需再重啓。
典型用法¶
- 安裝並重啓後,保持默認規則即可:長任務會話水位到 85%、且至少 6 輪後,會自動生成交接稿、新建「接力 · 原標題」會話並歸檔舊會話(若歸檔開關爲開)。
- 在 規則 頁調低閾值可更早換會話;調高「最少輪數」或加長冷靜期可減少誤觸發與連環接力。
- 對固定標題模式的會話填寫「排除標題」正則,避免自動接力。
- 需要立刻換會話時,在 狀態 頁點「接力當前會話」,或在對話中讓模型調用
successor_handoff。 - 用
successor_status或 日誌 頁覈對水位與歷次接力是否成功、是否出現降級交接稿。
數據與配置落在用戶目錄(Windows 示例爲 %USERPROFILE%\.dsh\plugins-data\auto-successor\):
config.json— 規則log.jsonl— 接力歷史state.json— 冷靜期與上次接力workspace/— 接力會話專用工作區
重裝或升級插件一般不丟上述數據。
適用場景與注意¶
適合:單會話內連續多輪編碼、排查、文檔整理等長任務;希望上下文換新但不想手工複述進度;需要可審計的接力日誌與可復現的交接稿結構。
依賴:README 寫明需要宿主提供 tokenMeter、sessionController、workspaceRegistry(桌面版與 Web 組合具備)。缺服務時會在日誌說明,不會靜默失敗。
邊界:
- 冷靜期爲全局:一次接力後,所有會話在冷靜期內都不再自動接力。
- 接力鏈層數按標題前綴「接力 ·」計算;手動改標題會使層數重置爲 0。
- 交接稿質量依賴摘要所用模型;小模型可用,大模型通常細節更多。
- 水位測量:優先
tokenMeter.measure(session);全拿不到時標「測不到」,不猜測。
DSH 生態理念是「一切皆插件」;SkillHub 目錄頁 爲社區收錄,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-auto-successor 用「新會話 + 結構化交接稿 + 可選歸檔」解決長任務上下文飽和問題,與原地壓縮互補。若你經常在 DSH 裏跑到上下文見底,可先按默認規則試用,再按會話類型微調閾值與排除列表。