前言¶
DeepSeek Harness (DSH) 的長會話容易觸達上下文窗口上限,導致自動壓縮卡頓或進度丟失。此插件通過結構化交接文檔和主動剪枝,解決會話中斷與上下文溢出問題。
安裝¶
dsh plugin --profile web add github:snow-The/dsh-session-handoff
安裝後需要重啓 dsh web。
核心模塊¶
會話交接¶
插件提供結構化的交接文檔導出與恢復能力,支持在斷點處無縫切換會話。
- 導出與恢復:handoff_export 將會話解析爲 Markdown 文檔,寫入 <workspace>/.dsh-handoff/handoff-<session>.md,並生成可複用的交接包(支持 OpenViking/archify 增強時)。handoff_resume 用於在新會話中加載文檔並繼續工作。
- 狀態查看:handoff_status 輸出會話概覽,包括回合數、消息、工具使用、檢查點及上下文壓力。
活躍上下文剪枝¶
使用官方壓縮 API,在上下文窗口填滿前主動壓縮已消耗的歷史,避免卡頓。
- 壓力監控:acp_status 檢查使用量、表面序列映射及限制(軟/硬壓力等級)。
- 手動壓縮:acp_compress {start} {end} {summary} 將指定範圍替換爲摘要。
- 配置調整:acp_set_limit 主動設置新的軟/硬限制,持久化至配置文件。默認軟/硬限制爲 60% / 70%。
- 輔助功能:acp_decompress(讀取隱藏文本)、acp_search(搜索壓縮歷史)。
會話管理¶
對會話進行回收站、恢復或永久清除,防止數據丟失。
- 操作工具:session_list 列出會話;session_trash 歸檔並移動會話至回收站(可恢復);session_restore 恢復回收站會話;session_purge 永久刪除會話及回收站條目。
- 垃圾箱持久化:回收站條目以 JSON 格式持久化在 $DSH_HOME/dsh-session-handoff-trash/ 下,保留最新的 10 個。
模型路由¶
支持跨供應商、跨計劃切換同一模型 ID,解決單一模型 ID 在多供應商間的管理問題。
- 路由查看:model_routes 列出所有註冊路由(供應商、baseURL、key family)。
- 路由切換:model_switch {route} 切換當前模型至指定路由。支持 --vision 選項使用視覺包裝器。
Web 界面¶
插件內置手寫 Web 客戶端(無構建步驟),提供圖形化管理。
- 模型路由面板:在設置頁新增“模型路由 / Model Routes”面板,支持拖拽排序、刪除、添加路由。
- 自動故障轉移:噹噹前路由出現錯誤時,自動切換至優先級列表中的下一個路由,工作不中斷。
- 交互控制:提供“交接導出”按鈕和壓縮閾值滑塊(軟/硬限制),支持一鍵填充默認值。
典型用法¶
在舊會話中:
handoff_export # 導出交接文檔
在新會話中:
handoff_resume # 加載交接文檔,繼續工作
在長會話中:
acp_status # 檢查壓力
acp_compress {start} {end} {summary} # 剪枝已消耗的範圍
acp_set_limit # 主動調整軟/硬限制
切換供應商時:
model_routes # 查看路由
model_switch deepseek # 使用 Ark 路線
model_switch deepseek-official # 使用官方路線
model_switch deepseek --vision # 使用視覺包裝器
注意事項¶
- 插件核心零依賴;內存與圖表功能在檢測到對應增強(如 OpenViking、archify)時自動啓用。
- 主機路由邏輯與代理工具共享,不會偏離。
- Web 客戶端無構建步驟。
- 垃圾箱條目作爲 JSON 持久化在
$DSH_HOME/dsh-session-handoff-trash/下(保留最新的 10 個)。
結語¶
該插件旨在解決 DSH 開發中的記憶與上下文管理難題,適合需要長週期、多會話協作的開發場景。