dsh-handoff-session:長會話壓力感知與自動交接

前言

在 DeepSeek Harness(DSH)裏做複雜任務時,單個 Session 往往會拖很多輪:上下文變滿、模型表現下滑,但手頭還有未完成的改動和決策。常見做法是人工讓模型寫交接文檔,再新建 Session、粘貼續接提示詞——步驟多,也容易漏關鍵文件或驗證結果。

下面介紹社區插件 Session Handoff(會話交接)(npm 包名 dsh-handoff-session),由維護者 BlueOcean3214 發佈,分類屬於「記憶」類能力:在會話接近壽命上限前,由模型在合適檢查點調用工具寫出交接文檔,並在同一工作目錄自動開新 Session 繼續執行。

這是什麼

dsh-handoff-session 是 DSH 的 Host + Client 插件 bundle。Host 側負責會話壓力投影、運行時提示與 session_handoff 工具;Client 側在 Web 輸入框下方提供「會話交接」入口與壓力面板,不佔用圖標位。

它要替代的手工流程是:寫交接文檔 → 點「下一步」→ 複製提示詞 → 新建會話 → 粘貼。裝好後,模型在策略允許時只需調用一次 session_handoff 即可完成文檔、轉錄、新 Session 創建與首輪續接提示。

核心功能

壓力投影與動態提示

插件摺疊每個會話中的 turn/start、step/start、request/context、assistant/message、tool/call、tool/result 等事件,得到輪數、步數、上下文佔用、累計 token、緩存命中率等指標。

每次請求會在運行時上下文注入 <session-pressure>,告知當前壓力與 level:low / watch / recommended / urgent。系統提示中另有「會話壽命與交接」規則:僅在 recommended 或 urgent,且處於可持久化檢查點時,才應調用交接工具。

默認閾值(可在配置中修改)參考了「約 22 輪 / 677 步 / 24% 上下文」這類狀態落在 recommended 的場景——模型會在下一個乾淨檢查點交接,而不是每輪打斷。

交接工具 session_handoff

調用後會:

  1. 將目標、現狀、已完成、待辦、決策、關鍵文件、驗證結果等寫入 <cwd>/.dsh/handoffs/handoff-<時間>-<會話>.md(目錄默認 .dsh/handoffs,可配置 handoffDir)。
  2. 可選生成同目錄下的 handoff-<時間>-<會話>.transcript.md,供後續 read / grep 檢索細節;不會整份塞進新 Session 上下文,新 Session 首輪只讀摘要。
  3. 通過 sessionController.create() 新建 Session,用 sessionController.prompt() 發送「讀交接文檔 + 繼續指令」,並按配置結束舊回合、自動切到新 Session。

新 Session 看不到舊對話,因此工具參數裏的 summary 與 nextPrompt 必須是自包含的。

Client 界面

client.js 在輸入框下方右側顯示「會話交接」四字,顏色隨壓力從次要色變爲警告色或品牌色。點擊可展開面板,查看三項閾值進度與說明;「現在交接」會把交接指令填入輸入框併發送。交接完成後可自動切到新 Session,也可手動「打開新會話」。

安裝與啓用

從 npm 安裝(資料原文命令):

dsh plugin add dsh-handoff-session

該包爲 Host + Client bundle,無構建步驟。安裝後需在 DSH 桌面窗口刷新 Web 頁面(例如 Ctrl+R),或使用 dsh web 打印的帶 token 地址;Client 半纔會進入頁面。直接訪問裸的 http://127.0.0.1:<port> 可能返回 401,與插件無關。

也可在 Plugin Manager 中對本地開發目錄調用 install_bundle(target 傳絕對路徑),裝好後 list_plugins 中應出現 Session Handoff / 會話交接。

自託管市場索引(可選):在 Plugins → Discover 的 Index sources 中加入
https://raw.githubusercontent.com/BlueOcean3214/dsh-handoff-session/main/market/index.json,刷新後從列表安裝。社區目錄站點 skillhub.cn 與 DeepSeek / 幻方無官方從屬關係,DSH 生態理念是「一切皆插件」。

配置要點

配置位於包內 cordis.patch.yml 的 config。修改後需通過 plugin_manager 的 set_bundle 關閉再打開 bundle,Host 纔會重讀 patch;僅改 JS 不會熱更新 Host 半。

鍵 默認 含義
turnsWatch / turnsSoft / turnsUrgent 10 / 20 / 30 輪數閾值
stepsWatch / stepsSoft / stepsUrgent 250 / 500 / 900 步數閾值
contextWatch / contextSoft / contextUrgent 0.40 / 0.60 / 0.85 上下文佔用比例閾值
handoffDir .dsh/handoffs 交接文檔相對 cwd 的目錄
language zh 文檔與續接提示語言(zh 或 en)
concludeTurn true 交接成功後立即結束舊回合
autoOpenNewSession true Client 自動切到新 Session
transcript true 是否導出可檢索轉錄旁路
transcriptMaxChars 120000 轉錄字符上限(超出時省略中段)
transcriptReasoning false 是否寫入模型 reasoning
transcriptToolOutput true 是否寫入工具參數與結果

轉錄文件可能包含命令輸出、文件片段等敏感信息,交接目錄應按項目需要清理或加入 .gitignore(倉庫 .gitignore 已示例擋住 .dsh/ 下對話記錄)。

典型用法

  1. 安裝並刷新 Web 界面,確認輸入框下方出現「會話交接」。
  2. 在長任務 Session 中正常開發;觀察壓力文字顏色或展開面板中的輪數 / 步數 / 上下文佔用。
  3. 當系統提示與 <session-pressure> 表明處於 recommended 或 urgent 時,讓模型在可持久化檢查點調用 session_handoff,填寫完整的 summary 與 nextPrompt。
  4. 也可在面板點擊「現在交接」,由 Client 直接發送交接指令。
  5. 交接完成後在新 Session 中根據 handoff-*.md 繼續;若摘要不夠,對新 Session 說明「在 .dsh/handoffs/ 下 grep 對應 *.transcript.md」按需補細節。

適用場景與注意

適合:單 Session 內迭代較久的功能開發、調試、重構;需要在不丟決策與文件清單的前提下「換乾淨上下文」繼續同一 cwd 下的工作。

注意:

  • 插件以當前 DSH 進程的權限運行,安裝前請閱讀源碼與 MIT 許可證,確認交接目錄與轉錄內容是否符合團隊安全要求。
  • 星標與官方 awesome 目錄條目以倉庫當前狀態爲準;維護者 README 記載 npm 與自託管索引已可用,官方目錄 PR 需滿足倉庫創建滿 1 天等條件(見倉庫 docs/catalog-submission.md)。
  • 不要編造未在文檔出現的安裝方式;git 來源安裝需符合 DSH 市場 format 1 的 git+<url>.git#<commit> 規則,日常推薦上述 npm 命令。

結尾

dsh-handoff-session 把「壓力感知 → 結構化交接 → 新 Session 自動續接」收成一次工具調用與一套可檢索旁路文件,減少長會話手工換檔的成本。進一步瞭解可訪問 skillhub 目錄頁 與 GitHub 倉庫。

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

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

小夜