dsh-auto-successor:DSH 會話水位到閾值時自動開新會話接力

前言

在 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,左側欄「自動化任務」下會出現 自動接力。規則修改後熱生效,無需再重啓。

典型用法

  1. 安裝並重啓後,保持默認規則即可:長任務會話水位到 85%、且至少 6 輪後,會自動生成交接稿、新建「接力 · 原標題」會話並歸檔舊會話(若歸檔開關爲開)。
  2. 在 規則 頁調低閾值可更早換會話;調高「最少輪數」或加長冷靜期可減少誤觸發與連環接力。
  3. 對固定標題模式的會話填寫「排除標題」正則,避免自動接力。
  4. 需要立刻換會話時,在 狀態 頁點「接力當前會話」,或在對話中讓模型調用 successor_handoff。
  5. 用 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 裏跑到上下文見底,可先按默認規則試用,再按會話類型微調閾值與排除列表。

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

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

小夜