养个记得住的AI搭子,万字长文复盘'万忆中枢的诞生”

万忆中枢 wanyimem:一个永远不会失忆的 AI 第二大脑

为智能体打造的事件溯源长期记忆系统 本地优先 · MCP Server · 23 个工具 · 你的数据永远不出你的电脑

不断更新中,欢迎提意见,官方合作可以私信我

一、一句话说清楚它是谁

万忆中枢(WanYi Memory Core,包名 wanyimem) 是一个 本地优先的 AI 长期记忆系统,以 MCP Server 的形式交付。它专门解决一个 AI 世界最扎心的痛点:

LLM 智能体会失忆。 关掉对话框,你教过它的偏好、血泪教训、踩过的坑,一瞬间全部蒸发。

市面上已有的记忆方案,要么把数据丢到云端(隐私裸奔)、要么要搭重型基础设施、要么只会关键词搜索(连"认赔离场"和"死扛不止损"是同义词都认不出来)。

万忆中枢不跟它们卷,它走一条完全不同的路——在自己电脑上,给 Agent 装一个越用越聪明的第二大脑。

它写在代码开头的那句信条,就是整个项目的灵魂:

这不是一个记忆插件。这是给 Agent 装的第二个大脑。 你教它一次,它永远记得。 它犯错一次,它自己学会反思。 你换一万次对话,它的记忆永不丢失。


二、它到底靠什么解决"失忆"

万忆中枢的核心是一个事件溯源的记忆引擎,配合六大护城河和自我进化机制。一层层讲清楚。

1. 存储:事件溯源,永不遗忘

  • append-only 事件日志(WAL)是唯一真相源:任何记忆变动都追加写入,永不删除。

  • 所谓"遗忘",只是检索排序时让旧记忆排后面(时间衰减),数据本体永远在。

  • 底层是 SQLite 单文件:FTS5 全文索引 + 向量列 + 知识图谱 + 事件日志,一体打包,零外部依赖。

  • 记忆分 道 / 法 / 术 三层,各自有独立半衰期:

    • 道:原则、偏好、决策哲学 —— 每会话自动注入,永不衰减

    • 法:模式、策略、方法论 —— 条件注入,60~120 天半衰期

    • 术:原始观察、具体事实 —— 按需召回,7~30 天半衰期

2. 检索:四通道混合召回,语义级命中

这是它相比"只会关键词搜索"的碾压点。一条查询走四条通道再融合:
通道
方法
① 关键词
BM25(FTS5 全文索引),中文 2-gram 分词
② 语义向量
本地中文向量模型 BAAI/bge-small-zh-v1.5(512 维)
③ 精排
BAAI/bge-reranker-base(CrossEncoder 二次排序)
④ 图谱
知识图谱多跳扩展 + 显性时序衰减字段

最后用四因子加权重排(语义 45% + 近因 25% + 频率 10% + 重要性 20%)。

效果:你说"认赔离场到底对不对",它哪怕和你存的内容零关键词重合,也能靠语义把"死扛不止损亏了18%"那段记忆捞出来。基准(迷你 LongMemEval,跨会话事实召回 10 例):Recall@5 = 90%,MRR = 0.900。

3. 元认知:知道自己不知道什么

召回结果太弱时,它没把握就不硬编——如实记录一条"知识空白",并诚实告诉你"这块库存薄弱"。知道不知道,是最高级的知道。 这也是很多人忽略的记忆幻觉治理手段。


三、六大护城河:这是它最"狠"的地方

万忆中枢不是单纯存东西,它还想保护你。这是项目最有产品想象力、也是最有故事性的部分。

:japanese_symbol_for_beginner: 护城河 #1 · 拦截之眼(置信度决策检查)

你说"我要全仓梭哈",它先做一次认知置信度检查,并亮出你历史上踩过的所有同款坑。如果置信度不足,直接 BLOCK——然后自动开反事实分支(见 #2)。

底层是 KektorDB 三分量模型:置信度 = 共识度 40% + 稳定性 30% + 摩擦度 30%,再叠加 FSRS 间隔复习曲线,像记单词一样帮你给每个判断"复习"。

:crystal_ball: 护城河 #2 · 反事实之镜(counterfactual mirror)

每个关键决策点,它开一条平行分支记录两件事:你实际选的(事实路径)vs 你如果听劝的(反事实路径)。到期待自动结算,把两条人生的结果摆在你面前——“如果你当时只买两成,会是什么结果?”

你亲眼看到自己没走的那条路,这种记忆比任何说教都深刻。

:bridge_at_night: 护城河 #3 · 跨域桥接(跨域类比迁移)

它把不同领域的教训抽象成跨域底层模式,然后互相提醒。你在交易里无视止损,它会告诉你:“这个底层模式,你在写作/开发里也踩过。”

一个坑,全领域互通。这正是它"道法术"哲学里"道通万物"的落地。

:world_map: 护城河 #4 · 轨迹回放(分支轨迹回放)

把历史所有反事实分支串成一条决策时间线,还能算两条虚拟路径——“实际人生 vs 如果全听劝的人生”。决策生涯一眼回放,越用越看得清自己的进化曲线。

:handshake: 护城河 #5 · 主动搭档

不等你开口,它自己动手:

  • 今日简报(待结算分支 + 到期提醒 + 高命中跨域模式)——会话启动自动出

  • 主动体检(到期 / 超期 / 重复踩坑检测)

  • 周复盘(stats + route + review 合成)

  • 风险关键词扫描(文本里出现"梭哈/追涨/全仓/删库/强推"立即告警)

:mirror: 护城河 #6 · 元认知知识空白

系统知道自己不知道什么,主动记录库存薄弱点,供你补充。这是全套机制的"诚实开关"。


四、自我进化:它越用越懂你

这是万忆中枢最被低估的部分——它不需要你喊"记住这个"。

五齿轮自动反思(HOOK-REFLECT)

任务一结束,它自动转五个齿轮,全程无需你说话:

  1. 决策日记 —— 记下这次怎么决策的

  2. 模式抽象 —— 提炼可复用的规律

  3. 技能建议 —— 该不该固化成一个技能

  4. 撞墙复盘 —— 哪里踩坑了

  5. 知识沉淀 —— 该存什么新知识

四钩子生命周期

钩子像生命周期的四个节点,全自动触发:

  • :electric_plug: LOAD(会话启动):注入道级+法级记忆 + 断点续传 + 图谱预热

  • :eye: MONITOR(任务关键节点):自动存档防丢

  • :thought_balloon: REFLECT(任务完成):五齿轮自动反思 + 图谱构建

  • :floppy_disk: STORE(会话结束):汇总存档 + 睡眠巩固 + 跨会话同步

园艺师后台(gardener)

夜间/后台自主做三件"整理":

  • 矛盾检测:新记忆和旧记忆冲突时,不删任何一条,交给置信度仲裁谁更可信

  • 冗余检测:高度相似记忆归并提示(相似度 >0.85 触发)

  • 技能结晶:同一任务成功模式出现 ≥2 次,自动结晶成技能文件,越用越成体系

过程记忆 + 错题本 + 经验库

  • 过程记忆:ExpeL 五阶段(规划/尝试/纠错/反思/结论),失败自动沉淀错题本

  • 错题本:Reflexion 式反例库,高频错误模式统计,跨会话防重复犯错

  • 经验库:成功路径自动沉淀为可复用模式,跨任务迁移


五、23 个 MCP 工具全景

所有能力封装成 23 个工具,任何 MCP 客户端全局可用。按用途分组:

基础记忆

  • 万忆记录见闻 / 万忆召回记忆 / 万忆知识压缩 / 万忆记忆自检

存档与续传

  • 万忆存档进度 / 万忆加载进度(跨会话冷续传)

图谱与巩固

  • 万忆图谱搜索 / 万忆睡眠巩固 / 万忆查询进化

过程与沉淀

  • 万忆过程存档 / 万忆错题本 / 万忆经验库 / 万忆园艺师

画像与钩子

  • 万忆导入档案 / 万忆更新交易锚点 / 万忆触发LOAD钩子 / 万忆触发STORE钩子

五大护城河 + 元认知

  • 万忆置信度决策检查 / 万忆反事实之镜 / 万忆跨域桥接 / 万忆轨迹回放 / 万忆主动搭档 / 万忆知识空白

六、接入只需两步

pip install "wanyimem[all]"     # Python 3.10+,含向量/精排模型依赖

在 mcp.json 加进任意客户端(Claude Desktop / Cursor / Trae 等):

{
  "mcpServers": {
    "wanyi": {
      "command": "python",
      "args": ["-m", "wanyi.memory_core"],
      "env": {
        "万忆中枢_STORE_DIR": "C:/path/to/your/memory"
      }
    }
  }
}

也可以作为 Python 库直接用:

from wanyi import WanYiCore
engine = WanYiCore()
engine.tool_record_memory(content="止损纪律:亏损超过8%必须无条件卖出", layer="法", mem_type="principle")
resp = engine.tool_recall_memory("认赔离场到底对不对", limit=5)

国内加速:模型首次使用会自动下载,设置 HF_ENDPOINT=https://hf-mirror.com 走镜像即可。


七、为什么值得信任

  • 本地优先:记忆全部在你的 SQLite 文件里,零云端依赖、零遥测、零隐私泄露

  • 降级优先:向量/精排/图谱模型不可用时自动降级为关键词检索,核心链路永不崩溃(这是刻意设计的工程哲学,不是缺陷)

  • 开源专业:MIT 协议,ruff lint + pytest × Python 3.10/3.11/3.12 矩阵全绿,GitHub Actions CI + CodeQL 安全扫描齐备

  • 已上 PyPI:pip install wanyimem 一条命令,全世界可用

  • 工程配套齐全:中英双语 README、安装指南、Issue/PR 模板、CHANGELOG、Dependabot 自动依赖更新、SECURITY 私密上报通道


八、写在最后

市面上的记忆系统都在做"存更多",万忆中枢做的是另一件事——把记忆变成一个有性格、会反思、能保护你的第二大脑。

它记住的不只是数据,是你的偏好、你的教训、你差点走错的每一个岔路口。它还通过反事实之镜告诉你:如果当时听劝,会是另一条人生。

pip install wanyimem,给你的 Agent 装上这个不会失忆的第二个大脑。


WanYi Memory Core · MIT License · © 2026 Zhao Xikun GitHub: GitHub - 17861102832/wanyimem: 为了服务于大众 · GitHub · PyPI: wanyimem · PyPI

2 个赞

这个事件溯源+本地优先的思路挺扎实,append-only 日志当唯一真相源、"遗忘只是排序靠后"这个设计我很喜欢,比直接删记忆稳。一个问题想请教:你提到置信度检查用 FSRS 间隔复习曲线,实际跑下来"复习"机制真的让判断变准了吗,还是更多是个隐喻?我想知道那套三分量置信度在真实使用里有没有可感知的纠偏效果,还是主要增加了一层拦截延迟。

1 个赞

你的直觉是对的:默认配置下它更像隐喻,而且我顺着查下去发现不只是隐喻,还有 bug。
为什么是隐喻:复习动作需要外部显式调用,而我的自动巡检 auto_moat 里根本没有复习步骤,它本身默认也不启动(--loop 默认 0,注释写明"避免把 MCP 服务器变成常驻守护")。没手动调过的话,这条通道一次都没跑过。

就算跑起来天花板也低:confidence = 0.4*共识度 + 0.3*稳定性 + 0.3*(1-摩擦度),复习只动稳定性这一个分量。上限 0.30,剩下 0.70 归验证和质疑。真正起作用的是那个不对称设计:一次反对票打掉 0.135,一次支持票只加 0.090。

但查出两个 bug:① 稳定性乘性增长且无上界,复习 10 次后膨胀到 4768,导致置信度被 min(1.0,...) 永久锁死,复习 2 次后连投 3 次反对票仍停在 0.953,护栏形同虚设;② 复习成功还给共识度 +0.05,“背得熟"被误记成"验证过对”,零验证纯复习 10 次就能满置信。
已修(v1.1.1):稳定性夹紧 [0,1],复习不再抬共识度。同场景从 0.953 降到 0.275,补 36 项回归测试。

回答你的三个问题:复习不让判断变准,它只管"有没有忘";可感知的纠偏来自 challenge/validate,但得你真的投过票;拦截延迟确实有,但都是毫秒级 SQLite 查询,没有模型推理。

2 个赞

妥妥一个电脑工具人。。。

2 个赞

你知道SQLite最大的缺陷是什么为什么被普遍mysql替代了么。。

2 个赞

SQLite 被 MySQL 普遍替代了?那你现在手机里的微信聊天记录、浏览器历史、WhatsApp,都是跑在“被替代了”的 SQLite 上的。
它官方定位是“跟 fopen() 竞争”,从没跟 MySQL 同赛道。本地优先单进程的工具用 MySQL,等于让用户装个数据库服务器才能跑起来——这不是缺陷,这是你选型常识的缺陷。

2 个赞

db3的定位是轻量型数据库!!轻量的意思就是大了会卡!

3 个赞