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 / 幻方没有官方从属关系。

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

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

Xiaoye