前言¶
在 DeepSeek Harness (DSH) 的長會話中,默認的 LLM 總結後端會導致窗口耗盡、注意力稀釋,並且有損總結會永久丟失精確的錯誤字符串、命令輸出和代碼簽名。dsh-codex-context 是一個針對這一問題的解決方案,它將默認的後端替換爲一個基於 token 預算的滑動窗口,同時保留持久化工作筆記和冷歷史搜索能力。
核心功能¶
dsh-codex-context 提供以下能力:
- 分詞預算滑動窗口:當活動窗口超過配置的
targetActiveTokens時,引擎向後回溯並遮擋舊節點,直到尾部符合預算。切割會盡量對齊到安全邊界。 - 零孤兒邊界:利用 Codex 的
normalize不變量,確保工具調用與其結果不被分離。 - 模型無關檢查點:在常規窗口操作中寫入模板檢查點而非調用 LLM,節省成本。
- 緊急降落傘:當壓力超過閾值(默認 0.85)時,通過 LLM 生成結構化摘要;若失敗則降級爲模板檢查點。
- 工具:
update_notes:更新持久化工作筆記,固定在模型請求頂部,不受窗口滑動影響。search_history:在完整會話日誌上進行正則/關鍵詞搜索,支持冷歷史檢索。
安裝與啓用¶
該插件是一個 dsh bundle,通過 cordis.patch.yml 禁用默認的 compaction-basic 行,並掛載 codex-context 行。
本地安裝:
dsh plugin --profile demo add /path/to/dsh-codex-context
dsh --profile demo --dump-config # 檢查 base compaction-basic 行是否被禁用,codex-context 行是否已掛載
dsh --profile demo
Git 安裝(推薦):
dsh plugin --profile demo add github:dvaJi/dsh-codex-context#<sha>
需在 pnpm-workspace.yaml 中添加 allowBuilds: dsh-codex-context: true。
打包安裝:
pnpm pack
dsh plugin --profile demo add ./dsh-codex-context-0.1.2.tgz
僅添加工具層:
若需保留原有總結後端並僅添加筆記和搜索工具:
- insert:
- id: codex-context-tools
name: dsh-codex-context/tools
注意事項¶
- 工具名稱衝突:不要在同一個上下文中掛載完整的 bundle 條目和
codex-context-tools,兩者的工具名稱會衝突。 - 查詢限制:
search_history拒絕空或僅包含空白字符的查詢;拒絕包含嵌套無界量詞(如(a+)+)的正則模式,以防止災難性回溯。 - 權限與來源:插件以當前 DSH 進程權限運行。安裝前應檢查源碼與許可證(MIT)。
- 持久化機制:筆記持久化不需要自定義會話事件類型,它依賴於現有的
user/message源快照和摺疊邏輯。
總結¶
dsh-codex-context 通過引入 Codex 風格的無損檢索架構,解決了 DSH 在長會話中信息丟失和窗口管理困難的問題。它提供了可靠的冷歷史搜索和固定工作筆記,適合需要處理大量上下文和保留精確歷史記錄的開發場景。
資源:
* GitHub 倉庫:https://github.com/dvaJi/dsh-codex-context
* 生態目錄:https://www.skillhub.cn/plugins/dvaJi/dsh-codex-context