M3 Memory Skill:让 AI 编码工具拥有持久记忆,在会话间积累项目知识
M3 Memory Skill:让 AI 编码工具拥有持久记忆,在会话间积累项目知识
功能与原则
M3 Memory 是一个本地优先的 AI Agent 记忆层框架,解决的核心问题是:你在 Claude Code 里花了半小时解释项目架构,下一次开新会话或切换到 Cursor,一切都得重来。M3 通过 MCP(Model Context Protocol)为 Agent 提供持久化记忆存储,让事实、决策、偏好跨会话积累,而不是每次都归零。它不是一个简单的键值存储——底层是分布式系统思路设计的:支持多 Agent 写入、矛盾检测、双时序知识库、混合搜索(FTS5 + 向量 + MMR),且所有数据留在本地,不上云。
认可度
- GitHub Star:约 25★(截至 2026-09-24),仓库活跃更新(2 小时前),OpenClaw 插件市场显示 24★,属于新晋增长型
- PyPI 月下载量:活跃(FreshCrate 显示 v5.1.1 为最新稳定版)
- LongMemEval-S 基准:99.2% retrieval @ k=10,100% @ k=20(无模型评判的纯记忆层指标)
- 平台支持:Claude Code、Cursor、Gemini CLI、Aider、Google Antigravity、OpenCode、Hermes Agent、OpenClaw 等 8+ 主流 Agent
- 作者背景:skynetcmd(GitHub 个人开发者),专注本地优先 AI Agent 基础设施工具链
链接
GitHub:https://github.com/skynetcmd/m3-memory
原作者
skynetcmd(GitHub: skynetcmd)—— 专注本地优先 AI Agent 基础设施的独立开发者,m3-memory 是其核心项目,同时维护多个 Agent 记忆与上下文优化工具。
介绍
M3 Memory 的设计哲学是「记忆改善不需要模型参与」。写入记忆很快(走热路径),但后台的认知循环(Cognitive Loop)会在写入完成后异步做嵌入、分类和实体抽取,逐步构建知识图谱。矛盾检测在写入路径上用余弦相似度做确定性检测,不依赖模型;知识图谱的 Reflector Pass 会在 enrichment 阶段写入 supersedes 边,主动追踪过时被替代的信息。
curation(整理)也是自动化的:near-duplicate 检测、衰减与裁剪都是规则函数,直接发 SQL,不走模型。模型只负责真正需要主观判断的部分(”这条值得保留吗?”),然后由 m3 执行计划——一次往返而非 N 次,也不会因为模型预算耗尽而卡在循环里。
安装只需两行命令,不需要账户、API Key,也不需要调用外部嵌入服务(本地 embedder 直接装在机器上,复用一个共享的本地模型实例)。空气隔绝环境也能装。
特点
- 105 个 MCP 工具:写入、搜索、链接、图谱、验证、同步、导出、实体关系等,覆盖完整记忆生命周期
- 混合检索:FTS5 全文 + BGE-M3 向量 + MMR(最大边际相关),99.2% LongMemEval-S 得分
- 本地 embedder:内置共享本地嵌入服务器,不需要 LM Studio / Ollama / GPU,CPU 即可运行
- 矛盾感知:写入时确定性检测 + 知识图谱 supersedes 边 + curation plan 三路矛盾追踪
- 跨 Agent 记忆共享:同一台机器上 Claude Code 和 Cursor 共享同一份记忆 store,切换工具不丢上下文
- GDPR + FIPS 140-3 就绪:满足数据合规要求,适合企业和政府场景
- 双时序知识库:记录每条记忆的写入时间和有效时间窗口,支持时间敏感查询
使用方法
安装(Linux/macOS):
curl -fsSL https://raw.githubusercontent.com/skynetcmd/m3-memory/main/install.sh | bash
m3 setup # 自动检测 Agent、配置 MCP、启动本地 embedder
m3 doctor # 验证健康状态
Claude Code 插件模式:
/plugin marketplace add skynetcmd/m3-memory
/plugin install m3@skynetcmd
获得 15 个 /m3:* 斜杠命令(/m3:health、/m3:search、/m3:save 等)以及两个 curator 子 Agent。
写入一条记忆:
m3 memory memory_write --type decision --title "auth-jwt-algorithm"
--content "The auth service uses RS256 JWTs. HS256 was rejected because we need asymmetric verification."
检索记忆:
m3 memory memory_search --query "JWT algorithm decision"
使用场景与人群
适用场景:长期项目维护(需要跨会话记忆项目决策)、多 Agent 协作开发(多个 Agent 共享同一知识库)、需要空气隔绝或数据合规的企业场景、频繁切换 Agent 工具的开发者。目标用户:Claude Code / Cursor 重度用户、AI Agent 开发者、需要持久化记忆的企业团队。
输入与输出案例
输入(在 Claude Code 中):
“Save this decision to memory: We chose PostgreSQL over MongoDB because we need ACID compliance for financial transactions”
输出:
Memory written successfully.
ID: mem_a1b2c3d4
Type: decision
Title: “database-choice-postgresql”
Stored in local SQLite DB at ~/.m3/memory.db
新会话中检索:
“What database decisions have we made for this project?”
输出:
Found 1 memory:
– database-choice-postgresql (decision, 2026-09-20)
“We chose PostgreSQL over MongoDB because we need ACID compliance for financial transactions”
评论区
登录后可评论。