关于 Memo
Memo 是面向编码 Agent 的本地优先持久记忆系统,支持离线语义和关键词检索。它以 Markdown 文件为事实来源,并结合历史查询、矛盾处理和定期维护;安装程序可通过 MCP 配置受支持的 Agent。
主要功能
- 01离线语义与 BM25 混合检索
- 02以 Markdown 存储记忆并用 SQLite 建索引
- 03历史查询与变更对比
- 04检测并处理相互矛盾的记忆
- 05多阶段自动记忆维护
- 06可配置工具集的 MCP 配置档
适用场景
- 01在不同编码 Agent 会话间延续项目决策
- 02按含义或关键词搜索已保存上下文
- 03回顾决策随时间的变化
- 04查找并处理过时或矛盾的信息
MCP 相关
Memo 通过 MCP 将编码 Agent 接入记忆系统,安装程序会配置检测到的客户端。MCP 配置档可控制公开的工具,并以较小的默认工具集减少模式上下文。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
memo
你的编码 Agent 每次会话开始时都像失忆了一样。memo 可以解决这个问题——所有数据 100% 留在你的设备上。
为 Claude Code、Codex、Cursor、Cline、Devin 和 OpenCode 提供持久、可搜索的记忆。无需云服务、API 密钥、Ollama,也无需运行向量数据库。而且它消耗的令牌更少,而不是更多。

安装
curl -fsSL https://raw.githubusercontent.com/jagoff/memo/v4.16.0/install.sh | bash
更喜欢使用包管理器?uv tool install mlx-memo · pipx install mlx-memo · brew tap jagoff/memo && brew install mlx-memo
然后:
memo doctor # self-check
memo save 'we use Postgres, not Mongo' # save a decision
memo search 'what database did we pick?' # search by meaning
就这样。你的 Agent 会自动通过 MCP 使用它——安装程序会配置它找到的所有客户端。
要在另一台 Mac 上安装,或让 Agent 代为设置?
新 Mac:
curl -fsSL https://raw.githubusercontent.com/jagoff/memo/v4.16.0/install.sh | bash
memo sync bootstrap [email protected]:yourname/memo-sync.git
由 Agent 管理设置:
curl -fsSL https://raw.githubusercontent.com/jagoff/memo/v4.16.0/install.sh | bash
memo doctor --strict-runtime
在 Linux 上使用,或想先了解一下?
docker run --rm ghcr.io/jagoff/memo:latest memo doctor
为什么它能帮你省钱
大多数记忆服务都会增加上下文。memo 的设计目标是减少上下文。
| 配置 | 工具数 | 架构令牌数 |
|---|---|---|
agent(默认) | 43 | ~9.7k |
core / slim | 60 | ~13.2k |
full / default | 165 | ~30.6k |
默认的 MCP 工具集包含 43 个工具,而不是 165 个——工具数减少 74%,架构上下文约减少 68%:43 个工具 / ~9.7k 架构令牌,而完整工具集有 165 个工具 / ~30.6k 令牌。这是每个客户端在每次会话中都要付出的额外开销。
环境式回忆会在模型作答前注入一条相关记忆。随附的 Claude Code 钩子会将注入内容限制在约 160 个令牌以内。memo roi 会报告实际的依据引用次数和重新询问次数——此前显示的估算节省量已在 4.14.0 中移除,因为将这些次数乘以硬编码常量,并不能得出 memo 有依据支持的节省声明。如需测量实际节省量,memo tokens 会通过上下文压缩代理读取服务提供商自己的用量计数器。
memo roi # value from grounded recalls and avoided re-asks
memo tokens # usage-savings ledger
三项独有功能
🕰️ 时间机器——查询过去某一时刻的知识状态
memo as-of ask "what was the deploy strategy?" --date 2026-02-01
memo diff --from 2026-01-01 --to 2026-03-01
通过反向重放 history.db,完整还原历史状态。当你想知道过去的自己为什么做出某个决定,而不只是想知道当时决定了什么时,这项功能非常有用。
⚡ 矛盾雷达——能察觉你改变主意的记忆
memo contradict scan # find conflicting facts corpus-wide
memo contradict triage # resolve: fuse / newer-wins / dismiss
当你更改某项决定时,memo 会标记现已过时的版本,让 Agent 不再重新提出你已经否决的内容。
🔮 梦境——你睡觉时,它会自行优化
memo dream run
包含 7 个阶段的夜间工作流:盘点 → 挖掘信号 → 解决冲突 → 清除过时内容 → 综合跨集群见解 → 优化 → 预热排名前 100 的查询嵌入,确保明天的回忆耗时低于 200 毫秒。每次运行都会生成一份可供审计的记录。无需人工干预。
工作原理
混合检索。 向量检索分支(Apple Silicon 上使用 MLX,CPU 上使用 sentence-transformers)和 BM25 分支(FTS5,针对西班牙语进行变音符号折叠)并行运行,通过 Reciprocal Rank Fusion 融合,然后可选择使用 MLX 交叉编码器重新排序。
Markdown 是事实来源。 每条记忆都是纯 .md 文件,可供阅读、grep 和版本控制。SQLite 是派生索引,可随时从这些文件重建——在 Obsidian 中手动编辑后,下次运行 memo reindex 时,你的编辑内容就会生效。所有内容都不会被锁在你无法打开的数据库里。
提示词和记忆都留在你的设备上。 嵌入器、重新排序器和 LLM 都在进程内运行。没有遥测。只有当你将 memo sync 指向自己拥有的 git 远程仓库时,记忆才会传输。正常启动完全离线;远程更新检查和自动更新需要明确选择启用。→ 隐私与网络策略
此外还包括:跨 Agent 的 memo resume(从任何 Agent 重新打开任何会话)、跨 Mac 的 git 同步、可选包含 codegraph 符号边的知识图谱、加密秘密存储、OCR/音频导入、证据包、结果学习、签名联邦,以及基于记忆的本地聊天界面(memo chat serve)。→ 完整功能参考
对比
根据各项目自己的文档,于 2026 年 7 月核实。欢迎指正——提交 issue,我会修正表格。
| memo | mem0 | letta | cognee | basic-memory | cipher | |
|---|---|---|---|---|---|---|
| 100% 本地运行,无云 API | ✅ | ⚠️ | ⚠️ | ⚠️ | ✅ | ⚠️ |
| 时间机器(回退到任意日期) | ✅ | ❌ | ⚠️ | ❌ | ⚠️ | ⚠️ |
| 矛盾检测与解决 | ✅ | ⚠️ | ⚠️ | ❌ | ❌ | ❌ |
| 夜间自动维护 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 节省 Token 的 MCP 配置 | ✅ | ❌ | ❌ | ⚠️ | ✅ | ❌ |
| 以 Markdown / Obsidian 为事实来源 | ✅ | ❌ | ⚠️ | ❌ | ✅ | ❌ |
✅ 一等支持 · ⚠️ 部分支持、需配置启用或需额外安装 · ❌ 不支持
最接近的对比项目是 basic-memory(本地优先 + Obsidian + MCP——理念相同)和 cipher(面向编码 Agent 的记忆工具)。
系统要求
| 支持情况 | |
|---|---|
| macOS、Apple Silicon(M1–M4) | 完整支持 — MLX 嵌入器 + 重新排序器 + ask/synthesize/dream |
| Linux / Ubuntu | 独立 CPU 后端 — 搜索、回忆、保存。pipx install "mlx-memo[cpu]" · docs/ubuntu.md |
| Intel Mac | 不支持 — 当前 PyTorch 版本未为此平台提供 Python 3.13 wheel |
| Docker | 跨平台,CPU 后端 · docs/docker.md |
Python ≥ 3.13(如果你尚未安装,安装程序会通过 uv 处理)。首次安装会下载约 8 GB 的模型,耗时 5–15 分钟。可选:Obsidian 库——如果没有,memo 会使用 ~/Documents/memo/。
文档
| 安装详情、安装程序选项、新 Mac 迁移 | reference.md › 安装 |
| 各客户端的 MCP 设置(Claude Desktop、Cursor、Cline、Continue) | reference.md › MCP 设置 |
| 环境式回忆、捕获与调优 | reference.md › 环境式记忆 |
完整 CLI 参考(145 条命令)+ memo tui | reference.md › CLI |
所有 MEMO_* 标志和模型配置 | reference.md › 配置 |
| 架构与设计说明 | reference.md › 设计 |
| 隐私与网络策略 | PRIVACY.md |
全部 145 条顶层 CLI 命令
完整命令清单(保留在此处,以便 CI 检测 CLI 与文档是否存在偏差)
核心: save search ask get edit rename delete list
回忆与钩子: recall recall-hook context briefing continuity prewarm capture-tick capture-stop interject ask-gaps guard digest
会话与历史记录: history as-of diff record-history session chat-session resume reflect mine-history episodes chronicle
维护: reindex maintain review dream consolidate synthesize dedupe cross-dedup retier contradict coordinate terminal invalidate temporal compress-context ops
分析与质量: health stats doctor journey-check lint drift analytics eval roi tokens token-savings usefulness gaps outcome profile confidence graduation hype definitive evidence
知识图谱: graph entities entity extract-entities links version related
高级搜索: embed rerank contextual retrieve context-pack chat chat-ask repo
导入 / 导出 / 同步: import export backup restore sync ingest federation
可视化: tui dashboard map logs hook-log
设置与配置: init setup config install-mcp install-watcher uninstall-watcher install-slash install-statusline install-recall-hook install-shell-wrapper install-shims startup-banner migrate migrate-vault migrate-independence update upgrade self-update watch release onboard
守护进程: daemons recall-daemon ingest-daemon maint-daemon embed-daemon idle-daemon
其他: backend-native collaborative events feedback query mandate drift sleep-cycle operational ocr-image provenance secret verbatim mcp-command codex-badge debug-recall http-api proxy mine-git token-gate fix undo code-facts code-nudge code-health
参与贡献
git clone https://github.com/jagoff/memo && cd memo
uv pip install -e '.[dev]'
欢迎提交问题和 PR — 请参阅 CONTRIBUTING.md。如果 memo 对你有帮助,点一个 ⭐ 就能切实帮助其他人发现它。
采用 MIT 许可证。基于 Apple MLX、sqlite-vec 和 codegraph 构建。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
