【免费下载链接】mnemon
LLM-supervised persistent memory for AI agents — graph-based recall, cross-session knowledge, single binary. Works with DeepSeek Harness, Claude Code, OpenClaw, and any agent runtime.
Mnemon 是一个为 AI Agent 提供持久记忆的开源项目,其 Embedding(嵌入向量)模块采用"可选增强"设计:不配置任何嵌入服务即可完整使用 remember、recall、图遍历等核心功能;而当你用 Ollama 拉取一个本地嵌入模型后,就能零 API Key、零成本地启用基于向量相似度的语义混合检索,显著提升 recall 召回精度。
为什么 Embedding 是可选的?
Mnemon 的检索引擎(internal/memory/search/)设计了完整的**优雅降级(graceful degradation)**机制:
| 能力 | 无嵌入向量时 | 有嵌入向量时 |
|---|---|---|
| 召回锚点 | 关键词 + 时间 | 关键词 + 向量 + 时间(RRF 混合融合) |
| 语义边 | Token 重叠(较粗糙) | 余弦相似度 ≥ 0.50(精确) |
| 图遍历评分 | 纯结构信号 | 结构 + 语义信号 |
| 重排序权重 | 关键词 45% / 实体 25% / 图 30% | 关键词 30% / 实体 15% / 相似度 35% / 图 20% |
关键点在于:运行时自动检测,无需任何"降级模式"开关。Mnemon 每次运行会以 2 秒超时探测嵌入服务是否可用;如果服务掉线,相似度那 35% 的权重会自动重新分配给关键词和图信号,检索照常工作。这个权重矩阵定义在 internal/memory/search/recall.go 中。
用 Ollama 零 API Key 启用本地语义检索
Ollama 是 Mnemon 的默认嵌入服务商,本地运行、无需注册、无需 API Key。三步完成配置:
- 安装 Ollama(官网或包管理器)
- 拉取默认嵌入模型:
ollama pull nomic-embed-text(一个轻量高效的文本嵌入模型,输出 768 维向量) - 什么都不用改 —— Mnemon 的默认端点就是
http://localhost:11434,默认模型就是nomic-embed-text
也就是说,只要本机 Ollama 在跑且模型已拉取,语义检索自动生效。
配置完成后可用一条命令验证:
mnemon embed --status
它会返回嵌入覆盖率、embedding_available 状态、当前协议与模型等信息(该命令实现见 cmd/memory/embed.go)。embedding_available 字段会发起一次真实的小文本嵌入请求确认模型可用,不会外发任何已存储的记忆内容。
智能召回流水线:向量在哪个环节起作用
下面这张图展示了 mnemon recall 的完整流水线:查询先被嵌入为 768 维向量,随后与关键词、时间、实体三路信号并行进行多信号锚点选择,再经 RRF 融合、Beam Search 图遍历与加权重排序,最终输出结果。
配置参考:六个环境变量完整清单
除了零配置的默认路径,Mnemon 还通过环境变量暴露了完整的可调项(客户端解析逻辑见 internal/memory/embed/ollama.go):
| 环境变量 | 默认值 | 说明 |
|---|---|---|
MNEMON_EMBED_ENDPOINT | http://localhost:11434 | 嵌入 API 端点 |
MNEMON_EMBED_MODEL | nomic-embed-text | 嵌入模型 |
MNEMON_EMBED_PROTOCOL | 自动检测 | ollama 或 openai;端点以 /v1 结尾自动识别为 openai |
MNEMON_EMBED_API_KEY | 无 | OpenAI 兼容服务的 Bearer 令牌(本地 Ollama 无需) |
MNEMON_EMBED_KEEP_ALIVE | 30m | Ollama 在请求后保持模型加载的时长 |
MNEMON_EMBED_DIMENSIONS | 模型原生维度 | 向量维度截断,如 Matryoshka 模型可设 256 |
📌 一个贴心的细节:默认 keep_alive 被设为 30 分钟而非 Ollama 自带的 5 分钟——避免大型嵌入模型在 Agent 两轮对话之间被卸载,冷加载会让下一次 recall 白白多出几秒延迟。
兼容 OpenAI 协议:不止 Ollama
Mnemon 的嵌入客户端同时实现了 OpenAI 兼容协议(/v1/embeddings 路由 + Bearer 认证),意味着 oMLX、llama.cpp server、vLLM、LM Studio 等本地推理服务都可以直接接入:
export MNEMON_EMBED_ENDPOINT=http://127.0.0.1:18000/v1
export MNEMON_EMBED_MODEL=bge-m3-mlx-8bit
只要端点 URL 以 /v1 结尾,协议会被自动识别,无需显式指定 MNEMON_EMBED_PROTOCOL。对本地免密钥服务,MNEMON_EMBED_API_KEY 也可以完全省略。
向量如何塑造记忆图谱
启用嵌入后,Mnemon 在写入记忆时会自动计算余弦相似度并建立语义边(semantic edge):相似度 ≥ 0.50 自动建边,0.40–0.80 区间还会触发 LLM 复核。向量以 float32 小端格式序列化存储(实现见 internal/memory/embed/vector.go),磁盘开销很小。
存量记忆回填:一条命令补齐向量
如果你是在使用 Mnemon 一段时间后才配置嵌入服务,已有洞察并没有向量。此时一条命令即可全部回填:
mnemon embed --all
它会为所有未嵌入的洞察生成向量,并自动创建语义边,前后都可以用 mnemon embed --status 对比覆盖率。单个洞察也可以用 mnemon embed <id> 补嵌。
小结
Mnemon 的 Embedding 设计体现了"渐进增强"的思路:
- 零配置可用:无嵌入服务时核心功能完整,权重自动重分配
- 零成本增强:Ollama 本地模型免 API Key,拉取即生效
- 协议双兼容:Ollama 与 OpenAI 兼容协议自动识别
- 存量可回填:
mnemon embed --all一条命令补齐历史记忆
更多细节可查阅官方文档 docs/USAGE.md 的 "Embedding Support (Optional)" 章节,以及算法层面的说明 docs/development/memory-algorithm-performance.md。
【免费下载链接】mnemon
LLM-supervised persistent memory for AI agents — graph-based recall, cross-session knowledge, single binary. Works with DeepSeek Harness, Claude Code, OpenClaw, and any agent runtime.
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考






