Repository navigation
Releases
Releases · miseryrua/dsh-wb-memory
v9.0.0 — 文件化记忆 + 写入护栏
纯 Markdown 的跨会话长期记忆,零运行时依赖。
记忆机制
- 分层注入:L0 全局画像
USER.md/ N3PINNED.md置顶 / L1 摘要 + L2 相关条目 top-5 / L3 今日日志 / N1 近 N 日回顾 - auto-digest(每轮对话后,零 LLM)→ 当日日志;auto-distill(每小时,LLM)→
MEMORY.md;auto-compact(超阈值,LLM)先备份到archive/再压缩 - 会话小结(空闲后生成,四道闸限流不放任烧 token)、画像候选机制(Agent 不直接改
USER.md) memory_search原生工具:长期记忆 + 近期日志双源关键词检索,比读全文省 token- 治理:TTL 归档过期日志、近重复检测(只报告不合并)、回收站与归档超期清理(删除走 rename 进
.trash/,可回滚)
v9.0 新增:写入护栏
MEMORY.md 有三个写者(会话追加 / 每小时 distill / 超阈值 compact 整体重写)而没有任何握手。compact 从读原文到写盘之间夹着完整的 LLM 调用(最坏约 6 分钟),期间 Agent 按纪律追加的条目会被静默抹掉。
guardedWrite(p, content, expectedRaw):写盘前重读文件,与「送进 LLM 的那份原文」按内容逐字节比对(不比 size/mtime,同长度不同内容也拦得住),不一致即放弃本次写入- 接在 compact 与
USER.md画像候选两个真竞态出口;冲突不写__compact__日锁,下一轮巡检自动重试,不打扰用户 - 刻意不改 HTTP 写入路径:那是面板里人工确认过的显式覆盖
自 v8 起从未入库的机制(本 tag 首次发布)
memory_search 工具、PINNED 置顶、逻辑日分界(凌晨 3 点算昨天)、会话小结、近 N 日回顾、compact 同轮反馈重试、BOM 容错。
验证
node test/smoke.mjs → 108 passed, 0 failed(覆盖注入装配、召回、治理、BOM 容错、compact 自适应目标、以及写入护栏的端到端并发冲突)。