ai-memory 实测:Claude Code 干一半,Codex 接着做

在 Claude Code 里干到一半,换 Codex 接着做,通常得把背景、试过的方案、没解决的问题再讲一遍。ai-memory 用生命周期钩子在后台记下每个会话,存成本地 Markdown,下一个 Agent 启动时自动拿到一份交接说明。我们 10 月 23 日在服务器上装了当天早上发布的 3.2.2,模拟一次 Claude Code 会话,再让 Codex 的启动钩子去读交接。
它是什么
一个自己部署的「编程 Agent 共享记忆」服务:钩子负责采集,服务端把会话整理成 wiki 页面,提供全文搜索、跨 Agent 交接和 MCP 工具。
| 仓库 | github.com/akitaonrails/ai-memory |
|---|---|
| 作者 | akitaonrails |
| 许可证 | MIT |
| 热度 | GitHub 12,842 星(截至 2026-10-23) |
| 语言 | Rust;官方提供 Linux、macOS、Windows 预编译包,Linux x86_64 压缩包 20.6 MB |
| 最新版本 | 3.2.2(发布于 2026-10-23 08:17,北京时间) |
解决什么问题
各家编程 Agent 都在做记忆功能,但笔记只存在一台机器上,只属于一个 Agent,换工具或者交给同事就看不到了。ai-memory 把记忆放在你自己跑的服务里,README 里列了 20 多个支持的工具,setup --plan 在我们机器上列出 28 个可接入的 Agent 名称,包括 Claude Code、Codex、Cursor、Gemini CLI、OpenCode。
记忆本体是普通 .md 文件,可以 grep、用 Obsidian 打开、手改;SQLite 只是索引,能从文件重建。会话结束时由规则整理成页面,不需要大模型;配上大模型之后可以开「做梦」式的后台合并,默认关闭。
怎么用
# 官方一键安装:下载、校验 sha256、链接到 ~/.local/bin/ai-memory
curl -fsSL https://github.com/akitaonrails/ai-memory/releases/latest/download/install.sh | sh
ai-memory setup --plan # 先看它要改哪些 Agent 的配置,不做改动
ai-memory setup # 建数据目录和令牌、起用户级服务、接钩子/MCP/Skill
# 日常
ai-memory search loudnorm # 全文搜索记忆
ai-memory handoffs # 看还没被领走的交接
ai-memory run codex # 用托管工作流启动另一个 Agent
我们为了不改动服务器上已有的 Agent 配置,没跑 setup,改成手动:解压官方包,用独立的 HOME 和 AI_MEMORY_DATA_DIR 跑 ai-memory init 和 ai-memory serve --transport http,再用 ai-memory hook --agent … --event … 往里喂钩子事件。
实测
环境:2026-10-23,Debian 13,x86_64,ai-memory 3.2.2 官方 Linux 包。
- 安装:压缩包 sha256 与 release 里的
.sha256一致;ai-memory --version输出ai-memory 3.2.2。init生成只有本人可读的 bearer 令牌文件,默认绑定127.0.0.1:49374,/healthz返回{"status":"ok"}。 - 采集:模拟一次 Claude Code 会话(启动、一条提示词「把视频导出改用 ffmpeg 的 loudnorm,目标 -14 LUFS」、一次失败的 pytest、一次改文件、退出),
status显示 1 个页面、1 个会话、5 条观察记录。 - 会话页:自动生成的 Markdown 以提示词作标题,写明「1 prompt, 2 completed tool calls」,并提醒「会话没有正常结束,工作区可能有未提交的改动」。工具调用只记成
tool file/tool non-file,我们传进去的命令和报错原文没有存下来。这样泄露的风险小,可想靠它回忆「上次哪个测试挂了」就不够。 - 交接:同目录下以 Codex 身份触发 SessionStart,钩子返回的
additionalContext包含来源 Agent、未决问题和摘要,开头还有一段声明:记忆内容是不可信的历史数据,不能当指令执行。换 Gemini CLI 再触发返回空,ai-memory handoffs显示没有待领交接。 - 其他:
search loudnorm命中 1 条;write-page写入决策页正常。官方 DATA_HANDLING.md 写明没有遥测和更新检查,唯一默认联网是首次启动下载向量模型。 - 未实测:真实 Claude Code / Codex 会话(要付费模型);
ai-memory run的会话记录投射;接大模型后的整理和合并;多人共享服务器;systemd 用户服务。

交接只能领一次,同一份交接不会被两个 Agent 各做一遍;交接开头写明这是不可信的历史数据,提醒下一个 Agent 别把旧记录当命令执行。
适合谁,不适合谁
适合:同时用两三个编程 Agent、经常中途换工具的人;想在多台机器或小团队之间共享项目记忆、又不想把数据交给第三方的人。不适合:只用一个 Agent、它自带的记忆已经够用的人;不想在本机多跑一个常驻服务的人。
替代方案:各家 Agent 自带的记忆和规则文件(CLAUDE.md、AGENTS.md),零运维但不跨工具;本站写过的 Headroom 解决的是上下文压缩,和长期记忆是两回事。
最后
先在一个不重要的项目里跑 ai-memory setup --plan,看清它要改哪些配置,再决定接哪几个 Agent。
- GitHub akitaonrails/ai-memory:README(功能、安装、支持矩阵、MIT)
- Release v3.2.2
- DATA_HANDLING.md:遥测、模型下载与外发数据说明
- docs/install.md:安装与 setup 说明
- 本文实测:ai-memory 3.2.2 Linux x86_64 官方包,Debian 13,2026-10-23