前言¶
給智能體做長期記憶,常見的兩條路都有代價:把記憶全部塞進系統提示詞,記憶越多每個會話燒的 token 越貴;上 RAG 和向量庫,則要引入一整套檢索與運維成本,對多數個人部署來說偏重。dsh-simple-wiki-memory(下稱 DSWM)走的是第三條路:一個小型索引文檔在每個會話自動注入,具體主題各存一個 Markdown 文件,任務需要時纔讀取。無 RAG、無向量庫、無運行時 LLM 調用,全部資產就是 Markdown 文件加一個 git 倉庫。
這是什麼¶
DSWM 是 DSH 的簡化版 llm-wiki 記憶插件,作者是 rainow,採用 MIT 許可,當前版本 v0.1.2(2026-08-28)。它基於 DSH 原生的 dsh-agent-instructions(AGENTS.md)機制,把 ~/.dsh/AGENTS.md 當作記憶索引,把 ~/.dsh/workspace/ 當作記憶庫,並通過注入的規則讓 agent 自行維護這套文件。手動改文件或讓 agent 改都可以,所見即所得。
記憶庫的結構¶
插件維護的文件佈局如下:
~/.dsh/
├── AGENTS.md # 索引 + 六條維護規則(每個會話自動注入)
└── workspace/ # 記憶庫(git 倉庫)
├── reference/ # 已確認記憶主題(進索引、參與檢索)
├── pending/ # 待確認草稿(不參與檢索,等你說"存檔")
├── archive/ # 過時主題(保留、不參與檢索)
└── memory-log.md # 追加式操作日誌
reference/ 裏是一個主題一個 md 文件,每個文件承載一個主題的完整細節,由 AGENTS.md 裏的索引條目指向。平時每個會話只加載索引,任務需要時纔讀取對應主題文件,不佔多餘上下文。
六條維護規則¶
DSH 在每個會話第一個請求前自動注入 ~/.dsh/AGENTS.md,裏面除了索引就是六條規則,約束 agent 如何寫入和維護記憶:
1、寫入觸發:會話中產生值得記住的信息立即寫入,直接進 pending/,不等會話結束、不默默丟棄;/new 或關閉頁面都不會丟失。
2、准入流程:未確認的留在 pending/;你說「存檔/確認」後晉升到 reference/,同時更新索引、記日誌。
3、無人值守會話(task-board 定時、後臺 subagent)只寫 pending/,不自動晉升。
4、定期整理:說「整理記憶」觸發重組流程,agent 先給出方案(拆分/合併/改名/歸檔),你確認後才執行,過時內容進 archive/。
5、備份:workspace/ 是 git 倉庫,記憶變更後自動 commit。
6、檢索:先查索引,無匹配則掃描 reference/ 目錄兜底,不會直接認定「沒有記憶」。
安裝與首次啓動¶
方式一,npm 源(推薦,dsh-market 會顯示版本號並檢測更新):
dsh plugin --profile web add dsh-simple-wiki-memory
方式二,GitHub 源碼安裝:
dsh plugin --profile web add github:rainow/dsh-simple-wiki-memory
方式三,把 GitHub 倉庫鏈接丟給 DSH 會話裏的 agent,讓它代爲安裝並完成首次同步:
https://github.com/rainow/dsh-simple-wiki-memory
首次啓動會自動同步 AGENTS.md 骨架、創建 vault 目錄、git init workspace/。這個過程是冪等的,且對已有的 ~/.dsh/AGENTS.md 只合並不覆蓋,不會動你的索引條目。
日常使用¶
幾個典型交互,全部通過自然語言完成:
- 會話中讓 agent 記住某事 → 寫入
pending/;說「存檔/確認」→ 晉升爲reference/正式記憶並更新索引。 - 說「整理記憶」→ 觸發重組流程(拆分/合併/改名/歸檔),執行前需你確認。
- 檢索由自帶的
memory-query技能處理,包含reference/目錄掃描兜底。 - 運行時鉤子負責收尾:回合結束自動 git commit,會話開始時彙報
pending/裏的待確認記憶。所以寫入是即時的,確認是延遲的,跨會話不丟。
記憶庫本身就是 git 倉庫,出問題可以回滾:
git -C ~/.dsh/workspace log
git -C ~/.dsh/workspace reset --hard <commit>
兼容性與已知限制¶
- DSH 版本:peerDependencies 覆蓋
0.1.0-rc.7+/0.1.1-rc.2+/0.1.2-alpha.1+三條發佈線,已用 DSH 0.1.2-alpha.2(web profile)驗證,最後驗證日期 2026-08-28。 - 插件依賴 DSH 原生
dsh-agent-instructions機制(dsh-basebundle 默認啓用);如果你的部署禁用了它,記憶注入不會生效。 - 與錨定模式的衝突:liangshen / Anchored Standard 模式會在會話首輪清空運行時上下文,從而屏蔽 AGENTS.md 的自動注入。這是錨定模式的刻意設計,不是 bug。解決方式是手動讓 agent 讀取,例如說「先讀一下 ~/.dsh/AGENTS.md 再開始」,之後記憶規則照常運作。非錨定模式的會話不受影響。
- git 不可用時插件會優雅降級:記憶功能照常工作,只是沒有自動備份。
權限與數據¶
- 文件:讀寫
~/.dsh/AGENTS.md和~/.dsh/workspace/;命令:在該目錄內執行git init/add/commit。無網絡、無憑據、無遙測。 - 沙箱要求:寫入
~/.dsh/workspace/需要danger-full-access,或workspace-write加按需批准升級;讀取記憶在任何沙箱模式下都可行。
配置與卸載¶
v0.1 沒有用戶可見的配置項,默認值安全。v0.2 計劃提供 TTL 天數、自動 commit 開關、記憶目錄路徑三項配置。
卸載命令:
dsh plugin --profile web remove dsh-simple-wiki-memory
卸載會停止運行時鉤子(自動 commit、pending 彙報),但 ~/.dsh/AGENTS.md 和 ~/.dsh/workspace/ 的數據全部保留。六條規則仍留在 AGENTS.md 裏(它只是純文本),想徹底移除就手動刪掉那一段。
適用場景與注意¶
DSWM 適合個人 DSH 部署中記憶量中等、想要可讀可改可 git 的記憶系統的用戶。如果你覺得 llm-wiki 那套太重,或者不想爲向量庫付運維成本,它的取捨比較合理。另一個實用的點是跨 harness 共享:記憶就是純 md 文件,把其他 harness 的 AGENTS.md 或等效文件指向這個庫即可複用。
照例提醒:插件以當前 dsh 進程的權限運行,安裝前建議先查看源碼與許可證,確認權限範圍符合你的預期。
結尾¶
DSWM 的思路是「索引常駐、內容按需」:用最小機制解決長期記憶的 token 成本問題,把數據留在用戶手裏的 Markdown 和 git 裏,裝和卸都沒有負擔。項目主頁與社區目錄如下:
- GitHub:https://github.com/rainow/dsh-simple-wiki-memory
- 目錄頁:https://www.skillhub.cn/plugins/rainow/dsh-simple-wiki-memory
順帶說明:DSH 的理念是「一切皆插件」,上面的社區目錄是獨立站點,與 DeepSeek / 幻方沒有官方從屬關係。