AI 深度解析

Claude-Mem:Claude 代码持久化记忆完整指南

你的 AI 编程智能体在不同会话之间会遗忘所有内容。 Claude-Mem 解决了这个问题 — 自动捕获工具使用情况,利用 AI 压缩观测结果,并将相关上下文注入到未来的会话中。我们将深入剖析其架构、安装流程,以及它为何能成为 AI 编程生态系统中增长最快的开源插件之一。

Claude-Mem:AI 编程持久化记忆插件 — 一个发光的神经电路大脑连接到代码编辑器,流动的数据流象征着跨编程会话的上下文保留

每个使用 AI 编程智能体的开发者都经历过:你花了一个小时向 Claude Code 解释你的项目架构、偏好和规范。会话结束了。你开始了一个新的会话。结果又是 白纸一张Claude-Mem 是解决这个问题的开源插件 — 并且它已成为 AI 编程生态中最受欢迎的工具之一。我们调研了 GitHub、Reddit、Twitter/X 以及源代码本身 — 以下是权威指南。

Get the latest on AI, LLMs & developer tools

New MCP servers, model updates, and guides like this one — delivered weekly.

1. 为什么它很重要

Claude-Mem 是 获得 Star 最多的插件之一 在 Claude Code 生态系统中,拥有数万个 GitHub star、数百个版本发布和数千次 fork。对于一个本质上是为 AI 编程智能体增加记忆功能的插件来说,这种采用率是惊人的。它既不是框架也不是库 — 它是一种 行为增强 针对 Claude Code。

为什么这很重要

AI 智能体在设计上是无状态的 — 每个会话都是从零开始。但实际的开发项目往往跨越 数周甚至数月。每一次重复解释都会消耗 token、时间,并带来智能体误解你已经澄清过的内容的风险。Claude-Mem 自动弥补了这一差距。

该项目主要使用 TypeScript构建,并结合了 JavaScriptShell 脚本以及 HTML 用于其 Web 查看器。它采用 AGPL-3.0协议授权,这意味着你可以自由使用和修改它,但在网络上部署的衍生作品也必须开源。

2. 起源故事

Claude-Mem 由 Alex Newman 创建,在网上的 ID 为 @thedotmack。Newman 的背景涵盖了 AI 产品管理、解决方案架构以及前向部署工程 — 这种背景组合解释了为什么 claude-mem 感觉不像是一个业余项目,而更像是一个生产级的基础设施。

该项目源于一个简单的观察:Claude Code 非常强大,但它对待每一次会话都像是第一次见到你。Newman 构建 claude-mem 是为了解决他自己的痛点 — 而开发者社区对此给予了巨大的认可。

核心洞察

Newman 意识到问题不在于 存储 记忆 — 而是在于 如何高效地压缩和检索 它们。原始对话日志过于庞大且缺乏重点。Claude-Mem 利用 AI 自身来生成每次会话内容的语义摘要,然后仅为下一次会话检索相关的上下文。

该项目拥有官方 X/Twitter 账号 (@Claude_Memory)、一个 Discord 社区,甚至还有一个官方网站: claude-mem.ai ,并配有详尽的文档。

3. 它解决的问题

如果你使用 Claude Code、Cursor 或任何 AI 编程代理超过一天,你就会明白这种痛苦:

问题 1:上下文失忆症

你解释了项目架构、数据库模式和编码规范。会话结束。下个会话:“这是个什么项目?”每一次,都是如此。

问题 2:重复决策

你决定使用特定的模式(例如,“始终使用 server actions,绝不使用 API routes”)。下个会话,Agent 生成了 API routes,因为它不记得你的偏好。

问题 3:丢失 Bug 上下文

你花了 30 分钟调试一个棘手的竞态条件。修复方案需要理解三个相互关联的服务。下个会话,Agent 建议的正是你已经尝试并拒绝过的方案。

问题 4:Token 浪费

每次重新解释都会消耗 Token。如果你使用的是按量计费方案,每天几十次会话中重建上下文的成本会迅速累积。

Claude-Mem 解决了这四个问题。它在后台静默运行,捕捉 Claude 的 行为 (而不仅仅是你的 言语),将这些观察结果压缩成语义摘要,并在每个新会话开始时注入相关的摘要。

4. 工作原理

Claude-Mem 通过 6 个核心组件协同工作,构建出一个无缝的记忆层:

组件功能描述
5 个生命周期钩子SessionStart, UserPromptSubmit, PostToolUse, Stop, SessionEnd — 捕捉每个阶段的事件
智能安装在 hook 运行前执行的缓存依赖检查器(确保 Bun、uv 及相关依赖已就绪)
Worker 服务运行在 37777 端口的 HTTP API,包含 Web 查看器 UI 和 10 个搜索端点,由 Bun 管理
SQLite 数据库在本地存储会话、观察结果和摘要,并支持 FTS5 全文搜索
mem-search 技能支持自然语言查询,并通过渐进式披露检索项目历史
Chroma 向量数据库混合语义 + 关键词搜索,实现智能上下文检索

生命周期流程

以下是典型会话期间发生的过程:

会话生命周期

1. SessionStart Hook
   → Worker 服务启动(如果尚未运行)
   → 检索相关的历史观察结果
   → 将压缩后的上下文注入会话

2. UserPromptSubmit Hook
   → 记录用户的提问内容

3. PostToolUse Hook(在每次工具调用后运行)
   → 捕获工具名称 + 输入 + 输出
   → 使用 AI 压缩观测结果
   → 存储在 SQLite + 向量数据库中

4. Stop Hook
   → 捕获会话暂停事件

5. SessionEnd Hook
   → 生成会话摘要
   → 存储最终上下文快照

这里的核心洞察是 PostToolUse。Claude-Mem 不仅仅记录你的消息 — 它还记录了智能体 所做的操作:读取的文件、编写的代码、运行的测试、遇到的错误。这使得它对项目状态的理解比单纯的对话日志要深刻得多。

5. 渐进式披露

这是 claude-mem 最具创新性的设计模式。它没有将所有记忆全部倾倒进上下文窗口(这会导致 Token 成本飙升),而是使用了一个 三层检索系统

三层渐进式披露模型

第一层:会话引导 (<500 tokens)
   → 轻量级项目摘要
   → 最近会话的关键决策
   → 在 SessionStart 时自动注入

第 2 层:搜索索引 (~50-100 tokens/结果)
   → 紧凑的观察 ID + 标题
   → Agent 在需要更多上下文时进行搜索
   → 足以判断 “这是否相关?”

第 3 层:详细内容 (~500-1000 tokens/结果)
   → 完整的观察内容
   → 仅针对相关的 ID 进行获取
   → Agent 显式请求其所需内容

结果:相比“全量堆凑”的方法,节省了约 10 倍的 token

正是这种架构让 claude-mem 在大规模应用中具有实用性。如果没有渐进式披露,记忆系统要么消耗过多的 token(昂贵且分散注意力),要么检索内容太少(遗漏关键上下文)。Claude-mem's 的三层系统让 Agent 能够自行判断相关性。

6. MCP 搜索工具

Claude-Mem 提供了 4 个 MCP 工具 供 Claude 用于查询其自身记忆:

工具用途Token 消耗
搜索带过滤条件的全文搜索(类型、日期、项目)约 50-100/结果
时间线特定观测结果前后的时间线上下文约 100-200/结果
get_observations通过观测 ID 批量获取完整详情约 500-1000/结果

示例:搜索您的记忆

// Step 1: Search for compact index
search(query="身份验证 bug",
       type="bugfix", limit=10)

// Step 2: Review index, identify relevant IDs
// e.g., observations #123, #456 look relevant

// Step 3: Fetch full details ONLY for those
get_observations(ids=[123, 456])

这种工作流意味着 Claude 只需为其实际需要的 observations 支付 token 成本,而不是数据库中的所有内容。搜索层充当 过滤器,而检索层提供 深度

7. 如何安装

Claude-Mem 提供三种安装方式:

选项 A:npx(推荐)

最快的方式 — 仅需一条命令:

# 为 Claude Code 安装
npx claude-mem install

# 为 Gemini CLI 安装
npx claude-mem install --ide gemini-cli

选项 B:插件市场(Claude Code 内置)

# 添加插件市场
/plugin marketplace add thedotmack/claude-mem

# 安装插件
/plugin install claude-mem

选项 C:OpenClaw Gateway

curl -fsSL https://install.cmem.ai/openclaw.sh | bash

⚠️ 重要提示

npm install -g claude-mem 仅安装 SDK/库 — 它并 不会 注册插件钩子或设置 worker 服务。请务必使用 npx claude-mem install/plugin 命令。

系统要求

要求详情
Node.js18.0.0 或更高版本
Claude Code支持插件的最新版本
BunJavaScript 运行时(如果缺失将自动安装)
uv用于向量搜索的 Python 包管理器(自动安装)
SQLite 3用于持久化存储(已捆绑)

安装完成后,重启 Claude Code 或 Gemini CLI。之前会话的上下文将自动出现在新会话中 — 无需手动干预。

8. 核心功能深度解析

🧠 持久化记忆

核心功能:上下文跨会话持久存在。当你开始新会话时,Claude 已经了解你处理过哪些文件、修复过哪些 bug、做过哪些架构决策以及你偏好的模式。

🖥️ Web 查看器 UI

在浏览器中访问 http://localhost:37777 即可查看实时记忆流。你可以浏览观察结果、搜索历史记录,并监控 claude-mem 正在捕获的内容。查看器还提供对 Beta 功能和版本切换的访问。

🔒 隐私控制

将任何内容包裹在 <private> 标签中即可将其排除在存储之外。API 密钥、凭据、个人信息 — 这些标签内的任何内容都不会被持久化。数据完全保留在你本地机器的 SQLite 中。

🔗 引用

每个观察结果都有一个唯一的 ID。你可以通过 ID 引用过去的观察结果,并通过 http://localhost:37777/api/observation/{id}进行访问。这使得我们可以追溯 准确的 Claude 做出特定决策的原因。

🧪 Beta 频道:无尽模式 (Endless Mode)

实验性的 “无尽模式” 实现了一种 仿生记忆架构 专为持续数小时的长会话设计。它采用了一种不同的压缩策略,可防止在马拉松式的编程会话中出现上下文窗口饱和。您可以通过 Web 查看器 UI 在稳定版和 Beta 版之间进行切换。

⚙️ 上下文配置

设置管理于 ~/.claude-mem/settings.json。您可以配置用于压缩的 AI 模型、Worker 端口、数据目录、日志级别,并对注入上下文的内容和时机进行细粒度控制。

9. 架构概览

Claude-Mem 的架构在多个大版本中经历了显著演进。以下是各组件的协作方式:

CLAUDE-MEM 架构

┌─────────────────────────────────────┐
│          Claude Code 会话          │
│                                     │
│ SessionStart → PostToolUse → End  │
└────────────────┬────────────────────┘
                 │ Hooks
                 ▼
┌─────────────────────────────────────┐
│  Worker 服务 (Bun, 端口 37777)  │
│                                     │
│ ┌──────────┐  ┌──────────────────┐ │
│ │ Web UI   │  │ 10 个 API 端点 │ │
│ └──────────┘  └──────────────────┘ │
└────────────────┬────────────────────┘
                 │
                 ▼
┌─────────────────────────────────────┐
│           存储层            │
│                                     │
│ ┌──────────────┐  ┌──────────────┐│
│ │ SQLite + FTS5 │  │ Chroma VecDB ││
│ │ (结构化)  │  │ (语义化)   ││
│ └──────────────┘  └──────────────┘│
└─────────────────────────────────────┘

双数据库策略

Claude-Mem 同时使用两个数据库:

  • SQLite (配合 FTS5) — 用于结构化查询、精确匹配搜索和基于时间的过滤。快速、本地化、零配置。
  • Chroma 向量数据库 — 用于语义相似度搜索。当 Claude 询问 “我们对身份验证系统做了什么?” 时,即使关键词不完全匹配,Chroma 也能找到概念相关的观察结果。

它们共同提供了 混合搜索:来自 SQLite 的精确匹配以及来自 Chroma 的模糊/语义匹配。这与生产级 RAG 系统所使用的搜索架构模式相同,只是针对本地使用进行了小型化。

10. 社区反响

我们调研了以下平台的讨论: Reddit (r/ClaudeAI, r/ClaudeCode)、Twitter/X 以及技术文章。以下是社区共识:

“空白状态” 杀手

Reddit 上的压倒性观点是:claude-mem 是解决 “空白状态” 问题的最佳方案。用户反馈它 显著减少了 重新解释项目架构的阻力,节省了时间、Token 并减少了挫败感。r/ClaudeCode 上的多个帖子将其描述为 “必备” 插件。

Token 经济辩论

一些用户最初担心 Token 成本 — 一个通过 AI 调用来压缩观察结果的活跃记忆系统本身可能会消耗 Token。社区共识是: 渐进式披露架构 使其收益为正。因无需重新解释上下文而节省的 Token 远超用于记忆压缩所消耗的 Token。

“重型 vs 轻量” 之争

由于 claude-mem 是一个全功能系统(需要 Bun、用于向量搜索的 Python 以及后台工作服务),一些开发者创建了更轻量级的替代方案,例如 claude-mem-lite 以及 memsearch这些工具使用更简单的基于文本的存储,并最大限度地减少了 LLM 调用。社区认为它们是互补的:claude-mem 适用于严肃的、跨越数周的项目,而轻量级工具则适用于快速实验。

工作流集成层

Reddit 上的高级用户将 claude-mem 描述为 基础层 用于自定义工作流。他们在之上构建专门的 “技能” — 将持久化记忆与自定义规则和特定领域知识相结合,从而创建能够深入理解其特定项目的 AI Agent。

社区评价

Claude-Mem 被广泛认为是 AI Agent 持久化记忆的最佳解决方案。主要的批评在于它太 “重” — 一个具有多个依赖项的复杂系统。而反驳的观点是: 记忆是一个难题,而简单的解决方案只能产生简单的结果。

11. 结论:Claude-Mem 值得使用吗?

我们的看法

是的,如果你在多会话项目中使用 Claude Code。 Claude-Mem 是 AI 编程 Agent 的最佳持久化记忆解决方案。渐进式披露架构使其具有极高的 Token 效率,SQLite + Chroma 双重搜索为你提供精确检索和语义检索,而全自动运行则意味着零手动开销。

适用场景:

  • 你的项目跨越多个会话(数天、数周、数月)
  • 你厌倦了在每次会话中重新解释项目架构
  • 你希望 Claude 记住过去的决策、Bug 修复和被否决的方案
  • 你可以接受其依赖占用(Node.js、Bun、用于向量搜索的 Python)

不适用场景:

  • 你只在处理快速、一次性的任务时使用 Claude Code
  • 你更倾向于极简工具,且不希望有任何后台服务
  • 你使用 Cursor 或 Windsurf(claude-mem 仅适用于 Claude Code、Gemini CLI 和 OpenClaw)
  • 一个维护良好的 CLAUDE.md 文件已足以满足你的工作流

12. 替代方案 & 对比

与其他为 AI Agent 提供记忆的方法相比,claude-mem 表现如何?

方案优点缺点
CLAUDE.md (手动)简单、无依赖、完全可控手动维护、无自动捕获、静态
Claude-Mem自动化、语义搜索、渐进式披露、内容丰富配置复杂、需要 Bun + Python、后台服务
claude-mem-lite轻量级、基于文本、依赖更少无语义搜索、压缩方式更简单
自定义脚本完全可定制,无外部依赖万物皆可 DIY,无生态系统支持
内置 Claude Memory零配置,原生集成范围有限,缺乏针对特定项目的持久化

对于大多数从事严肃的多会话项目的开发者来说, claude-mem 提供了最丰富的功能集。对于快速实验或偏好极简工具的开发者, 一个维护良好的 CLAUDE.md 文件 结合一个 skills 文件(例如 Karpathy's skills)可能就足够了。

13. 宏观视角

从无状态到有状态的 Agent

Claude-Mem 代表了我们对 AI 编程 Agent 思考方式的转变。第一代 AI 助手是 无状态的 — 每次交互都是从零开始。而当前这一代,凭借 claude-mem 等工具,正在变得 有状态的 — 能够随着时间的推移不断积累项目知识的 Agent。

这具有深远的影响。一个有状态的智能体不仅仅是编写代码 — 它 理解你的代码库。它知道哪些模式有效,哪些被拒绝了,以及原因。它记得认证系统使用特定的令牌格式是因为过去的迁移限制。它回想起数据库查询需要特定的索引,因为你两周前调试过一个性能问题。

上下文工程生态系统

Claude-Mem 是更广泛的 “上下文工程” 生态系统的一部分,该生态正在迅速成熟:

  • CLAUDE.md / 规则文件 — 静态上下文(项目规范、编码标准)
  • 技能/插件 — 行为准则(比如 Karpathy's 技能文件
  • 记忆插件 — 动态上下文(claude-mem、会话历史)
  • MCP 服务器 — 外部知识(数据库、API、文档)

这些层级结合在一起,创建了 深度定制化 且针对特定项目和开发者的智能体。松散、无结构的 AI 交互的 “氛围编程” 时代正在演变为 “智能体工程” — 一种严谨的实践,其中上下文管理与提示词本身同样重要。

未来展望

在 v12 版本中,claude-mem 已经支持 Claude Code、Gemini CLI 和 OpenClaw 网关。其发展轨迹正指向 通用智能体记忆 — 一个可跨越任何 AI 编程工具、编辑器或平台工作的持久化知识层。$CMEM 代币(一种由社区驱动、并已获得创作者正式接纳的 Solana 代币)预示着在实时智能体数据共享和开发者协作方面更宏大的计划。

14. 常见问题解答

Q: claude-mem 是否支持 Gemini CLI,还是仅支持 Claude Code?

Claude-Mem 同时支持 Claude Code 和 Gemini CLI。使用 'npx claude-mem install --ide gemini-cli' 即可为 Gemini CLI 安装。它还兼容 OpenClaw 网关。

Q: claude-mem 会将我的代码或数据发送到云端吗?

不会。所有数据都存储在本地的 SQLite 数据库中,路径为 ~/.claude-mem/claude-mem.db。任何数据都不会离开您的机器。运行在 37777 端口的 HTTP API 也在本地运行,无需身份验证。

Q: claude-mem 会消耗额外的 token 吗?

它在压缩 observations 时会消耗 token,但其渐进式披露架构意味着净节省。由于无需在不同会话间重复解释上下文,节省的 token 远超压缩成本。

Q: 为什么 worker 无法启动,或者 37777 端口被占用?

使用 'lsof -i :37777' 检查端口占用情况,并使用 'kill -9 $(lsof -t -i:37777)' 终止进程。您也可以在 ~/.claude-mem/settings.json 中修改端口。

Q: claude-mem 和 CLAUDE.md 有什么区别?

CLAUDE.md 是一个由您手动维护、包含项目规范的静态文件。Claude-Mem 则是自动化的——它能动态捕获、压缩并检索上下文。两者互为补充:CLAUDE.md 用于定义规则,claude-mem 用于管理记忆。

Q: 我可以在 Cursor 或 Windsurf 中使用 claude-mem 吗?

不可以。Claude-Mem 是专为 Claude Code 的插件/hooks 系统构建的。它还支持 Gemini CLI 和 OpenClaw 网关,但不支持 Cursor、Windsurf 或其他 IDE。

Q: claude-mem 中的 Endless Mode 是什么?

Endless Mode 是一个 Beta 功能,它为长达数小时的马拉松式编程会话实现了仿生记忆架构。它采用不同的压缩策略来防止上下文窗口饱和。你可以通过 Web Viewer UI 切换到该模式。

15. 所有来源与链接

本文的研究基于 多源研究 涵盖了 GitHub、Reddit、Twitter/X、网络文章以及源代码本身。以下是所有主要来源:

主要来源

社区与社交

  • @Claude_Memory — 官方 X/Twitter 账号
  • Discord 社区 — 官方 Discord 服务器
  • Reddit r/ClaudeAI — 关于 AI 记忆解决方案的社区讨论
  • Reddit r/ClaudeCode — 关于插件架构、Token 管理的技术讨论帖

技术参考

作者

本站相关文章

Sponsored AI assistant. Recommendations may be paid.