claude-mem 记忆系统:跨会话持久化上下文
你会学到什么
每次关闭 Claude Code 对话,AI 就"失忆"了——上次讨论的架构决策、修过的 Bug、调研过的技术方案,全部归零。claude-mem 是一个 Claude Code 插件,它自动记录每次对话的关键决策和技术发现,下次新对话时自动注入上下文,让 AI 跨会话保持"记忆"。
学完本节你能做到:打开新的 Claude Code 会话时,AI 自动知道上次做了什么、做过哪些决策、哪些 Bug 已经修过。
为什么需要跨会话记忆?
Claude Code 其实内置了 memory 能力,但它只在当前会话内有效——会话结束、或长对话被自动压缩(compact)后,之前讨论的内容就丢了。上一节配好了 local-search 和向量数据库,本地信息获取已经解决,但跨会话、长对话压缩过程中的记忆丢失问题依然存在。社区里反馈较好的方案,是 claude-mem 这个第三方插件。
CLAUDE.md 解决不了所有问题
第3章学过 CLAUDE.md 是项目的"持久上下文"。但 CLAUDE.md 有几个局限:
| 局限 | 具体表现 |
|---|---|
| 手动维护 | 你得自己更新,经常忘记;理论上能用 Hooks 自动维护,但配置麻烦 |
| 只有结论 | 记录"用CSS变量"但不记录"为什么不用CSS-in-JS" |
| 不追溯过程 | 不记录 Bug 的排查过程、踩过的坑 |
| 没有搜索 | 不能存非常详细的内容,内容多了以后 AI 逐行读取效率低 |
举个例子:你昨天花 2 小时排查了一个 Vite 构建配置的 Bug,最终在 CLAUDE.md 里加了一行"Vite 库模式必须设置 emitAssets: false"。今天遇到类似问题,AI 看到这行知道结论,但不知道排查过程。如果换个配置项遇到同类问题,CLAUDE.md 帮不上忙。
claude-mem 做了什么
claude-mem 通过 Hook 机制(第3章05节学过)自动监听 Claude Code 的对话过程:
每次对话开始(SessionStart)
↓ 自动注入:上次讨论的摘要、关键决策列表
对话过程中的每次工具调用(PostToolUse)
↓ 自动记录:发现了什么、改了什么、做了什么决策
对话结束时(Stop)
↓ 自动生成:本次会话的完整进度摘要
text
这些记录存在本地 SQLite 数据库(~/.claude-mem/claude-mem.db)中,配合 Chroma 向量库做"语义搜索 + 关键词搜索"的混合检索。下次新对话时,SessionStart Hook 自动查询本项目最近的会话记录(默认约 10 个会话、50 条观察),把上下文注入到对话开头。
装好之后基本不用再管它:不需要在每个项目里重复配置,正常新开会话聊天即可。项目越复杂、搁置越久,它的价值越明显——哪怕几个月没碰这个项目再回来,AI 也不会"变笨",因为本地数据库里记着全部过程。配合上一节的 local-search,你就拥有了一套优质的本地 AI 环境:AI 会越用越懂你。
对比 CLAUDE.md 和 claude-mem
| 维度 | CLAUDE.md | claude-mem |
|---|---|---|
| 记录方式 | 手动编写 | 自动记录 |
| 内容类型 | 项目规范、约束条件 | 决策过程、Bug修复、技术发现 |
| 搜索能力 | 无(全量读取) | 语义搜索 + 关键词搜索 |
| 跨项目 | 每个项目独立 | 支持跨项目搜索 |
| 维护成本 | 需要持续更新 | 零维护 |
两者互补:CLAUDE.md 写"项目规范"(不变的东西),claude-mem 记"过程记忆"(每次在变的东西)。
claude-mem 的架构
安装方式与能力层级
claude-mem 以 Plugin(插件) 方式安装,不是 MCP Server。这和上一节的 local-search 不同:
| 扩展类型 | 安装方式 | 代表 | 特点 |
|---|---|---|---|
| Plugin | Claude Code 插件市场一键安装 | claude-mem | 本地安装,能力最全 |
| MCP Server | 手动配置 .mcp.json | local-search | 任意 AI 工具/模型都能复用 |
| Skill | 手动创建 SKILL.md | local-search skill | 只教方法,不提供新工具 |
可以把插件理解成前端里的一个"包"——它是一个多仓库应用,能同时包含 MCP Server、Skills、Hooks 和命令,概念比 MCP 宽广。所以插件比 MCP Server 更强大:Hooks(自动触发)+ MCP Server(工具接口)+ Skills(使用指导)三合一。
2026-10 更新:claude-mem 已迭代到 v5 架构(GitHub 11.4万+ star,Apache-2.0 许可,2026-11-07 核实),不再只服务 Claude Code——官方支持 OpenClaw、Codex、Gemini CLI、Copilot、OpenCode 等一系列 agent(例如
npx claude-mem install --ide opencode)。课程以 Claude Code 插件形态为准。
核心组件
claude-mem 插件(v5 架构)
├── Hooks(自动触发,5 个生命周期 Hook)
│ ├── SessionStart → 启动 Worker + 注入上下文(/clear 时也会触发重新注入)
│ ├── UserPromptSubmit → 初始化会话、记录观察、生成摘要
│ ├── PostToolUse → 记录观察(observation)
│ ├── Stop → 生成会话进度摘要
│ └── SessionEnd → 会话收尾
│
├── Worker 服务(Bun 托管的本地 HTTP API)
│ └── Web 查看器 UI:实时记忆流,启动时打印访问地址
│
├── MCP Server(mcp-search,4 个搜索工具)
│ ├── search → 搜索记忆索引(支持按类型/日期/项目过滤)
│ ├── timeline → 获取某条观察前后的时间线上下文
│ └── get_observations → 按 ID 批量获取完整记录
│
└── Skills(使用指导)
├── mem-search → 搜索记忆
├── smart-explore → 结构化代码探索(smart_search/smart_outline/smart_unfold)
├── make-plan → 创建实施计划
└── do → 执行实施计划
text
工作流程
一次完整的 claude-mem 工作周期:
1. 用户启动新对话
↓
2. SessionStart Hook 触发
- 启动 Worker 进程(首次自动拉起,无需手动)
- 从 SQLite 数据库查询最近记录(默认最近 10 个会话、50 条观察)
- 生成上下文摘要注入对话开头
↓
3. 用户提问,AI 回答
↓
4. PostToolUse Hook 触发(每次 AI 用工具后)
- 提取本次操作的关键信息
- 写入 SQLite 数据库
↓
5. 用户结束对话(退出或 /clear)
↓
6. Stop Hook 触发
- AI 总结本次会话的完整进度
- 写入数据库作为"进度摘要"
text
一个容易误解的点:/clear 并不会"结束"会话——它会清空 Claude 看到的对话上下文,同时触发 SessionStart(来源标记为 clear)重新注入最近的记忆,观察继续记录、Stop 照常生成摘要。所以 /clear 是"换脑子",不是"失忆"。
第一步:安装 claude-mem
方式一:插件市场安装(推荐)
启动 Claude Code 后,执行官网给出的两条命令:
/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem
text
第一步是从 GitHub 拉取插件市场仓库,本地网络需要能连通 GitHub,否则 marketplace add 会失败(配过课程第1章的 GitHub 代理就不成问题)。
安装完成后重启 Claude Code,插件会自动:
- 注册 Hooks(SessionStart / UserPromptSubmit / PostToolUse / Stop / SessionEnd)
- 在首次 SessionStart 时自动拉起 Worker 服务
- 注册 MCP Server(mcp-search)
- 注册 Skills(mem-search / smart-explore / make-plan / do)
系统要求:Node.js 20+;Bun 和 uv 缺失时安装器会自动装;SQLite 随包捆绑。
方式二:npx 一条命令安装
npx claude-mem install
bash
安装器先完成本地配置,再询问是否登录 claude-mem 账号(邮箱魔法链接,开通 30 天免费试用,试用结束后回退到你的 Anthropic 计划)。不登录也完全可用——显式传 --provider 参数、设置 CLAUDE_MEM_ONLINE_OPTIN=false,或在 CI 等非交互环境运行,安装器都会跳过账号交互,纯本地跑。
常见误区:
npm install -g claude-mem装到的只是 SDK/库——它不会注册插件 Hooks,也不会启动 Worker 服务。始终用npx claude-mem install或上面的/plugin命令安装。
方式三:手动安装(网络受限时)
插件市场连不上 GitHub 时,把官方仓库克隆到本地,再把本地目录注册为插件市场:
# 克隆到个人工具目录
git clone https://github.com/thedotmack/claude-mem.git ~/tools/claude-mem
bash
然后在 Claude Code 中:
/plugin marketplace add ~/tools/claude-mem
/plugin install claude-mem
text
验证安装
安装后重启 Claude Code,检查是否生效:
# 检查 MCP 工具是否可用
/mcp
# 应该能看到 mcp-search 的工具列表
# 检查 Skill 是否可用
/skills
# 应该能看到 mem-search、smart-explore、make-plan、do
text
第二步:理解自动记录的内容
claude-mem 自动记录两类信息:观察(Observations)和进度摘要(Progress Summary)。
观察(Observations)
每次 AI 调用工具后,claude-mem 自动提取关键信息,生成一条观察记录:
| ID | 时间 | 类型 | 标题 | 内容摘要 |
|----|------|------|------|----------|
| #39050 | 3:44 PM | 🔵 发现 | 插件命令目录为空 | 发现 commands 目录... |
| #39051 | 3:45 PM | 🟣 功能 | 新增搜索功能 | 实现了 SearXNG... |
| #39052 | 3:50 PM | 🔴 Bug | 修复代理超时问题 | Docker 容器代理... |
text
每条观察包含:
| 字段 | 说明 |
|---|---|
| title | 简短标题,捕捉核心行动 |
| subtitle | 一句话解释 |
| type | 🔴 Bug修复 / 🟣 新功能 / 🔄 重构 / ✅ 变更 / 🔵 发现 / ⚖️ 决策 |
| narrative | 完整背景:做了什么、如何工作、为什么重要 |
| files | 涉及的文件路径 |
| concepts | 知识类型标签 |
进度摘要(Progress Summary)
每次对话结束(Claude 完成响应触发 Stop Hook)时,自动生成一份进度摘要,共六个字段:
Request: 本次用户要求做什么
Investigated: 探索了本地化搜索引擎的完整技术栈
Learned: 了解了 Docker 容器化部署 SearXNG 的方法
Completed: 创建了完整的配置文档
Next Steps: 可能需要调整文档编号
Notes: 其他值得保留的信息
text
摘要展示还有防陈旧逻辑:只有当摘要的生成时间晚于最近一条观察时,才会在上下文里展示完整详情——避免把已被新工作覆盖的旧摘要当成项目最新状态。
SessionStart 上下文注入
下次打开新对话时,SessionStart Hook 自动把最近的记录注入到对话开头:默认查询本项目最近约 10 个会话、50 条观察,以带会话标记的时间线形式展示观察标题(索引层只花约 50-200 token),让 AI 知道之前做过什么。注入量、数据目录、日志级别等都可以在 ~/.claude-mem/settings.json(首次运行自动生成)里调整。
使用习惯:一次会话 4-5 轮,就考虑换新
Claude Code 自带对话压缩(compact)机制,上下文快满时自动摘要压缩。于是不少同学养成了一个坏习惯:一个劲地在同一个会话里聊所有事情。这不划算:
- 模型窗口虽大,但长会话里每轮都在为无关的历史上下文"交税"
- 新话题混在旧上下文里,模型的注意力被稀释,反而不聚焦
建议的节奏:一次会话解决一个小问题,4-5 轮对话后就考虑新建会话。既节约 token,又让模型聚焦你当下要完成的功能。装了 claude-mem 之后,你不必再担心"换会话丢上下文"——它自动记录、自动注入,新会话开局就知道之前做到哪了;配合 /clear 的重新注入行为,可以放心地频繁开新会话。
第三步:使用 mem-search 搜索历史
claude-mem 提供了 mem-search Skill,用三步搜索历史记录:
3 层搜索流程
第1层:search(query) → 获取索引(每条 ~50-100 token)
↓ 过滤出感兴趣的 ID
第2层:timeline(anchor=ID) → 获取某个时间点前后的上下文
↓ 确认需要详细查看的记录
第3层:get_observations([IDs]) → 获取完整记录
text
为什么要分三层? 因为直接获取所有完整记录会浪费大量 token——一条完整观察约 500-1000 token,而索引只要 50-100 token。先看索引(每条只有标题和类型),确认需要哪些再拉详情,官方口径约节省 10 倍 token。
实战示例
场景:你记得上周修过一个 Vite 构建问题,想回顾当时的解决方案。
请搜索之前关于 Vite 构建问题的记录
text
AI 会调用 mem-search Skill:
search(query="Vite 构建问题", limit=20)→ 返回索引列表- 从索引中找到相关记录的 ID
get_observations([38150, 38151])→ 获取完整记录
常用搜索场景
| 场景 | 搜索示例 |
|---|---|
| 回顾 Bug 修复 | "上次那个 Docker 代理问题怎么解决的?" |
| 查看技术决策 | "我们为什么选了 CSS 变量而不是 CSS-in-JS?" |
| 找回代码模式 | "上次写过的那个 MCP 服务器代码在哪?" |
| 追踪项目进度 | "上周在做什么?做到哪了?" |
第四步:使用 smart-explore 探索代码
claude-mem 内置的 smart-explore Skill 提供了比 grep/find 更高效的代码探索方式。项目代码量一大,快速定位文件就成了刚需——smart-explore 用 AST 解析替代全文件读取,官方口径可节省 50%-90% 的上下文 token(讲师未逐一验证,日常使用体感明显)。
为什么需要 smart-explore?
传统的代码探索流程是 Glob → Grep → Read,需要多次调用才能定位到目标代码。smart-explore 用 tree-sitter 做 AST 解析,一次调用就能获得文件的结构概览。
三个核心工具
smart_search(query="Button", path="./src")
→ 搜索所有代码文件,返回匹配的符号和文件
smart_outline(file_path="./src/components/Button.vue")
→ 显示文件结构:所有函数、类型、变量的签名(折叠实现)
smart_unfold(file_path="./src/components/Button.vue", symbol_name="handleClick")
→ 展开某个符号的完整实现
text
典型使用流程
第1步:smart_search → 发现 Button 组件在哪个文件
第2步:smart_outline → 看这个文件有哪些函数和类型
第3步:smart_unfold → 只看 handleClick 的实现细节
text
对比传统方式:
| 传统方式 | smart-explore | 节省 |
|---|---|---|
| Read 整个文件(可能 500 行) | smart_outline 只看结构(~50 行) | 90% |
| Grep 搜关键词 + Read 定位 | smart_search 一次定位 | 50% |
| Read 完整文件看一个函数 | smart_unfold 只看目标函数 | 80% |
第五步:使用 make-plan 和 do 管理任务
claude-mem 还提供了两个面向项目管理的 Skill:make-plan 创建计划,do 执行计划。
make-plan — 创建实施计划
当你有一个多步骤的实现任务时,用 make-plan 让 AI 生成分阶段的实施计划:
请为我的 Vue3 组件库创建一个实施计划:
需要实现 Button、Input、Select 三个组件,
每个组件包含 TypeScript 类型定义、样式和单元测试。
text
make-plan 会:
- 搜索相关文档和已有代码模式
- 按阶段拆分任务(Phase 0: 文档发现 → Phase 1-N: 实现阶段)
- 每个阶段有明确的输入、输出和验证条件
- 生成一份可执行的计划文件
和 Claude Code 自带 plan 模式的区别:plan 模式产出的计划存在于当前对话上下文里——计划一长、一次会话执行不完触发 compact 压缩后,可能丢失计划中的部分信息。make-plan 把分阶段计划持久化下来,可以跨多轮会话讨论和执行,专门适合长而复杂的实施任务。课程项目里 Claude Code 的 plan 模式基本够用;等你接手多阶段大任务,再切换到 make-plan + do。
do — 执行实施计划
make-plan 生成的计划用 do 来执行:
请执行刚才生成的实施计划
text
do 会:
- 读取计划文件
- 为每个阶段分配独立的子 Agent
- 按顺序执行,每个阶段完成后验证
- 所有阶段完成后汇总结果
make-plan + do 的工作流
用户描述任务
↓
/make-plan → 生成分阶段计划
↓
用户审核计划
↓
/do → 按计划执行(每个阶段用独立子Agent)
↓
用户验证结果
text
这个模式和第4章学的"提示链"类似,但更结构化——每个阶段有明确的交付物和验证条件。
配置检查清单
| 检查项 | 验证方法 | 预期结果 |
|---|---|---|
| 插件已安装 | ls ~/.claude/plugins/marketplaces/thedotmack/ | 目录存在 |
| Worker 已启动 | 新会话启动后,浏览器打开 Worker 打印的 URL | Web 查看器能看到实时记忆流 |
| MCP 工具可用 | 对话中调用 search 工具 | 返回搜索结果 |
| Hooks 已注册 | 新对话开始时查看上下文 | 看到最近观察的时间线 |
| mem-search Skill 可用 | /skills 列表 | 包含 mem-search |
| smart-explore 可用 | /skills 列表 | 包含 smart-explore |
| 数据库已创建 | ls ~/.claude-mem/claude-mem.db | 文件存在 |
local-search + claude-mem 协作模式
把本节的 claude-mem 和上一节的 local-search 组合使用,形成完整的需求分析工作流:
场景:需要做竞品分析
1. claude-mem 自动注入上下文
→ "上次讨论了 Vue3 组件库的定位,确定了 TypeScript 原生 + CSS 变量主题的方向"
2. 用户:帮我调研 Element Plus 和 Naive UI 的 API 设计差异
3. local-search 搜索
→ 搜索 "Element Plus vs Naive UI API design"
→ 爬取 3-5 篇对比文章
→ 整理成结构化报告
4. claude-mem 自动记录
→ 记录 "调研了 API 设计差异,结论是 Naive UI 的 TS 类型更严格"
5. 下次对话
→ AI 自动知道之前的调研结论,继续推进需求文档
text
搜索解决"信息从哪来",记忆解决"上次做到哪了"。 两者配合,AI 需求分析才能真正做到跨会话持续迭代。
常见问题
claude-mem 占用太多 token?
SessionStart 注入的上下文会占用 token。所有配置集中在 ~/.claude-mem/settings.json(首次运行自动生成默认值):可以调低注入的观察数量上限、调整数据目录和日志级别;想彻底关掉账号/云端相关行为,设置 CLAUDE_MEM_ONLINE_OPTIN=false。
想要中文的观察和摘要?
在 ~/.claude-mem/settings.json 中设置:
{ "CLAUDE_MEM_MODE": "code--zh" }
json
重启 Claude Code 后,生成的观察标题、类型和进度摘要都会使用简体中文(内置模式,无需额外安装;同系列还有 code--ja 等语言模式,遵循 code--[语言码] 命名)。
敏感内容不想被记住?
对话中用 <private>...</private> 标签包裹的内容不会被写入存储——适合密码、密钥、内部凭证这类信息。
想要手动管理记忆?
claude-mem 也支持手动操作:
- 自然语言提问"上次那个 Docker 代理问题怎么解决的?",AI 自动调用 MCP 搜索工具
search(query="...", type="bugfix")只搜索 Bug 修复类记录get_observations([ID])查看具体记录sqlite3 ~/.claude-mem/claude-mem.db直接查库
和 CLAUDE.md 的内容冲突?
CLAUDE.md 是"项目规范",claude-mem 是"过程记忆"。两者不会冲突——CLAUDE.md 写不变的东西(技术栈、命名规范),claude-mem 记每次变化的东西(决策过程、Bug 修复)。如果 CLAUDE.md 中有明确规范,以 CLAUDE.md 为准。
AI 记忆工具生态
claude-mem 是本节重点方案,但它不是唯一选择。2025-2026 年,AI 记忆工具已经形成了完整的生态。
各 AI 工具的内置记忆方案
| 工具 | 记忆方式 | 特点 |
|---|---|---|
| Claude Code | /memories + CLAUDE.md + MEMORY.md | AI 自主管理,三层记忆架构 |
| Cursor | .cursor/rules/*.mdc | YAML frontmatter + Glob 模式匹配,@mention 手动触发 |
| Windsurf | Cascade 自动生成 | 自动生成记忆,4种激活模式(Always On/Glob/AI Decision/Manual) |
| Gemini CLI | GEMINI.md + /memory + /compress | 分层 Markdown 文件,会话压缩和检查点恢复 |
| Codex CLI | AGENTS.md + .override.md | 层叠覆盖系统,适合团队协作 |
每个工具的记忆方案各有侧重:Claude 追求 AI 自主管理(用户零干预),Cursor 追求精细控制(Glob + @mention),Windsurf 追求零配置(Cascade 自动生成),Gemini 追求会话管理(/compress + /chat save),Codex 追求团队协作(override 覆盖系统)。各家的插件生态里也都有记忆类增强可补——Codex 生态里有对应的记忆插件,claude-mem v5 本身也已原生支持 Codex 和 Gemini CLI。
第三方记忆增强工具
| 工具 | 类型 | 特点(2026-10 核实) | 适用场景 |
|---|---|---|---|
| Mem0 | 开源记忆层 | 68.5k star(2026-11-07 核实);图谱+向量混合检索,论文口径 p95 延迟比全上下文降低 91%;2025-10 完成 2400 万美元融资(A 轮 2000 万由 Basis Set 领投,Kindred Ventures 种子轮,YC/Peak XV/GitHub Fund 参投);配套 OpenMemory MCP 支持 Cursor/Windsurf/VS Code | 通用 AI 记忆,跨平台 |
| Agent-Memo | MCP 云端记忆 | 一行 MCP 配置接入;自动保存 Hooks + 知识图谱 + 团队共享,支持 Claude Code/Cursor/Windsurf/OpenClaw 等,免费起步 | 快速接入云端记忆 |
| claude-mem | 本地 Plugin | 11.4万+ star(2026-11-07 核实),Apache-2.0;SQLite + Chroma 混合检索 + Hook 自动记录,零云依赖,已支持 Codex/Gemini CLI 等多 agent | Claude Code 本地记忆(本节方案) |
| Hindsight | MCP 记忆系统 | retain/recall/reflect 三操作,跨工具共享 | 跨工具统一记忆 |
| Basic Memory | Markdown 知识图谱 | Markdown 文件构建语义图,与 Obsidian 兼容 | 本地知识管理 |
这些工具大多基于 MCP 协议,意味着一次配置可以在 Claude Code、Cursor、Windsurf 等任意 MCP 兼容客户端中使用。选本地还是云端,主要看数据敏感度:企业内网项目、私有代码,优先 claude-mem 这类本地方案;数据不敏感、团队要共享记忆,再考虑 Mem0/Agent-Memo 的云端方案。
RAG 与向量数据库:记忆的底层技术
claude-mem 的语义搜索、Mem0 的智能检索,底层都依赖同一套技术:RAG(检索增强生成)+ 向量数据库。RAG 不是新词——前几年它更多被叫作"知识图谱"或"知识检索",核心都是解决模型上下文窗口装不下全部知识的问题,落地载体就是向量数据库。
RAG 是什么
RAG(Retrieval-Augmented Generation,检索增强生成)是一种架构模式:
用户提问
↓
1. 检索:从知识库中找到相关内容(通过向量相似度)
↓
2. 增强:把检索到的内容作为上下文注入提示词
↓
3. 生成:LLM 基于增强后的上下文生成回答
text
claude-mem 的 3 层搜索流程(search → timeline → get_observations)本质上就是一个 RAG 系统:把历史记忆作为"知识库",搜索相关内容后注入到新对话中。
向量数据库选型
向量数据库负责存储 Embedding(文本的向量表示)并支持语义相似度搜索。
| 数据库 | 类型 | 适合场景 |
|---|---|---|
| ChromaDB | 嵌入式 | 快速原型,Python 项目,pip install 即用(claude-mem 内置用的就是它) |
| sqlite-vec | 嵌入式 | 已有 SQLite 的项目,单文件零运维 |
| LanceDB | 嵌入式 | 多模态检索,文件系统原生 |
| Qdrant | 单机/服务器 | 生产级性能,Rust 实现,Docker 一键部署 |
| Milvus | 集群 | 大规模向量搜索,10 亿+ 向量;2026 年发布 3.0 "Vector Lakebase"(湖原生架构,46k+ star,2026-11-07 核实),商业托管为 Zilliz Cloud |
| Pinecone | 云服务 | 全托管零运维,不想自建的团队 |
个人开发者推荐:ChromaDB(最易上手)或 sqlite-vec(最轻量)。数据量增长后再考虑 Qdrant;真到亿级向量、多机集群的规模,上 Milvus 或其官方云服务 Zilliz Cloud。
什么时候该上外部 RAG,而不是 claude-mem?
claude-mem 与 Claude Code 天生集成好、痛点针对性强,日常开发的会话记忆没必要再对接一层外部知识库。但如果你要检索的是大量 PDF、Word 这类静态文档,就应该上外部 RAG 方案——RAGFlow、Dify 都内置知识库能力(第17章会详细对比选型)。拿不准有哪些可选时,直接用 local-search 问模型推荐,结合自己的文档规模做判断;向量数据库按规模选:本地嵌入式(ChromaDB/sqlite-vec)够用就别上服务,量大再考虑 Milvus 集群或 Zilliz Cloud 托管。
从 RAG 到智能体记忆
2025-2026 年的趋势是超越传统 RAG(静态文档检索),转向"智能体记忆"——AI 不仅检索文档,还记住交互历史、决策上下文、学到的模式。核心变化:
- 传统 RAG:检索静态文档 → 注入上下文 → 生成回答
- 智能体记忆:自动提取交互中的知识 → 构建记忆图谱 → 跨会话持续学习
Mem0 的论文显示,智能体记忆架构比全上下文处理的 p95 延迟降低 91%,同时保持记忆质量。这也是 claude-mem 采用分层搜索(索引 → 时间线 → 详情)而非全量加载的原因。
小结
claude-mem 的核心价值:
- 自动记录 — 无需手动维护,Hook 自动监听每次工具调用
- 跨会话记忆 — 新对话自动注入历史上下文,AI 不会"失忆",让每次对话都不从零开始
- 三层搜索 — 索引 → 时间线 → 详情,token 高效利用
- 代码探索 — smart-explore 用 AST 解析替代全文件读取,官方口径节省 50%-90% token
- 计划管理 — make-plan + do 提供结构化的任务拆分和执行(计划持久化,不怕 compact 丢信息)
- 与 local-search 互补 — 搜索获取外部信息,记忆保持内部上下文
- 生态丰富 — 从 claude-mem 到 Mem0、Agent-Memo,MCP 协议让记忆工具跨平台通用;本地方案对数据安全友好,云端方案适合团队共享
到这里,搜索和记忆两大能力就补全了。掌握 local-search + claude-mem 的组合后,第5-1节的 AI 需求分析工作流才能真正跨会话持续迭代——这也是后续所有实战章节的基础设施。
↑