前言¶
DeepSeek Harness 的插件化架構允許開發者擴展行爲。面對需要嚴格時間控制或異常檢測的長會話場景,手動監控往往效率低下且容易遺漏。acosmi/dsh-session-supervisor 提供了一套基於事實的生命週期監督機制,旨在解決活躍會話中的靜默超時、截止延誤及異常輪次問題。
這是什麼¶
這是一個面向活躍(宿主進程存活中)DeepSeek Harness 會話的、可持久、有預算的生命週期監督插件。它通過定時評估驅動,僅依據會話生命週期事實做判斷,不執行任何外部操作。
核心功能¶
- 生命週期監督:支持三種監督契約——靜默檢測(連續 N 秒無事件)、截止時間檢測(RFC3339 截止已過)、異常輪次檢測(連續 K 個
turn/end狀態爲 error/blocked 等)。 - 持久化與排隊:當策略越界時,插件會形成可持久記錄的 incident,限制證據數量與大小,並在配置允許時向 owner 會話排隊 follow-up。
- Guardian 工具:提供創建、列表、更新(暫停/恢復/確認/關閉)、檢查狀態的命令。
- 只觀察不執行:無 shell 執行、無網絡請求、不 cancel Agent,確保監督者不干擾業務邏輯。
- 冷會話恢復:支持在 resume 會話時合併過期的 deadline 並重新錨定 silence 檢測。
安裝與啓用¶
安裝前請確認已鎖定具體版本,不要使用 latest。
dsh plugin --profile <name> add @<publisher>/dsh-session-supervisor@0.1.0-beta.1
安裝後,插件會將配置對象整對象替換寫入 profile 的 cordis.patch.yml,請確保配置文件結構完整。
典型用法¶
- 聲明監督契約:在配置中定義
lifecycle_silence、deadline_unclosed或abnormal_turn_streak等策略。 - 管理 Guard 狀態:使用
guardian_create創建監督對象,通過guardian_update對 incident 進行 acknowledge(確認)或 close(關閉)。 - 手動觸發檢查:使用
guardian_check_now進行單次評估,僅記錄真實發生的狀態轉換。 - 恢復會話:在 resume 會話時,插件會自動合併已逾期的 deadline,並在 silence 重新錨定後繼續監督。
適用場景與注意¶
- 宿主進程依賴:計時僅在 harness 進程存活期間進行。如果宿主進程掛掉,計時停止,無法監督冷會話。
- 通知冪等性:由於 at-least-once 投遞機制,通知可能重複。需依賴 incident id 去重。
- Agent 不可救回:掛死的 Agent 無法被本插件救回(插件不會 cancel Agent),只能排隊 follow-up。
- 日誌零污染:v1 版本不向會話日誌寫入任何事件,狀態存儲在獨立目錄。
- 版本鎖定:必須按發佈逐個鎖定版本,避免兼容性問題。
- 架構限制:單宿主、單進程架構,無多宿主協調。
結語¶
該插件適合需要嚴格生命週期管理能力的場景。它提供了從檢測、記錄到排隊 follow-up 的完整流程,但開發者需注意其僅觀察不執行、依賴宿主存活等特性。