前言¶
DeepSeek Harness(DSH)採用“一切皆插件”的架構。在開發長對話或複雜任務的智能體時,如何自動判斷會話何時適合交接給人工或另一個流程,是一個常見需求。dsh-session-handoff 是一個宿主插件(薄適配層),它不處理具體的交接邏輯,而是負責觀測會話狀態、在滿足條件時觸發建議,並引導用戶或系統完成交接。
插件定位與核心價值¶
該插件由維護者 realpkuasule 開發,屬於記憶類工具。它的核心價值在於將“會話健康度觀測”與“交接動作觸發”解耦。它通過一系列閾值判定,在會話進入特定階段(如步驟過多、重試過多)時,通過確定性模板向會話尾部追加建議,並配合審批門控,最終調用全局 harness-automation CLI 完成實際操作。
安裝與啓用¶
本插件支持通過 DSH 的標準插件機制安裝。請確保你的 Node.js 版本大於等於 20。
dsh --profile web plugin add github:realpkuasule/dsh-session-handoff
安裝後,插件會自動掛載到配置中。你可以通過 dsh --profile web --dump-config 檢查 dsh-session-handoff 是否出現在組成樹中,隨後重啓 web 進程以生效。
核心功能¶
插件主要包含以下能力:
- 會話指標觀測:投影單元
sessionHandoff持續記錄會話的turns(輪次)、steps(步驟)、llmMs(耗時)、titles、retries(重試)和splices(前綴緩存操作)等數據。 - 閾值觸發判定:插件讀取策略文件中的閾值配置。當觀測到的指標(如
turns ≥ 12、steps ≥ 150、llmMs ≥ 30min)超過閾值時,判定爲“切換建議”狀態。 - Append-Only 建議注入:命中閾值後,插件會在下一個 open turn 內注入一條確定性建議。該注入嚴格遵循 append-only 紀律,消息內容由固定模板渲染(不包含時間戳或隨機數),且通過指紋去重機制確保不會重複追加。
- Approval 門控制:建議注入後,插件會在同 turn 內請求
ctx.approval。只有當allowed-once被批准時,纔會調用 CLI 執行交接;拒絕或取消則不執行任何操作。 - 調用 harness-automation CLI:交接執行由全局
harness-automation session handoff命令完成,插件僅負責解析其 JSON 輸出。
使用流程與限制¶
插件通過以下步驟工作:
- 觀測:訂閱會話的 change feed,持續更新投影視圖。
- 判定:計算當前視圖與策略文件閾值的差值。
- 觸發:若未命中且指紋未存在,將該會話掛入 pending,在下一個 open turn 注入建議。
- 執行:用戶在 turn 內批准後,CLI 執行交接。
重要約束與注意事項:
- 只讀策略:插件在讀取策略文件(默認爲
.harness/session-workflow.yaml)時,絕不改寫文件內容,僅作爲只讀觸發依據。 - 注入紀律:注入消息僅允許追加到歷史尾部,且不能在狀態未改變時追加(防止零狀態寫入)。
- 審批時機:Approval 請求僅在 open turn 內有效,插件沒有後臺定時器,不會單方面終止會話。
- 配置解析:項目策略文件中的閾值解析器只認
thresholds:塊下的標量數字鍵,不支持複雜的 YAML 結構。
適用場景¶
該插件適合需要在 DSH 生態中自動化管理長會話生命週期、需要嚴格審計交接過程以及希望將交接邏輯與觀測邏輯分離的場景。由於插件僅做觀測和觸發,執行邏輯完全依賴外部 CLI,因此適合需要靈活配置交接策略的團隊。
總結¶
dsh-session-handoff 是一個專注於“觀測-判定-觸發”鏈路的輕量級適配器。它通過嚴格的 append-only 注入和指紋去重機制,保證了會話狀態的穩定性;通過 approval 門控和 CLI 調用,確保了交接流程的受控性。如果你正在使用 DSH 構建需要自動管理會話進度的應用,該插件提供了一個標準化的切入點。
- 項目目錄:https://www.skillhub.cn/plugins/realpkuasule/dsh-session-handoff
- GitHub 倉庫:https://github.com/realpkuasule/dsh-session-handoff