前言¶
在 DeepSeek Harness(DSH)的使用過程中,隨着會話變長,上下文窗口逐漸被填滿,模型處理速度會變慢,且容易丟失關鍵信息。手動複製粘貼歷史記錄到新會話既繁瑣,又容易破壞工作流。dsh-session-handoff 插件旨在解決這個問題:它通過一條命令,將當前會話的內容總結並移交到一個全新的會話中,同時保持原會話不變。
插件介紹¶
dsh-session-handoff 是一個 DSH 插件,用於將長會話平滑交接給一個新的會話。
- 維護者:WeiYe6
- 許可證:MIT
- 核心價值:在同一個 workspace 中創建一個乾淨的新 session + agent,通過 LLM 生成結構化摘要,並自動打開新會話。
核心功能¶
該插件主要提供以下能力:
- 單命令操作:輸入
/handoff即可觸發,支持指定摘要的消息數量或使用all獲取全部歷史。 - 乾淨的交接:新會話繼承原 workspace、模型路由和 agent preset(包含 system prompt、tools、skills),但不復制舊的歷史上下文,避免上下文膨脹。
- 結構化摘要:生成的交接文檔包含明確的分類,包括任務目標、當前進度、關鍵決策、涉及文件、下一步和遺留問題。
- 自動打開:客戶端會等待新會話就緒並自動導航過去。每個子會話只會自動打開一次,不會重複跳轉。
- 魯棒性設計:摘要默認關閉思考(fast/cheap),超大輸入截取最新消息而非報錯,並將結束原因轉換爲可操作的錯誤信息。
- 零核心改動:僅需一行
dsh.bundle.patch,僅依賴公開服務。
安裝與啓用¶
安裝需要先獲取包文件,然後通過 DSH 命令行安裝。
- 獲取插件包(例如
dsh-session-handoff-0.2.1.tgz)。 - 使用 DSH 命令將其添加到 web profile:
dsh plugin --profile web add ./dsh-session-handoff-0.2.1.tgz
- 重啓 DSH 並驗證。在 web 模式下查看配置,應能看到
dsh-session-handoff相關的掛載項。
使用示例¶
在任意會話的輸入框中輸入以下命令:
/handoff:默認總結最近 8 條用戶消息。/handoff 20:總結最近 20 條用戶消息。/handoff all:總結所有用戶消息。
執行後,界面會顯示“summarizing…”,隨後新會話會自動打開,第一條消息即爲生成的結構化交接文檔。
配置說明¶
可以在配置文件中調整摘要的行爲。默認配置如下:
- id: handoff
name: dsh-session-handoff
config:
turns: 8 # 抽取的用戶消息輪數 (1-50)
maxInputChars: 24000 # 摘要輸入的字節上限(超出則丟棄舊消息)
maxTokens: 2000 # 摘要輸出的 token 預算
reasoningEffort: off # 思考模式:off (默認,快速/便宜) | high | max | inherit
timeoutMs: 120000 # 摘要調用超時時間
# provider: deepseek-official # 可選:固定模型路由
# model: deepseek-v4-flash # 必須與 provider 配對
如果不配置 provider 和 model,系統將使用當前會話的模型路由。
注意事項¶
- 隱私:爲了生成摘要,最近會話的文本(包括用戶和助手消息)會被髮送到配置的模型進行處理。
- 版本兼容性:支持 DSH
0.1.0-rc.5到rc.8以及0.1.1-rc.2。DSH0.1.2-alpha.1因架構變更被排除,不支持。 - 存儲位置:交接文檔僅存在於會話內存中,不會寫入磁盤(
HANDOFF.md是未來的增強功能)。
結語¶
dsh-session-handoff 解決了 DSH 開發中上下文管理的痛點。通過自動化會話交接,開發者可以保持會話的整潔與高效。更多細節與源碼,可參考社區目錄或GitHub 倉庫。