前言¶
DeepSeek Harness (DSH) 的核心設計理念是插件化。Hindsight 是其底層記憶組件,原生的庫管理是平級的,沒有層級結構。這給開發者帶來了一個選擇兩難:要麼所有項目共用一個庫,獲得全局視角但犧牲項目隔離;要麼每個項目一個庫,保持隔離但總視角永遠爲空。此外,原生庫列表無法區分“未使用的項目”和“未創建的庫”,導致無法診斷缺失的記憶。
dsh-local-memory 插件保留“每項目一庫”的隔離模型,同時提供跨庫聚合的視圖。它解決了總視角缺失的問題,並提供了診斷工具,能夠掃描工作區,找出尚未建立記憶的 git 倉庫。
功能¶
本插件提供以下核心能力:
memory_projects:列出全部項目,標出哪些有記憶、哪些還沒有。它會掃描工作區中的 git 倉庫,推導每個項目對應的庫名,並與實際存在的庫進行對比。memory_banks:列出所有項目記憶庫,包含規模(事實數)與活躍度(最後寫入時間)。memory_recall_all:跨庫查詢,結果按項目分組顯示。支持通過banks參數指定查詢範圍。memory_seed:給還沒有記憶的項目直接建庫。支持從 git 歷史播種,無需先開一次會話。支持memory_seed({ all: true })批量處理。- 圖形界面:在 DSH 的設置 -> 本地記憶中,提供項目總覽、庫列表勾選、跨庫查詢和一鍵建立/更新記憶的功能。
安裝與啓用¶
在終端執行以下命令安裝:
dsh plugin --profile web add github:AllenWES365/dsh-local-memory
安裝後需要重啓 DSH,並在 設置 -> 本地記憶 中查看界面。
前置條件¶
本插件依賴 Hindsight 記憶服務,必須先安裝並配置好。
- 安裝 Hindsight 插件:
dsh plugin --profile web add @vectorize-io/hindsight-coding-agents
- 配置 Hindsight 爲本地守護進程模式。編輯
~/.hindsight/coding-agent.json,確保內容爲:
{ "serverMode": "daemon" }
**注意**:不要添加 `bankId`、`retainTags` 等字段,否則會強制共用一個庫,破壞項目隔離。
- 配置 LLM Key。LLM 的 API Key 必須通過環境變量傳遞給 daemon:
export HINDSIGHT_API_LLM_PROVIDER=deepseek
export HINDSIGHT_API_LLM_MODEL=deepseek-v4-flash
export HINDSIGHT_API_LLM_API_KEY=...
配置後需要開啓新終端或重新加載環境變量。
典型用法¶
掃描項目狀態¶
在終端使用 memory_projects 命令,查看工作區中哪些項目還沒有記憶,哪些已經落後:
memory_projects
輸出會顯示:
* 有記憶的項目及其庫的狀態(如是否來自 git 歷史、是否停在舊提交)。
* 尚無記憶的 git 倉庫(這些可以直接播種)。
* 目錄裏存在但對應不到項目的庫(“來歷不明的庫”)。
跨庫查詢¶
使用 memory_recall_all 在所有庫中搜索問題。它會將結果按項目分組,並顯示耗時:
memory_recall_all 這個項目用什麼數據庫?
批量建立記憶¶
對於大量沒有記憶的 git 倉庫,可以使用 memory_seed 進行批量播種:
memory_seed({ all: true })
這會在後臺運行 Hindsight 的 deepen.js 引擎,將 git 歷史轉化爲記憶庫。
注意事項¶
- 未發佈到 npm:由於尚未發佈到 npm,安裝時必須使用 GitHub 地址,不能使用
dsh-local-memory這樣的簡寫。 - 庫名規則:庫名由前綴
coding-agent::和項目目錄名組成。例如,目錄/Volumes/SSD-2TB/project/verify對應的庫名爲coding-agent::verify。 - 視圖與副本:
memory_recall_all返回的聚合結果是一份視圖,不是第二份副本,因此沒有數據同步的問題。 - 性能成本:查詢成本主要由庫的規模(事實數量)決定,而非庫的數量。對於大庫,建議在
memory_recall_all中指定banks參數縮小範圍。 - 非 Git 目錄:對於非 git 倉庫的目錄,只有在裏面開一次會話纔會建立記憶,無法通過
memory_seed播種。
結尾¶
dsh-local-memory 插件通過提供跨庫聚合視圖和項目級診斷工具,填補了 Hindsight 在多項目場景下的管理空白。它將“不知道去哪找”的缺失記憶,轉化爲可操作的“建立記憶”按鈕。源碼與更多細節請訪問 GitHub 倉庫。