Skip to content

Latest commit

 

History

History
244 lines (172 loc) · 11.5 KB

File metadata and controls

244 lines (172 loc) · 11.5 KB

Mnemon Logo

Mnemon

English | 中文

LLM 智能体的持久记忆系统 — LLM 监督式、钩子集成、四图架构。

Go 1.24+ CI Go Report Card License: MIT


LLM 智能体在会话之间会遗忘一切。上下文压缩丢失关键决策,跨会话知识消失,长对话将早期信息推出窗口。

Mnemon 为你的 LLM 提供持久的跨会话记忆 — 四图知识存储、意图感知检索、重要度衰减、自动去重。单一二进制,零 API 密钥,一条命令完成部署。

Claude Max / Pro 订阅用户? Mnemon 完全通过你现有的订阅运作——不需要额外的 API 密钥。你的 LLM 订阅本身就是智能层。两条命令即可完成。

为什么选择 Mnemon?

多数记忆工具在管线内嵌入自己的 LLM。Mnemon 采用不同路线:你的宿主 LLM 就是监督者。 二进制处理确定性计算(存储、图索引、搜索、衰减);LLM 做判断(记什么、怎么关联、何时遗忘)。没有中间人,没有额外推理开销。

模式 LLM 角色 代表项目
LLM-Embedded 管线内部的执行者 Mem0, Letta
File Injection 无 — 会话启动时读取文件 Claude Code Memory
MCP Server 通过 MCP 协议提供工具 claude-mem
LLM-Supervised 独立二进制的外部监督者 Mnemon

Mnemon 同时填补了协议栈中的空白。MCP 标准化了 LLM 如何发现和调用工具,ODBC/JDBC 标准化了应用如何访问数据库,但 LLM 以记忆语义与数据库交互——这一层尚无协议。Mnemon 的三个原语——rememberlinkrecall——构成一个意图原生协议:命令名称映射到 LLM 的认知词汇(remember 而非 INSERT,recall 而非 SELECT),输出是带有信号透明度的结构化 JSON,而非原始数据库行。

LLM 监督式架构 — 三种模式对比,及 Mnemon 实现细节:钩子、大脑/器官分离、Sub-agent 委派
LLM 监督式模式:钩子驱动生命周期,宿主 LLM 做判断,二进制处理确定性计算。

记忆具有复利效应 — 积累越久,价值越大。LLM 引擎不断迭代,技能文件几乎零成本编写,但记忆是随用户一起增长的私有资产。它是智能体生态中唯一值得深度投入的组件。

知识图谱 — 87 条洞察通过时序、实体、语义和因果边连接
Mnemon 构建的真实知识图谱 — 87 条洞察,2150 条边,横跨四种图类型。

详见 设计与架构

快速开始

安装

Homebrew(macOS / Linux):

brew install mnemon-dev/tap/mnemon

Go install

go install github.com/mnemon-dev/mnemon@latest

从源码构建

git clone https://github.com/mnemon-dev/mnemon.git && cd mnemon
make install

验证安装

mnemon --version

Claude Code

mnemon setup

mnemon setup 自动检测 Claude Code,交互式部署技能文件、钩子和行为引导。启动新会话 — 记忆自动运作。

mnemon setup --target openclaw --yes

一条命令将技能文件、钩子、插件和行为引导部署到 ~/.openclaw/。重启 OpenClaw 网关即可激活。

NanoClaw 在 Linux 容器内运行智能体。使用 /add-mnemon 技能集成:

  1. 在宿主机安装 mnemon(见上方)
  2. 在 NanoClaw 项目中运行 /add-mnemon — Claude Code 将修改 Dockerfile、添加容器技能、配置卷挂载
  3. 每个 WhatsApp 群组获得独立的记忆存储,可选全局共享记忆(只读)

技能文件位于 NanoClaw 仓库的 .claude/skills/add-mnemon/ 目录。

卸载

mnemon setup --eject

工作原理

设置完成后,记忆透明运作 — 你照常使用 LLM CLI。Mnemon 通过 Claude Code 的钩子系统集成,在关键生命周期节点注入记忆操作:

会话启动
    │
    ▼
  Prime(SessionStart)─── prime.sh ──→ 加载 guide.md(记忆执行手册)
    │
    ▼
  用户发送消息
    │
    ▼
  Remind(UserPromptSubmit)─── user_prompt.sh ──→ 提醒 agent 进行 recall 和 remember
    │
    ▼
  LLM 生成回复(遵循技能文件 + guide.md 规则)
    │
    ▼
  Nudge(Stop)─── stop.sh ──→ 提醒 agent 进行 remember
    │
    ▼
  (上下文压缩时)
  Compact(PreCompact)─── compact.sh ──→ 提取关键洞察进行 remember

四个钩子驱动记忆生命周期。Prime 加载行为引导 — 详细的 recall、remember、sub-agent 委派执行手册。Remind 在工作开始前提醒 agent 评估是否需要 recall 和 remember。Nudge 在工作结束后提醒 agent 考虑 remember。Compact 在上下文压缩前指示 agent 提取并保存关键洞察。技能文件教会 agent 命令语法。行为引导~/.mnemon/prompt/guide.md)定义 recall、remember、委派的详细规则。

你不需要自己运行 mnemon 命令。agent 会自动执行 — 由钩子驱动,受技能文件和行为引导指引。

特性

  • 零用户操作 — 安装一次,记忆通过钩子在后台运行
  • LLM 监督式 — 宿主 LLM 主动决定记什么、更新什么、遗忘什么;无内嵌 LLM,无 API 密钥
  • 钩子集成 — 四个生命周期钩子:Prime(加载引导)、Remind(recall 和 remember)、Nudge(remember)、Compact(压缩前保存)
  • 四图架构 — 时序、实体、因果、语义四种边,不仅仅是向量相似度
  • 意图原生协议 — 三个原语(rememberlinkrecall)映射到 LLM 的认知词汇而非数据库语法;结构化 JSON 输出,带信号透明度
  • 意图感知召回 — 图遍历 + 可选向量搜索(RRF 融合),所有查询默认启用
  • 内置去重remember 自动检测重复和冲突;跳过或自动替换
  • 保留度生命周期 — 重要性衰减、访问计数提升、免疫规则、垃圾回收
  • 可选嵌入向量 — 本地 Ollama 集成,支持混合向量+关键词搜索

愿景

所有本地 AI 智能体 — 跨会话、跨框架 — 共享一个活跃的记忆池。

  Claude Code ──┐
                │
  OpenClaw ─────┤
                │
  NanoClaw ─────┤
                ├──▶  ~/.mnemon  ◀── 共享记忆
  OpenCode ─────┤
                │
  Gemini CLI ───┘

基础已就绪:一个 ~/.mnemon 数据库,任何 agent 都可以读写。Claude Code 的钩子集成是参考实现;OpenClaw 使用插件方式集成;NanoClaw 通过容器技能和卷挂载集成。同样的模式可以复制到任何支持事件钩子或系统提示的 LLM CLI。

更长远的方向是记忆网关:协议层与存储引擎解耦。当前 SQLite 后端是第一个适配器;协议面(remember / link / recall)可运行在 PostgreSQL、Neo4j 或任何图数据库之上。Agent 侧优化(何时召回、记什么)与存储侧优化(索引、图算法)独立演进。详见未来方向

常见问题

不同会话共享记忆吗? 是的。默认情况下,所有会话使用同一个 default 记忆体 — 一个会话中记住的决策在所有未来会话中可用。

能否按项目或 agent 隔离记忆? 可以。使用命名记忆体(store)隔离数据:

mnemon store create work        # 创建新记忆体
mnemon store set work           # 设为默认
MNEMON_STORE=work mnemon recall "query"  # 或按进程使用环境变量

不同 agent/进程可通过 MNEMON_STORE 环境变量使用不同的记忆体 — 无全局状态竞争。

本地模式还是全局模式? mnemon setup 默认本地(项目级 .claude/),适合大多数用户。全局mnemon setup --global,安装到 ~/.claude/)在所有项目中激活 mnemon — 如果想让其他框架(如 OpenClaw)通过 Claude Code CLI 共享记忆很方便,但可能增加维护开销。

如何自定义行为? 编辑 ~/.mnemon/prompt/guide.md。该文件控制 agent 何时召回记忆以及什么值得记住。技能文件(SKILL.md)由 setup 自动部署,通常无需手动编辑。

什么是 Sub-agent 委派? 记忆写入不在主对话中进行。宿主 LLM(如 Opus)决定记什么,然后委派实际的 mnemon remember 执行给轻量 sub-agent(如 Sonnet)。这节省 token 并保持记忆操作不污染主上下文。

配置

环境变量 默认值 说明
MNEMON_DATA_DIR ~/.mnemon 基础数据目录
MNEMON_STORE (active 文件或 default 命名记忆体,用于数据隔离
MNEMON_EMBED_ENDPOINT http://localhost:11434 Ollama API 端点
MNEMON_EMBED_MODEL nomic-embed-text 嵌入模型名称

也可在命令上使用 --data-dir--store 标志覆盖。

开发

make build          # 构建二进制
make install        # 构建 + 安装到 $GOBIN
make test           # 运行 E2E 测试套件
mnemon setup        # 交互式设置(检测环境 + 部署钩子/技能/引导)
mnemon setup --eject  # 移除所有集成
make help           # 显示所有目标

依赖:Go 1.24+、modernc.org/sqlitespf13/cobragoogle/uuid

可选Ollama + nomic-embed-text 嵌入支持

文档

  • 设计与架构 — 核心概念、算法、集成设计
  • 用法与参考 — CLI 命令、嵌入向量支持、架构概览
  • 架构图 — 系统架构、记忆/召回流程、四图模型、生命周期管理

参考文献

Mnemon 取用了一篇论文的范式和另一篇论文的方法论,并基于图记忆与 LLM 注意力同构这一结构洞察。详见理论基础

  • RLM — Zhang, Kraska & Khattab. Recursive Language Models. 2025. 建立范式:LLM 作为外部环境的 orchestrator 比直接处理数据更有效。
  • MAGMA — Zou et al. A Multi-Graph based Agentic Memory Architecture. 2025. 提供方法论:四图模型(temporal、entity、causal、semantic)+ intent-adaptive retrieval。
  • Graph-LLM 结构洞察 — Joshi & Zhu. Building Powerful GNNs from Transformers. 2025;及图智能体记忆综述(Chang Yang et al., 2026)。证实 LLM 注意力机制在计算上等价于 GNN 操作——图记忆是结构性匹配,而非工程便利。

许可证

MIT