moorcheh-ai/memanto · 上手攻略
- 仓库:moorcheh-ai/memanto
- 链接:https://github.com/moorcheh-ai/memanto
- 分类:AI Agent 基础设施 / 记忆管理
- 作者:spark
- 更新:2026-09-12
是什么
Memanto 自定位为 "Memory Agent"——一个常驻在 agent 集群旁边的"随从 agent",替你的 Claude Code / Cursor / Codex / Cline / Goose / Copilot 等代理统一管理长期记忆。它不是普通向量库 SDK,而是一个独立进程:观察其它 agent 的对话流 → 抽取 durable 知识 → 合并去重 → 解决冲突 → 按策略遗忘 → 在 agent 行动前主动推送简报。所有"管理"动作由策略驱动,后台 cron 自动跑,不需要人工清理。
作者给出的核心定位:存储是档案柜,Memanto 是参谋长。底层向量库 / 文件系统 / 平台原生 memory 都只是 substrate,Memanto 跑在上面做"调度"。
解决什么问题
Agent 落地 6 个月后几乎都会撞同一类坑: 1. 不同 agent 之间互相打架——A 写了一件事,B 仍然记着相反的旧版本(last write wins silently)。 2. 偏好/决策随时间累积,recall 时噪音比信号多。 3. 平台原生 memory(Claude、Bedrock、Cursor)只在各自围墙内有效,跨框架不互通。 4. 过期/遗忘靠开发者"记得去 DELETE",事实上没人记得。 5. 出了问题回溯不到"这条信念是哪个 agent、什么时候、基于什么进入 fleet 的"——审计链断。
Memanto 把这五件事做成 first-class 行为:reconciliation、policy-driven forgetting、跨平台 OKF 互通、provenance + confidence、点时点回忆(--as-of)。
快速安装
# 1. 安装(PyPI 已有包,pyproject 锁定最低 Python 版本需查仓库 pyproject.toml)
pip install memanto
# 2. 首次启动,选部署模式
memanto
# 交互菜单:On-Prem(Docker + Ollama,无账号不出网)
# Cloud(免费 key)
# 3. 把现有 agent 接入 fleet
memanto connect claude-code
# 同理支持 cursor / codex / windsurf / cline / goose / copilot / antigravity / continue / opencode / roo / augment
# 4. 启动每日后台整理循环
memanto schedule enable
启动后 memanto ui 开本地 dashboard 浏览器查看整张 estate;memanto serve 起 REST API;memanto status 看环境/会话/已注册 agent 列表。
核心用法
写入与召回
# 写一条"决策"类型记忆
memanto remember "Auth migrated to JWT — session cookies deprecated" --type decision
# 写一条"偏好",带标签
memanto remember "Prefer Ruff over Black" --type preference --tags python,lint
# 召回(另一个 agent 也能 recall,因为 fleet 共享 estate)
memanto recall "how does auth work"
# 基于 estate 直接回答问题,不需要再调外部 LLM key
memanto answer "why did we drop session cookies?"
时间维度
# 点时点回忆:上周二大家认为 deployment policy 是什么?
memanto recall "deployment policy" --as-of 2026-08-05
# 增量回忆:v2.1 之后改了什么?
memanto recall "deployment policy" --changed-since v2.1
策略与遗忘
# 看内置策略档
memanto policy list-preset # conservative / balanced / aggressive
# dry-run 试跑,看会过期哪些
memanto policy apply --dry-run
# 真的应用
memanto policy apply-preset balanced # 会先把策略 + 匹配项全打出来再问确认
策略文件路径 ~/.memanto/policies/<agent>.yaml,两段结构:
retention:
context: 7d
event: 30d
preference: never # 用户偏好不过期
rules:
- name: pinned
match: {tags: [pinned]}
expire_after: never
- name: low-confidence-guesses
match: {provenance: [inferred], confidence_below: 0.5}
expire_after: 14d
purge_expired_after: never # 默认硬删关闭,过期只是标 [EXPIRED]
冲突、过期、审计
memanto conflicts # 列出当前矛盾
memanto memory expire mem-123 # 手工让一条过期
memanto memory restore mem-123 # 反悔,恢复
memanto daily-summary # 看一天 fleet 改了什么
过期后该 memory 仍可 recall(明确标 [EXPIRED]),--as-of 不受影响——"曾经相信什么"和"现在相信什么"是两个独立问题。
跨平台迁移(Open Knowledge Format)
# 导出成可读、可 diff、可 grep 的 Markdown bundle
memanto memory export --okf
# 从 Mem0 / Letta / Supermemory 迁入,反向也行
memanto migrate import mem0_dump.json
memanto migrate export --okf bundle/
OKF 是作者刻意开源的互通格式,明确欢迎"包括我们的竞争对手"实现。
13 种记忆类型
instruction / fact / decision / goal / commitment / preference / relationship / context / event / learning / observation / artifact / error——recall 时可按类型过滤,避免一个 undifferentiated blob。
典型适用场景
- 多 agent fleet:同时跑 Claude Code + Cursor + Codex,且希望它们共享决策/偏好(而不是各自占山头)。
- 长周期项目:6 个月以上维护的代码库,agent 需要"记住"为什么这么设计、踩过哪些坑。
- 审计合规场景:金融/医疗/政企内 agent,需要每条信念可回溯(provenance + timestamp + confidence)。
- 不想被 vendor lock-in:团队内部强调"数据是我们的",需要 OKF 这类纯文本互通格式做出口。
- On-prem 强约束:Docker + Ollama 全本地,无 outbound 调用,符合内网/数据不出域要求。
坑与注意
- ⚠️
pip install memanto前建议先看一眼仓库pyproject.toml锁的 Python 最低版本,避免系统 Python 太老装不上(README 没写具体版本号,本文未亲自 verify)。 - ⚠️
memanto首次启动会进交互菜单选 On-Prem / Cloud,自动化部署场景需要预先用memanto config backend设好,否则会卡在 TTY。 - ⚠️
memanto schedule enable启动的是每日 loop,cron 时刻默认写在哪里未在 README 给出——查~/.memanto/config.yaml。 - ⚠️
--as-of重建的是"那时被认为 true 的状态",但当时如果是带[EXPIRED]的旧 memory,也会一并召回——这是设计如此,但容易让新 agent 误以为是当前事实,记得配合--active用。 - ⚠️
memanto connect <client>是"挂上去"而非"覆盖",原本 Claude/Cursor 自带的 memory 不会自动清空,建议先用memanto migrate import把存量历史迁过来再接,避免两套并行。 - ⚠️ 策略
purge_expired_after: never是默认安全值;一旦打开 hard delete,过期记录会被真删且restore不回来。 - ⚠️ README 写 "1867 stars / 周增 +0",是 9-12 当时的抓取值,会随时间变;本文不锁数字。
与同类对比
| 维度 | Memanto | Mem0 | Letta | 平台原生 memory(Claude/Cursor) |
|---|---|---|---|---|
| 定位 | 跨 fleet 的记忆 agent | 单应用的 memory SDK | 单应用的 stateful agent 框架 | 单平台的 memory |
| 冲突处理 | supersede + 全部版本可查 | last write wins | 框架内手动管理 | 各平台自己一套 |
| 遗忘 | 一等公民,policy-driven | DELETE API | 框架内 API | 通常没有 |
| 跨平台 | OKF 互通(开放格式) | 私有 schema | 私有 schema | 不互通 |
| 部署 | 本地 Docker / 自托管 / Cloud | Cloud 为主 | 自托管 / Cloud | 平台 SaaS |
| License | MIT | 混合(社区版 + 商业) | Apache 2.0 | 平台条款 |
"Memanto vs 平台原生"一句:平台原生解决"持久化",Memanto 解决"管理"——你仍然可以把任意向量库当作 substrate,但调度层交给 Memanto。
一句话推荐结论
如果你已经/打算跑 ≥2 个 agent agent 框架并希望它们共享一套可审计、可遗忘、可导出的记忆,Memanto 是当下少有的"MIT + 开放格式 + 一等公民遗忘策略"组合,值得先
pip install memanto跑本地 On-Prem 模式试一周;只跑单 agent / 单框架、记忆量小的场景,先用平台原生即可,不必引入新组件。