前言¶
在 DeepSeek Harness (DSH) 架構中,Agent 在會話間丟失上下文是常見問題。現有的目錄掃描方式缺乏語義結構,難以複用項目進度。該插件旨在爲 DSH 提供跨會話的持久記憶管理能力,讓 Agent 能夠記住任務內容、進度和決策原因。
插件簡介¶
插件全稱爲 workspace_memory_dsh,由開發者 LYRA-88 維護。它基於 DSH 架構,在會話工作區下維護 project_memory/ 目錄,通過命題圖和三層內存漏斗將對話內容轉化爲結構化的節點索引,並注入模型上下文,使 Agent 按“覆蓋命題”導航,而非掃描無類型目錄。
核心功能¶
該插件包含以下核心機制:
- 跨會話持久記憶管理:保存項目進度、任務狀態和關鍵決策。
- 命題圖:將原子命題歸類爲覆蓋命題(節點),構建節點網絡(
nodeEdges和entryLinks)。 - 三層內存漏斗:每節點下分爲
core.md(核心事實)、regular.md(常規記憶)和log/<sessionId>.md(過程日誌,不做向量化)。 - 混合檢索:支持向量(餘弦距離)與詞法檢索,通過 RRF 算法融合結果。
- 瀏覽器端審查面板:提供預覽和確認界面,Agent 可審閱記憶更新並提交。
- 有界節點索引注入:將結構化的節點索引有界地注入模型上下文。
安裝與啓用¶
插件安裝路徑位於代碼倉庫外部。執行以下命令安裝:
dsh plugin --profile web add <path-to-this-plugin>
安裝後需重啓 dsh web 進程才能生效。
使用方式¶
插件提供了客戶端組件和遠程 API 兩種調用方式。
客戶端組件¶
- MemoryButton (
conversation.input.memory):在當前會話輸入區打開記憶預覽/確認面板。 - MemoryPreviewPanel (
conversation.input.overlay):讀取有界子項目的文檔,預覽更新 diff 並提交,支持綁定/解綁會話。 - MemoryTreeSection (
sidebar.workspaces.memoryTree):在側邊欄渲染工作區記憶組。
遠程 API¶
通過 workspaceMemory 命名空間調用,支持的方法包括:
* listSubprojects / listSubprojectsByPath
* bindSession / classify / commitClassify
* previewUpdate / commitUpdate
* search
* memoryReindex / memoryStatus
* 以及刪除、重命名、會話列表查詢等方法。
存儲與配置¶
每個工作區下會生成 project_memory/ 目錄,包含 .registry.json(註冊表)、manifest.json(Schema 3)、向量分片 (vec/) 和圖結構 (graph.json)。
嵌入配置¶
插件支持通過 api.json 配置 OpenAI 兼容的 Embedding 端點。如果配置缺失或無效,插件會自動降級爲純詞法模式(Lexical-only),同時保留圖結構。
{ "embedding": { "baseUrl": "https://…/v1", "apiKey": "sk-…", "model": "text-embedding-3-small" } }
適用場景與注意事項¶
該插件專爲 Session Memory(會話記憶) 設計,主要用於保存和恢復項目進度、任務狀態、決策原因及下一步計劃。它並非爲大型知識庫或通用長期存儲系統構建,適合在幾到十幾次會話內完成的工作流。
- 運行依賴:必須依賴 DSH 主機(CLI 或 web 進程)運行。
- 版本遷移:早期版本(帶
dimensions樹的 manifest)在首次加載時會自動遷移。 - 權限與安全:安裝前應檢查源碼與許可證(MIT)。
總結¶
該插件通過結構化的命題圖和三層漏斗,爲 DSH Agent 提供了可控的跨會話記憶機制。通過混合檢索和瀏覽器審查面板,可以在保持上下文連貫性的同時,降低記憶管理的複雜度。