hello
发布于 2026-06-19 / 7 阅读
0
0

Claude Code、Codex 来回切换,如何让它们共享项目记忆?

现在 AI 编程工具很多,我反而越来越不想把项目历史锁在某一个工具里。

有时 Claude Code 更适合做长时间的代码分析,有时想换 Codex 处理任务。问题是工具一换,记忆也断了:项目为什么这么设计、哪些方案试过失败、当前任务做到哪里,都要重新解释。

最简单的解决方式,是把关键信息写进 AGENTS.md 或项目文档。但如果你希望会话结束时自动整理进度,并在另一个 Agent 启动时收到交接,就需要一个独立于工具的记忆层。

开源项目 ai-memory 做的就是这件事:

Claude Code 负责这一班,Codex 接下一班;项目 Wiki 和交接记录留在中间。

它怎么让两个 Agent 共享记忆?

ai-memory 主要靠两组能力:

  • Hooks:记录提示、工具调用和会话结束等事件;
  • MCP:让 Agent 查询、写入和接收记忆。

每次会话结束后,系统会把执行过程整理成项目 Wiki 和交接信息。另一个支持 Hooks 的 Agent 从同一项目目录启动时,可以获得上次会话的摘要、未完成事项和下一步建议。

上层记忆使用 Markdown 保存,并通过 Git 记录版本;底层服务保存 Session、观察记录和搜索索引。你可以直接搜索,也可以打开本地 Web 页面查看。

这和“把全部聊天记录复制给下一个模型”不同。它更像交接班:保留关键状态,需要细节时再查原始记录。

安装前先知道这些

这套方案不是一个浏览器插件,需要:

  • 本机安装 Docker,或者使用项目提供的原生二进制;
  • 在本地运行 ai-memory 服务;
  • 分别为 Claude Code 和 Codex 安装 MCP 与 Hooks;
  • 确保两个工具从同一个 Git 项目目录工作。

本文使用官方 README 提供的 Docker 路线,Linux 和 macOS 都能使用。macOS 用户如果不想用容器,官方更推荐原生二进制,具体命令应以项目 Releases 和 docs/macos.md 为准。

以下命令会修改用户目录下的 Agent 配置。请先备份配置,并在测试项目中操作。

第一步:安装命令行包装器

先下载 ai-memory 提供的 CLI 包装脚本:

mkdir -p ~/.local/bin
curl -fsSL https://raw.githubusercontent.com/akitaonrails/ai-memory/main/bin/ai-memory \
  -o ~/.local/bin/ai-memory
chmod +x ~/.local/bin/ai-memory

如果执行 which ai-memory 找不到命令,把 ~/.local/bin 加入 PATH

export PATH="$HOME/.local/bin:$PATH"

正式长期使用,可以把这一行加入 ~/.zshrc~/.bashrc

第二步:启动本地记忆服务

官方示例默认把服务绑定到 127.0.0.1:49374,只有本机可以访问:

docker run -d --name ai-memory \
  --restart unless-stopped \
  -p 127.0.0.1:49374:49374 \
  -v ai-memory-data:/data \
  akitaonrails/ai-memory:latest

这个最小配置不需要 LLM API Key,仍然可以使用 FTS5 搜索和规则摘要。如果希望自动把会话归纳成更连贯的 Wiki,可以再按官方文档配置 LLM 和 Embedding Provider。

我建议第一次先用无 LLM 模式跑通。这样更容易确认哪些数据留在本机、哪些功能确实需要外部模型。

启动后检查状态:

ai-memory status

第三步:接入 Claude Code

给 Claude Code 添加 MCP 和生命周期 Hooks:

ai-memory install-mcp --client claude-code --apply
ai-memory install-hooks --agent claude-code --apply

这两个命令是幂等的,重复运行会更新 ai-memory 自己的配置项,并保留其他 MCP 与 Hook 设置。官方说明修改前会在配置旁创建带时间戳的备份。

如果想先看它准备修改什么,去掉 --apply,让命令只打印配置片段。

第四步:接入 Codex

再为 Codex 安装对应配置:

ai-memory install-mcp --client codex --apply
ai-memory install-hooks --agent codex --apply

建议从启动 Agent 的同一个终端执行这些命令,避免配置写进了另一个环境,尤其是在 WSL、远程 SSH 或多套 Shell 配置并存时。

由于 Agent 客户端和 ai-memory 都在快速迭代,如果命令提示不支持某个 client/agent 名称,应先运行帮助命令并以当前版本文档为准:

ai-memory install-mcp --help
ai-memory install-hooks --help

第五步:做一次真实交接

准备一个测试仓库,在 Claude Code 里完成一个小任务,例如:

  1. 阅读项目结构;
  2. 记录一个架构约束;
  3. 修改一个非关键文件;
  4. 留下一个未完成问题;
  5. 正常结束会话。

然后在同一目录打开 Codex,检查它是否获得交接信息。也可以在终端查看状态和搜索:

ai-memory status
ai-memory search "架构约束"

本地 Wiki 页面默认可以通过下面的地址访问:

http://127.0.0.1:49374/web

重点不要只看“有没有记录”,而要检查三件事:

  • 项目是否识别正确;
  • 未完成事项是否准确;
  • 有没有把临时猜测错误地写成长期规则。

老项目怎么补上历史?

如果项目在安装 ai-memory 前已经开发了很久,可以在项目目录运行:

ai-memory bootstrap

它会读取 Git 历史、README、docs/、模块信息和项目规则,生成初始 Wiki。这个过程可能读取大量仓库内容;敏感项目在启用外部 LLM Provider 前,应先确认数据发送范围。

哪些内容应该长期保存?

我建议长期记忆只保留高价值信息:

  • 已确认的架构决策;
  • 项目固定命令和验证方式;
  • 明确的禁止事项;
  • 已经失败并确认原因的方案;
  • 当前任务的未完成项和风险。

下面这些内容不适合无脑长期保存:

  • API Key、密码和客户敏感信息;
  • 未经验证的模型猜测;
  • 一次性的错误日志全文;
  • 已经失效的临时任务状态。

ai-memory 支持固定页面、查看 checkpoints、恢复单页和清理项目。记忆系统不是装完就不管,还需要定期检查和整理。

不想部署服务,还有一个轻量方案

如果你只想让 Claude Code 和 Codex 共享最关键的背景,其实不一定要上完整系统。可以在仓库里维护三份普通文件:

AGENTS.md                # 长期规则和验证命令
docs/decisions.md        # 架构决策与原因
docs/handoff.md          # 当前进度、问题和下一步

每次结束任务前,让当前 Agent 更新 handoff.md;下一个 Agent 开始时先读这三份文件。

这个方案没有自动捕获和搜索,但透明、简单、零服务依赖。对于个人项目,它可能已经够用。

需要注意什么?

第一,Hooks 会记录提示和工具事件。代码、路径、日志中可能带有敏感信息,使用前应检查存储目录、外部 Provider 和备份策略。

第二,共享记忆会共享错误。不要让未经验证的总结自动升级成永久项目规则,关键页面最好人工审核。

第三,不要把交接摘要当作事实来源。涉及重要决策时,应沿着记录回看代码、测试或原始文档。

第四,先在测试项目验证卸载方式。确认不再使用后,再按照官方文档移除 MCP、Hooks、容器和数据卷,避免配置残留。

小结

Claude Code 和 Codex 共享记忆,真正要解决的不是“把聊天记录同步过去”,而是把项目状态变成独立资产。

ai-memory 提供了一套自动化程度较高的方案:Hooks 捕获过程,MCP 提供读写,Markdown Wiki 保存长期知识,交接信息连接不同 Agent。

如果你只偶尔切换工具,三份项目文件可能更合适;如果你每天都在多个 Agent 之间接力,而且项目周期很长,独立记忆层会开始体现价值。

工具可以换,项目为什么这样做、现在做到哪里,不应该跟着工具一起消失。

项目地址

GitHub:
https://github.com/akitaonrails/ai-memory

安装文档:
https://github.com/akitaonrails/ai-memory/blob/main/docs/install.md

macOS 文档:
https://github.com/akitaonrails/ai-memory/blob/main/docs/macos.md


评论