解决AI编程助手"金鱼记忆"痛点,实现跨会话上下文无缝衔接,但也需要分场景使用。
在使用 Claude Code 进行项目开发时,你是否遇到过这些困扰:
claude-mem 正是为解决这些问题而生。它是一个专为 Claude Code 构建的持久化内存压缩系统,让 Claude 能够像人类开发者一样,记住项目的"历史",实现真正的跨会话知识连续性。
是一个开源的持久化内存插件,通过自动捕获工具使用观察、生成语义摘要,并将其存储供未来会话检索,从而实现跨会话的上下文保留。
| 特性 | 说明 |
|---|---|
| 目标平台 | Claude Code / OpenCode / Antigravity CLI |
| 核心能力 | 自动记忆、智能检索、渐进式披露 |
| 存储方式 | SQLite 本地持久化 + Chroma 向量数据库 |
| 搜索方式 | MCP 工具 + 自然语言查询 |
| 开源协议 | Apache License 2.0 |
claude-mem 通过 5 个生命周期钩子(SessionStart、UserPromptSubmit、PostToolUse、Stop、SessionEnd)自动捕获会话中的关键信息:
这些信息会被压缩成语义摘要,存储在本地 SQLite 数据库中,下次会话启动时自动注入到 Claude 的上下文中。
claude-mem 采用三层工作流模式,避免一次性将所有历史记录塞进上下文:
|
1 2 3 |
第一层:search → 获取紧凑索引(约 50-100 token/结果) 第二层:timeline → 获取时间顺序上下文 第三层:get_observations → 仅获取筛选后的完整详情(约 500-1000 token/结果) |
优势:通过在获取详情前进行筛选,可节省约 10 倍 token 消耗,同时保证上下文的相关性。
claude-mem 提供了 4 个 MCP 搜索工具:
| 工具 | 功能 |
|---|---|
| search | 使用全文查询搜索内存索引,支持按类型/日期/项目筛选 |
| timeline | 获取特定观察周围的时间顺序上下文 |
| get_observations | 按 ID 批量获取完整观察详情 |
使用示例:
|
1 2 3 4 5 6 7 |
// 步骤1:搜索相关索引 search(query="authentication bug", type="bugfix", limit=10)
// 步骤2:查看时间线,识别相关ID
// 步骤3:获取完整详情 get_observations(ids=[123, 456]) |
使用 <private> 标签包裹敏感信息,claude-mem 会自动排除这部分内容的存储,确保密码、密钥等隐私数据不会进入内存数据库。
启动 worker 服务后,会在终端打印一个本地 URL,你可以通过浏览器实时查看内存流,直观地了解 Claude “记住了什么”。
方式一:命令行安装(推荐)
|
1 2 3 4 5 6 |
# 为 Claude Code 安装 npx claude-mem install # 为 OpenCode 安装 npx claude-mem install --ide opencode # 为 Antigravity CLI 安装 npx claude-mem install --ide antigravity |
方式二:通过插件市场安装
|
1 2 |
/plugin marketplace add thedotmack/claude-mem /plugin install claude-mem |
方式三:OpenClaw Gateway 一键安装
|
1 |
curl -fsSL https://install.cmem.ai/openclaw.sh | bash |
安装完成后,重启 Claude Code。来自先前会话的上下文将自动出现在新会话中,无需任何手动操作。
?? 注意:npm install -g claude-mem 仅安装 SDK/库本身,不会注册插件钩子或设置 worker 服务。请始终通过 npx claude-mem install 或 /plugin 命令进行安装。
配置文件位于 ~/.claude-mem/settings.json,首次运行时自动生成默认设置。
claude-mem 支持多种工作流模式和语言:
|
1 2 3 |
{ "CLAUDE_MEM_MODE": "code--zh" } |
| 模式 | 描述 |
|---|---|
| code | 默认英文模式 |
| code--zh | 简体中文模式 |
| code--ja | 日文模式 |
支持 code--[lang] 格式,其中 [lang] 为 ISO 639-1 语言代码。修改后重启 Claude Code 即可生效。
详细配置请参考。
claude-mem 的架构设计简洁而高效:
|
1 2 3 4 5 6 7 8 9 10 11 |
┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐ │ Claude Code │────→│ 生命周期钩子 │────→│ Worker 服务 │ │ (插件运行时) │ │(6个钩子脚本) │ │ (本地 HTTP API)│ └─────────────────┘ └──────────────┘ └────────┬────────┘ │ ┌─────────────────────┼─────────────────────┐ ↓ ↓ ↓ ┌────────────┐ ┌──────────────┐ ┌──────────────┐ │ SQLite │ │ Chroma │ │ Web 查看器 │ │ (持久存储) │ │ (向量数据库) │ │ (内存流界面) │ └────────────┘ └──────────────┘ └──────────────┘ |
你在开发一个微服务架构项目,已经进行了 20 多次会话。每次新会话,Claude 都能记住:
三天前你修复了一个棘手的并发 Bug,今天类似问题再次出现。通过自然语言搜索 "authentication bug",Claude 能快速定位到之前的修复记录,避免重复踩坑。
团队成员 A 解决了一个配置问题,claude-mem 记录了全过程。团队成员 B 遇到相同问题时,Claude 能直接引用 A 的解决方案,实现团队知识的"自动传承"。
Claude 记得你上周说过"这个项目要用策略模式重构支付模块",当你今天提交新代码时,它能主动提醒是否符合既定的架构方向。
| 问题 | 解决方案 |
|---|---|
| npm : The term 'npm' is not recognized | 确保 Node.js 已安装并添加到 PATH,重启终端 |
| 安装后上下文未保留 | 检查是否正确重启 Claude Code,确认钩子已注册 |
| 搜索无结果 | 确认 worker 服务已启动,检查 settings.json 配置 |
| Windows 特定错误 | 确保 PowerShell 版本 >= 7.x |
遇到问题直接向 Claude 描述,内置的 troubleshoot 技能会自动诊断并提供修复方案。
也可以手动生成 bug 报告:
|
1 2 |
cd ~/.claude/plugins/marketplaces/thedotmack npm run bug-report |
| 方案 | 持久化 | 自动捕获 | 语义搜索 | 渐进式披露 | 隐私控制 |
|---|---|---|---|---|---|
| Claude Code 原生 | ? | ? | ? | ? | ? |
| 手动保存提示词 | ?? | ? | ? | ? | ? |
| claude-mem | ? | ? | ? | ? | ? |
claude-mem 填补了 Claude Code 在持久化上下文方面的空白,让 AI 编程助手从"会话级记忆"跃升到"项目级记忆"。它的核心价值在于:
如果你长期使用 Claude Code 进行项目开发,claude-mem 几乎是必装插件。它让 Claude 真正成为你项目的"长期合伙人",而不是每次都要重新认识的"临时工"。