mnemon
LLM 智能体的持久记忆系统——四图知识存储、意图感知召回、零 API 成本
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
LLM 智能体的持久记忆系统——四图知识存储、意图感知召回、零 API 成本
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你花了半小时和 AI 助手分析一个问题,做了大量关键决策,结果第二天再启动时,AI 完全不记得你们讨论过什么——上下文窗口已经刷新,一切从零开始。这是每一个 LLM Agent 开发者都会遇到的痛点:会话失忆症(Amnesia Problem)。
Mnemon 正是为解决这一问题而生。它是一个专为 LLM Agent 设计的持久化记忆系统,核心思路极具颠覆性——不内置 LLM,而是让宿主 LLM 充当记忆引擎的外部监督者。二进制程序处理确定性计算(存储、图索引、搜索、衰减),LLM 做出判断(记什么、怎么关联、何时遗忘)。没有中间人,没有额外推理开销。
图1:LLM 监督式模式:钩子驱动生命周期,宿主 LLM 做判断,二进制处理确定性计算。
传统记忆工具往往把记忆当作"器官"——嵌入在 AI 内部,与模型紧密耦合。而 Mnemon 采用了"教科书"隐喻:记忆是独立于 AI 存在的外部知识库,AI 可以随时查阅、标注和复习,但不必把整本书吞进脑子里。
这一设计选择解决了三个根本矛盾:
remember、link、recall——构成了一个"意图原生协议"。
图2:MAGMA 四图模型——Temporal(时序)、Entity(实体)、Causal(因果)、Semantic(语义)四种关系维度。
Mnemon 的记忆组织基于 MAGMA(Multi-Aspect Graph Memory Architecture) 四图模型,这是学术前沿的记忆存储范式。每个"记忆节点"(Insight)通过四种边与其他节点关联:
时序图(Temporal Graph):捕捉记忆的时间顺序。每个新记忆自动与同源的最新记忆建立双向"骨干边",并与24小时内创建的相邻记忆建立"邻近边"(权重 = 1/(1+时差))。这让 AI 能够回答"我们上次讨论这个问题是什么时候"这类时间线问题。
实体图(Entity Graph):基于命名实体(如项目名、人名、工具名)建立关联网络。用户可以用 --entities 参数显式指定关联实体,引擎自动建立实体间的多跳路径。
因果图(Causal Graph):记录"因为...所以..."类型的记忆关联。当 AI 说"因为上次选了 Qdrant 所以这次继续用它"时,Mnemon 能将决策与后续行为关联起来。
语义图(Semantic Graph):基于向量嵌入的相似性搜索。默认使用 Ollama + nomic-embed-text 模型生成768维向量,也可完全跳过嵌入仅依赖关键词搜索。
mnemon remember写入流程包含三个关键步骤:
第一步:内置 Diff 检查(事务外,只读)。Mnemon 在存储前会计算新内容与所有现有记忆的语义相似度——如果相似度 > 0.90,判定为重复,直接跳过不写入;如果相似度在 0.50–0.90 之间,判定为冲突/更新,自动软删除旧记忆后写入新版本;如果相似度 < 0.50,才执行正常插入。这意味着 LLM 可以重复调用 remember 而不必担心记忆库膨胀。
第二步:原子写入事务。一个 SQLite 事务完成所有操作:软删除旧记忆(如有)→ 插入新节点 → 建立四种类型的图边。SQLite WAL 模式确保并发安全。
第三步:LLM 监督评估(可选)。通过 --emit 参数,Mnemon 可以将记忆同步推送给宿主 LLM,让 LLM 主动判断这条记忆的重要性等级(1-5)和类别(decision/fact/insight/preference/context/general),无需人工标注。
图3:Remember 管线——输入验证→嵌入生成→内置Diff→原子事务写入→LLM评估。
mnemon recall召回流程采用"智能召回"(Smart Recall)算法,核心是 RRF(Reciprocal Rank Fusion) 融合与 Beam Search 遍历。
当用户输入查询时,Mnemon 先进行意图检测——通过关键词匹配判断是时间线查询、实体查询还是语义查询,然后优先遍历对应类型的图边。Beam Search 从多个候选节点出发,沿着高权重边扩展搜索空间,最后通过多因子重排序(关键词命中 + 实体匹配 + 向量相似度 + 图距离)输出 Top-K 结果。
输出格式经过精心设计,对 LLM 极度友好——每个结果包含 content(记忆原文)、intent(召回意图标签)、confidence(低/中/高置信度)、score(加权分数),还附带了 hint(可选提示,引导 LLM 进一步查询)。记忆节点自带有效重要性(EI)衰减机制:长期不使用的重要记忆会自动降级,空闲超过配置期限后被 GC 清理。
Mnemon 的工程实现体现了极简主义哲学:一个 Go 二进制程序 + SQLite 数据库 = 整个系统。没有任何外部 API 依赖,不依赖任何云服务,数据完全存储在本地 /mnemon 目录。
github.com/mnemon-dev/mnemon
├── cmd/ # CLI 命令层(Cobra 框架)
│ ├── remember.go # 写入命令
│ ├── recall.go # 召回命令
│ ├── link.go # 关联命令
│ ├── forget.go # 删除命令
│ └── setup.go # 自动集成检测
├── internal/
│ ├── store/ # SQLite 数据库层(WAL 模式)
│ ├── graph/ # 四图引擎(自动边创建)
│ ├── embed/ # 向量嵌入(Ollama 集成)
│ ├── search/ # 召回算法(RRF + Beam Search)
│ └── setup/ # Agent 集成检测(20+ 种 CLI)
└── harness/ # 实验性:事件溯源生命周期层
代码质量可圈可点:仓库包含大量 *_test.go 文件,测试覆盖率极高;Go Report Card 评分良好;.goreleaser.yml 完整配置了跨平台发布(Linux/macOS/Windows × amd64/arm64);Homebrew Tap 官方支持喝 brew 安装。Go 版本要求 1.24+,使用了 modernc.org/sqlite(纯 Go 实现)、spf13/cobra(CLI 框架)等高质量依赖。
Mnemon 的 mnemon setup 命令能自动检测并集成 20 多种主流 LLM CLI 工具,包括 Claude Code、OpenClaw、Cursor、Trae、Qoder、Kimi Code、CodeBuddy、WorkBuddy、OpenCode、Nanobot、Pi 以及本文档正在使用的 Hermes Agent(通过 internal/setup/assets/hermes/ SKILL.md 集成)。集成方式是将 Mnemon 的记忆原语(remember/recall/link)封装为各平台的 hook 脚本(prime.sh / compact.sh / remind.sh / nudge.sh),在 AI 的每个工作周期自动调用。
部署极其简单,只需一行命令:
# 方式1: Docker Compose(一键,包含可选 ollama 向量服务)
git clone https://github.com/mnemon-dev/mnemon && cd mnemon
docker compose up -d
# 方式2: Homebrew(macOS/Linux)
brew install mnemon-dev/tap/mnemon
mnemon setup # 自动检测并集成已安装的 CLI 工具
# 方式3: Go 安装
go install github.com/mnemon-dev/mnemon@latest
Dockerfile 采用了三阶段构建(dev → build → runtime),最终 runtime 镜像基于 Alpine Linux,大小仅约 20MB。内存需求极低(256MB RAM),无需 GPU。
尽管设计理念先进,Mnemon 也存在一些值得关注的局限:
1. LLM 调用开销:虽然不需要额外的 LLM API,但每次记忆操作都会触发与宿主 LLM 的交互。如果宿主 LLM 上下文窗口已满,记忆功能本身也会受影响——这形成了一个自引用悖论。
2. 向量嵌入可选:没有 Ollama 时,Mnemon 退化为纯关键词搜索,语义召回能力大打折扣。用户必须自行维护一个 Ollama 实例。
3. 实验性组件:mnemon-harness(事件溯源生命周期管理)明确标注为"非生产可用"且"可能随时破坏性变更",与稳定版 CLI 存在共存关系,这增加了认知负担。
4. 跨 Agent 记忆共享:目前记忆绑定在单个 Agent 实例上,多 Agent 协作场景下如何同步记忆还没有成熟方案。
Mnemon 代表着 LLM Agent 记忆领域的第三次范式转移:从"内置记忆模块"(Mem0)到"上下文工程"(Claude Code Memory),再到"外部监督式持久记忆"。其 MAGMA 四图模型将记忆从扁平的键值存储升级为多维关系网络,语义召回能力远超传统 RAG。
作为一个发布仅数月的开源项目(Stars 364且持续增长),Mnemon 已经展现出了清晰的技术愿景和高质量的工程实现。其"LLM 即监督者"的设计哲学——用已有订阅而非额外 API——在成本敏感的企业场景中具有相当的吸引力。随着 LLM Agent 生态的成熟,外部记忆协议这一赛道很可能成为下一个兵家必争之地,而 Mnemon 已经抢占了先机。