前言¶
在 DeepSeek Harness (DSH) 的開發流程中,長會話往往不會以“崩潰”告終,而是以“成本飆升”收場。平臺會在約 80% 的上下文佔用率時自動壓縮會話,這通常發生在用戶已經無法干預的時刻。dsh-context-guard 旨在解決這一問題:它在回合結束時介入,利用官方 dsh-token-meter 計算的 contextPressure 投影,在會話佔用率達到閾值時提醒用戶結束當前會話並開啓新會話,並自動生成交接文檔。
插件介紹¶
這是一個 DSH 工作流插件,由用戶 2JumpSinA 維護。它通過讀取官方 token-meter 的數據,在會話佔用率過高時觸發警告,並自動起草一份機器事實的交接塊,寫入會話的工作目錄。其核心價值在於“零上下文稅”——不向模型註冊工具,不注入提示詞,也不發送額外請求,完全在宿主進程中進行計算和讀寫。
核心能力¶
- 消費官方投影:直接讀取
dsh-token-meter生成的contextPressure數據。 - 自動交接起草:當會話佔用率超過
warnRatio(默認 45%)時,插件會在會話工作目錄中創建或重寫HANDOVER.md。之後每增加 5 個百分點,它會刷新該文檔。 - 零上下文稅:不註冊模型可見的工具,不注入提示詞,不產生額外的 API 請求,不會增加模型端的 token 消耗。
- 機器事實記錄:交接文檔包含會話 ID、標題、工作目錄、佔用率、調用次數、賬單成本、本次會話寫入的文件列表以及最近幾輪提示詞與回覆的預覽。
- 雙語支持:內置中英文運行時拷貝,根據上下文自動檢測。
使用與配置¶
- 默認觸發:默認
handoverOnWarn爲true,默認warnRatio爲0.45(即 45%)。 - 交接路徑:默認路徑爲
HANDOVER.md。 - 推送配置:默認
pushChannel爲'none',即不向外部推送消息。 - 典型流程:當佔用率跨過 45% 閾值時,插件會在回合結束時發出警告,並在當前目錄生成
HANDOVER.md;之後每跨過 50%、55% 等節點,文件會被刷新。
權限與安全¶
- 工作目錄寫入:插件會將交接文檔寫入會話的工作目錄。該目錄可能包含敏感信息(如文件路徑、提示詞片段),因此建議將
HANDOVER.md加入.gitignore,或將handoverPath指向倉庫外。 - 原子寫入與權限:採用原子寫入(臨時文件 + 重命名)模式,文件權限嚴格限制爲
0o600。 - 邊界檢查:拒絕寫入不存在的父目錄、非文本文件(如 .json/.yml)以及指向其他位置的符號鏈接。
- 錯誤處理:任何寫入失敗僅記錄爲狀態,不會影響徽章顯示或推送功能。
技術規格¶
- 包名:
@2jumpsina/dsh-context-guard - 版本:0.3.4
- 運行環境:Node.js
^22.19.0 || >=24.0.0 - 依賴:需要
@deepseek-ai/schemastery作爲 peer dependency。
生態鏈接¶
- GitHub 倉庫:2JumpSinA/dsh-context-guard
- 技能社區目錄:dsh-context-guard