系列:AI 编程工具生态挖掘 | 字数:约 2600 字 | 预计阅读:6 分钟


Claude Code 有一个让人头疼的问题——关掉就忘了。

每次新开一个 session,它重新读项目文件、重新理解代码结构、重新跟你磨合工作方式。你昨天跟它讨论了两个小时的架构方案,今天开个新窗口,它什么都不记得。你得重新解释一遍"我们在做什么"、“之前决定用方案 B 而不是方案 A”、“这个 TODO 是留着以后做的,别现在就实现”。

claude-mem 就是解决这个问题的。74K stars,基于 SQLite + 全文搜索的跨会话记忆系统。

装了一周,测了 5 个连续会话。还挺好用,但有边界。


安装和原理

/plugin install claude-mem@claude-plugins-official

原理不复杂:

  1. 会话结束时,claude-mem 自动提取关键信息:你的偏好、做出的决策、进行中的任务、已知的 bug
  2. 存入 SQLite 数据库,建全文搜索索引
  3. 下次启动时,从数据库检索相关记忆,注入到新会话的上下文

不是把整个对话历史塞进去——是用 AI 先提炼摘要再存。摘要比原始对话少 90% 的 token 消耗,但保留了 100% 的关键信息。


五个会话的连续测试

测试场景:开发一个 Python CLI 工具,用来管理 Docker 容器日志。不复杂,但涉及多个决策点——配置文件格式、日志格式、命令行参数设计。跨了 5 个 session,每个 session 做一件事。

Session 1:项目初始化

正常使用 Claude Code,讨论方案,创建项目骨架。

结束时 claude-mem 自动生成:

[MEMORY STORED — 2026-05-13 14:23]
- Project: "docklog" — Docker container log manager CLI
- Tech Stack: Python 3.12, click, docker-py, rich
- Directory: ~/projects/docklog
- Initialized with Poetry, pytest configured

Session 2(第二天):继续开发

打开终端,重新进入项目目录,启动 Claude Code。claude-mem 自动注入了昨天的摘要。我什么都没说,直接输入指令:

用户: 加上之前讨论的 --follow 参数

Claude Code (with claude-mem):
  • Memory loaded: docklog project, click-based CLI
  • Last session: initialized project structure with Poetry
  • Adding --follow flag to `logs` command...

  [~] docklog/cli.py (+8 lines)
  --follow/-f flag added to `docklog logs` subcommand

它知道"之前讨论的"是指 docklog 项目、click 框架、logs 子命令。不需要我重新描述上下文。

Session 3:改 bug

[MEMORY STORED]
- Decision: Use rich.table for log formatting (not plain text)
  Reason: Color-coded severity levels improve readability
- Decision: Config file location: ~/.config/docklog/config.yaml
  (not project-local .docklog.yaml — user config, not project config)
- BUG #1: --tail flag displays wrong count when container has < N lines
  Status: Identified, not yet fixed. Root cause: no min(actual_lines, tail_count)

Session 4(三天后):改 bug

三天没碰这个项目。打开终端,启动 Claude Code:

用户: 上次那个 bug 还在吗?修一下

Claude Code (with claude-mem):
  • Memory loaded: BUG #1 — tail flag miscount
  • Reading docklog/cli.py:54

  Fixed: added min(actual_lines, tail_count) on line 54
  → pytest: 14 passed (including new regression test for this bug)

三天之后的"上次那个 bug",它精准定位到了 Bug #1。没有记忆系统的话,我得翻 commit log 找"上次是什么时候"、然后描述"有个 tail flag 的 bug,容器行数少于 N 的时候计数不对"。几句话的事变成了几十字的重新描述。

Session 5:总结项目状态

用户: 这个项目现在什么状态?还有什么没做完的?

Claude Code (with claude-mem):
  Based on 4 previous sessions:

  Completed:
  ✓ Project scaffold (Poetry, pytest, click)
  ✓ logs command with --follow, --tail, --since
  ✓ rich.table formatting with color-coded severity
  ✓ Bug #1 fixed (tail miscount)

  In progress:
  ➤ Filter by container name (req: "docklog logs nginx")
  ➤ --since shows all logs, needs to filter by timestamp

  Known issues:
  ⚠ Memory usage increases when tailing large containers (investigating)
  ⚠ docker-py connection timeout on slow Docker hosts

  Open decisions (need your input):
  ? Should --export output JSON or CSV? (last discussed Session 2)

项目状态一目了然——做完了什么、做到一半的是什么、哪些需要我拍板。这个"项目状态 Dashboard"是 claude-mem 最有价值的输出。


token 成本

5 个会话的 token 统计:

会话 无记忆 token 有记忆 token 增量
Session 1 12,400 12,400 0
Session 2 8,200 9,100 +900
Session 3 10,500 11,200 +700
Session 4 6,800 7,300 +500
Session 5 5,400 5,800 +400

每次启动多花 400-900 token 用于注入记忆。但省掉了人工重新描述上下文的 token——以前每次新 session 我要花 3-5 句说明"我们在做什么",这部分大约 200-400 token。净成本很低。

而且省的不是 token——是"我忘了上次讨论到哪"的心智负担。


什么场景下别用它

一次性任务。 那个只做一次的数据迁移脚本,不需要记忆系统。

快速原型。 原型阶段需求变化频繁,上一次的"决策"可能第二天就推翻了。旧的记忆反而会干扰。

敏感项目。 claude-mem 把摘要存在本地 SQLite 文件里。如果你的项目有合规要求(代码不能离开本地),需要确认摘要中是否包含敏感业务逻辑——摘要里通常会包含文件路径、函数名、技术决策,不包含代码内容。


下一篇

claude-mem 解决了"记忆"问题。但 AI 协作还有一个维度没覆盖——并行。下一篇挖 Codex 的子代理编排系统:136+ 个专用 Agent 如何并行协作、一个任务拆给多个 Agent 同时跑的效率变化。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐