前言¶
在 DSH 生態中,Agent 的長期記憶管理是一個常見痛點。開發者經常面臨 Agent 忘記早期指令、將不可靠信息誤認爲用戶偏好,以及難以追溯和修正錯誤記憶的情況。dsh-adaptive-context 插件(AdaptiveContextPlane, ACP)旨在解決這些問題。它是一個帶治理的長期記憶系統,由 Icstick 維護,類別屬於“記憶”。
ACP 的核心價值在於將記憶管理從“黑盒”轉變爲“可審計的賬本”。它通過顯式的證據記錄、寫入閘門和用戶權限控制,確保注入 Agent 的上下文信息權威、準確且可追溯。
核心功能¶
- 證據賬本:基於 SQLite 的只追加式賬本。每條證據都記錄來源、權威等級(7級)和領域(6類)。同一事件重放只會落一條。
- 治理:包含寫入閘門(攔截密鑰、隱私、提示注入)、讀取閘門(按作用域/狀態/資格過濾)以及用戶權利(查看、導出、糾正、刪除等)。
- 上下文編排:在每輪對話的 pre-step 階段執行。通過雙通道排序(文本+語義)和內容去重,控制注入預算,避免冗餘信息。
- 用戶模型:顯式建模用戶事實、偏好、工作狀態、表達風格等,拒絕模糊推斷。
- 後臺沉澱:每輪結束後在後臺運行。證據積壓到一定量或時間間隔後觸發 LLM 提煉。失敗不推水位,下輪重試同批,僅 LLM 完全不可用時走規則兜底。
- 時間真相:證據帶有生效起止時間,可查詢歷史視圖。被取代的證據在舊時點依然可見,保留完整的演化鏈。
- 表達風格晉升:風格候選需過人工審批門或滿足策略護欄才生效,支持回滾。
- 多源路由:支持多個記憶源並行召回,各自超時互不拖累,主路掛了自動走備路。
- 審計與導出:所有關鍵操作留痕(誰、何時、爲什麼),支持 JSONL 格式的證據與審計數據全量導入導出。
- 離線鞏固:通過慢環將證據與觀察整理成穩定的候選結論,物理分離,晉升必須過人工門。
安裝與配置¶
安裝該插件需要執行 CLI 命令並手動補全配置。
- 安裝插件:
dsh plugin --profile <profile> add github:Icstick/dsh-adaptive-context
*注意:該命令只會安裝依賴並 reconcile bundles,不會自動寫入配置條目。*
- 配置數據目錄:
插件運行依賴於顯式配置的數據目錄。編輯 profile 根目錄的cordis.patch.yml,添加以下內容:
- id: adaptive-context
name: dsh-adaptive-context
config:
ledgerDir: C:\path\to\acp-data # 必填:賬本目錄的絕對路徑
*注意:`DSH_HOME` 環境變量不可靠,必須顯式指定 `ledgerDir`。*
- 安裝並重啓:
進入 profile 目錄執行pnpm install,然後重啓 dsh。
典型用法¶
ACP 的設計理念是“證據即真相”。以下是基於事實的典型使用場景:
- 第一天:告訴 Agent “記得我喜歡把配置和代碼分開”。這句話被 ACP 記錄爲一條用戶事實證據,來源權威,隨後在新會話中自動注入。
- 第二週:發現 Agent 生成的代碼縮進錯誤,糾正說:“都說了,用 4 空格。”這句話作爲“用戶糾正”寫入,同時將之前錯誤的舊證據標記爲“已取代”。從此,注入的只會是新偏好。
- 一個月後:需要遷移環境,導出 JSONL 格式的全部證據帶走,在新環境導入。此時可以完整查看到從“用戶偏好”到“糾正”再到“最終偏好”的演變過程。
注意事項¶
- 配置覆蓋規則:在
cordis.patch.yml中,同一個 id(如adaptive-context)的多個條目,後者會整體覆蓋前者,不是合併。 - 配置項變更:
targetDomain已棄用。memosBaseUrl和memosEnabled已於 2026-10-01 退場,配置中保留這些鍵位僅作兼容展示,不再生效。 - 運行環境:插件以當前 dsh 進程權限運行,安裝前建議檢查源碼與許可證(MIT)。
總結¶
ACP 爲 DSH 提供了一套結構化的長期記憶解決方案。通過將記憶寫入、檢索和治理流程標準化,它解決了 Agent 記憶不可控、難維護的問題。對於需要長期運行、對上下文一致性要求高的 Agent 項目,這是一個必要的工具。