dsh-simple-wiki-memory:給 DSH 的輕量持久記憶插件

前言

給智能體做長期記憶,常見的兩條路都有代價:把記憶全部塞進系統提示詞,記憶越多每個會話燒的 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-base bundle 默認啓用);如果你的部署禁用了它,記憶注入不會生效。
  • 與錨定模式的衝突: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 / 幻方沒有官方從屬關係。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜