MCP 记忆体大乱斗:ai-memory 与 codebase-memory-mcp 横向对比,谁更适合接入 Claude Code?

发布时间:2026/10/10 15:11:03
MCP 记忆体大乱斗:ai-memory 与 codebase-memory-mcp 横向对比,谁更适合接入 Claude Code?
MCP 记忆体大乱斗ai-memory 与 codebase-memory-mcp 横向对比谁更适合接入 Claude Code【免费下载链接】ai-memorySolution for long term memory for agent coding CLIs and to facilitate handoff between different agent vendors项目地址: https://gitcode.com/GitHub_Trending/ai/ai-memoryClaude Code 越来越强但它有一个与生俱来的短板上下文窗口之外的世界它一无所知。为了让编码智能体记住东西开发者圈子里最近冒出了一大批记忆类项目——有的把代码库解析成知识图谱有的把每次会话沉淀成长期记忆。其中两个名字经常被放在一起比较主打代码结构记忆的 codebase-memory-mcp以及主打工作会话记忆的 ai-memory。它们都通过 MCP 协议接入 Claude Code但解决的问题几乎完全相反。本文将基于两个项目的公开情报与源码从接入方式、记忆粒度、实际体验三个维度拆解它们到底记的是什么在 Claude Code / Cursor 里分别怎么工作以及——对大多数开发者来说哪个才是真正需要的那个。接入方式同一套 MCP 协议完全不同的存在形态先厘清一个常见误解MCP 记忆体并不等于MCP 工具。两者都通过 MCPModel Context Protocol暴露给 Claude Code但协议只是传输层项目在协议背后的形态天差地别。codebase-memory-mcp 是标准的MCP 工具服务它以纯 C 实现、编译为单个静态二进制把一个仓库解析成持久化的知识图谱然后通过 15 个 MCP 工具对外暴露——search_graph、trace_pathBFS 调用链、query_graph只读 Cypher 子集、get_architecture、detect_changes、semantic_query等。它的价值主张极其聚焦用一次图查询替代几十轮 grep/read官方宣称 5 次结构化查询约 3,400 token而逐文件搜索需要约 412,000 token约 99.2% 的削减。它不做任何代码执行不监听任何会话只对代码库现在长什么样负责索引存在~/.cache/codebase-memory-mcp/的 SQLite 里。ai-memory 则是原生 CLI 客户端 服务端的双层架构一个 Rust 二进制同时充当 MCP/HTTP 服务器但它不满足于只暴露工具。它向 Claude Code 等客户端安装的是两样东西install-mcp --client claude-code --apply注册 MCP 入口install-hooks --agent claude-code --apply安装生命周期钩子。钩子负责观察MCP 工具负责回忆缺一不可capture ──▶ consolidate ──▶ recall ──▶ handoff hooks session-end search next agent, observe summaries as brief any harness silently wiki pages injection以 hooks/claude-code/post-tool-use.sh 为例Claude Code 每次工具调用后这个 shell 钩子就把事件 JSON fire-and-forget 转发到http://127.0.0.1:49374/hook?eventpost-tool-useagentclaude-code然后向 Claude Code 回一个{}保持调试日志干净——整个捕获过程对使用者完全无感。同样是接入 Claude Codecodebase-memory-mcp 是你问它答的被动工具ai-memory 是它一直在看、看完自己写笔记、下次开场自动交接的主动系统。协议相同范式相反一个是查询引擎一个是记录系统。记忆粒度代码库知识图谱 vs 会话长期记忆这是两个项目最根本的分水岭也是选型时最容易踩的坑。codebase-memory-mcp 的记忆单位是代码实体与关系NodeProject、Package、File、Function、Class、Route……和 EdgeCALLS、IMPORTS、IMPLEMENTS、HTTP_CALLS、DATA_FLOWS……。它用多遍 tree-sitter AST 覆盖 162 种语言再用内置的轻量类型解析算法Hybrid LSP兼容 tsserver/pyright/gopls/Roslyn/rust-analyzer 的结构但完全内嵌、离线补上 import/generic/继承/类型推断。内置nomic-embed-code768 维 int8 向量直接编译进二进制semantic_query不需要任何网络请求。它的回答类型是这个函数被谁调用、改了这个接口会影响哪些模块。ai-memory 的记忆单位是发生过的工作一次会话中的提示词、工具调用、失败路径、决定、遗留问题。钩子捕获的原始观察在会话结束时被编译成 Markdown wiki 页面——这正是 Karpathy LLM Wiki 的compile-not-retrieve思想知识只编译一次而不是每次检索时临时拼装。事实源是 git 版本化的.md文件可以用 grep、可以用 Obsidian 打开、可以手改SQLite 只是派生索引FTS5 全文 实体 链接邻域 RRF 融合可选向量永远可以从文件重建。它的回答类型是上次我们做到哪了、为什么当初选了这个方案、这个坑之前踩过吗。仓库文档 docs/research-codebase-memory-mcp.md 对此有非常直白的界定codebase-memory-mcp不是会话记忆的竞品它是代码结构记忆——它回答代码是什么、怎么连接ai-memory 回答我们做了什么、为什么。两者是互补关系agent 完全可以同时挂两个——一个导航代码一个回忆工作。这个区分在实战场合极其重要代码库知识图谱解决的是找得到会话长期记忆解决的是记得住。AST 能告诉你register_user()被谁调用但 AST 永远无法告诉你上个月我们因为 SQLite 锁问题把写路径改成了单写者 Actor。实测场景Claude Code / Cursor 下的表现差异Claude Code从接一个工具到接入一整套生命周期对 Claude Code 而言codebase-memory-mcp 是纯 MCP 注册配置一次即可查询。它的问题在于没有写入路径——代码变化后依赖 watcher 自动重索引auto_watch默认开启但为什么这段代码长这样的历史永远不会被记录。ai-memory 在 Claude Code 下的体验则完全不同。安装两条命令后ai-memory install-mcp --client claude-code --apply ai-memory install-hooks --agent claude-code --applyClaude Code 的每次 prompt 和工具调用都会静默进入 ai-memory会话结束时生成可读的 wiki 页面下一次会话开场自动注入 handoff——上次停在哪、什么失败了、什么还开着。支持矩阵docs/support-matrix.md显示 Claude Code 是完整支持的行MCP 配置 生命周期钩子双通道。--session-aware模式还通过本地 stdio bridge 注入CLAUDE_CODE_SESSION_ID让并行会话的自动作用域隔离成为可能见 docs/mcp-install.md 的 Claude Code 小节。更关键的是它的零 LLM 默认路径捕获、检索、handoff 全都不需要 API key。Claude Code 是贵 token 大户这个特性意味着记忆系统本身不消耗任何模型调用。检索质量也有可复现的基准支撑仓库内置的 LongMemEval-S 评测显示整体 hit5 从 2.0 之前的 0.617 提升到 0.823FTS 零 LLM 模式 0.666本地 embedding 模式 0.815所有数字由仓库内评测 harness 产出docs/benchmarks/README.md。Cursor同一套工具不同的接入深度Cursor 的接入差异更明显。对 codebase-memory-mcpCursor 只是又一个 MCP 客户端行为与 Claude Code 下没有本质区别——依然是纯查询。对 ai-memoryCursor 的注册只需要在.cursor/mcp.json写一个 URL{ mcpServers: { ai-memory: { url: http://127.0.0.1:49374/mcp } } }但真正的差异在钩子ai-memory 把 Cursor 的sessionStart、sessionEnd、beforeSubmitPrompt、preToolUse、postToolUse、preCompact、stop全部映射到统一捕获路径docs/mcp-install.md 的 Cursor 小节。这意味着 Cursor 里发生的事情同样进入共享记忆下次切回 Claude Code 也能接上——这正是 ai-memory 最核心的卖点记忆跟着项目走不跟工具走。README 里的场景描述很直白Claude Code 中途退出同一目录打开 Codex下一个 agent 直接拿到真正的交接。而 MCP-only 客户端如 Claude Desktop Chat、VS Code Copilot、Zed则只能拿到一半体验MCP 工具可以查询、接 handoff、手动memory_consolidate但没有自动捕获和会话边界自动交接——这个取舍在 docs/mcp-install.md 中有明确的对照表。一个真实的取舍判断从情报和源码出发选型结论其实很清晰如果你的痛点是agent 找代码太慢、上下文太费——比如要频繁回答这个接口改动的波及面、这条调用链怎么走这类结构化问题codebase-memory-mcp 的图查询 token 压缩是无可替代的利器而且纯本地、零网络。如果你的痛点是每次新会话都要重新解释项目背景、失败的方案、遗留问题——这是绝大多数日常开发者的真实痛点codebase-memory-mcp 帮不上忙因为它从不观察会话。ai-memory 的钩子捕获 会话编译 跨 agent handoff 才是对症的解法。更诚实的结论是这不是二选一而是两个正交的维度。ai-memory 仓库自己的研究报告明确建议 agent 可以同时挂两者——codebase-memory-mcp 管代码此刻的样子ai-memory 管代码为什么变成这样。一个理想的 Claude Code 工作流应该是图查询负责导航长期记忆负责上下文两者共享同一个会话。不过如果只能选一个接入 Claude Code对多数开发者我更推荐 ai-memory因为代码检索类问题Claude Code 原生工具 上下文已经能解决大部分而跨会话、跨工具的长期记忆是任何原生功能都无法替代的——而且它默认零 LLM 成本、记忆以可读可 grep 的 Markdown 存在你的 git 里随时可以离开没有任何绑架。【免费下载链接】ai-memorySolution for long term memory for agent coding CLIs and to facilitate handoff between different agent vendors项目地址: https://gitcode.com/GitHub_Trending/ai/ai-memory创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考