开始使用 Claude-Mem¶
自动运行¶
Claude-Mem 安装后即可自动运行。无需手动干预!
完整流程¶
- 启动 Claude Code - 最近 10 个会话的上下文会自动出现
- 正常工作 - 每一次工具执行都会被捕获
- Claude 完成响应 - Stop hook 自动生成并保存摘要
- 下一次会话 - 之前的工作会出现在上下文中
捕获内容¶
每次 Claude 使用工具时,claude-mem 都会捕获它:
- Read - 文件读取与内容访问
- Write - 新建文件
- Edit - 文件修改
- Bash - 命令执行
- Glob - 文件模式搜索
- Grep - 内容搜索
- 以及所有其他 Claude Code 工具
处理内容¶
Worker Service 处理工具观测记录并提取:
- Title - 所发生事件的简要描述
- Subtitle - 附加上下文
- Narrative - 详细说明
- Facts - 关键经验(以要点形式)
- Concepts - 相关标签和分类
- Type - 分类(decision、bugfix、feature 等)
- Files - 读取或修改了哪些文件
会话摘要¶
当 Claude 完成响应(触发 Stop hook)时,会自动生成摘要,包含:
- Request - 你的请求内容
- Investigated - Claude 探索的内容
- Learned - 关键发现与洞察
- Completed - 已完成的工作
- Next Steps - 后续步骤
- Notes - 其他值得保留的内容
上下文注入¶
当你启动新的 Claude Code 会话时,SessionStart hook:
- 查询数据库中你项目里的近期观测记录(默认:50 条)
- 获取近期的会话摘要作为上下文
- 在带有会话标记的时间线上按时间顺序显示观测记录
- 仅当摘要是在最后一条观测记录之后生成时,才显示完整的摘要详情(Investigated、Learned、Completed、Next Steps、Notes)
- 将格式化后的上下文注入 Claude 的初始上下文
摘要显示逻辑:
最近一次摘要的完整详情会在上下文显示末尾出现,仅当该摘要在最近一条观测记录之后生成时才如此。这可以确保当摘要代表项目的最新状态时你能看到详情,但如果自上次摘要以来又捕获了新的观测记录,则不会显示。
例如:
- ✅ 显示摘要:最后一条观测记录于下午 2:00,摘要于 2:05 生成 → 显示摘要详情
- ❌ 隐藏摘要:摘要于下午 2:00 生成,新的观测记录于 2:05 → 隐藏摘要详情(已过期)
这样可以避免在新工作已被捕获但尚未汇总时显示过时的摘要。
这意味着 Claude 会“记住”之前会话中发生的事情!
手动命令(可选)¶
Worker 管理¶
Worker 会在首次触发 SessionStart hook 时自动启动,因此你通常不需要这些命令。它们用于诊断时很方便。
# Start worker service (optional - auto-starts automatically)
npm run worker:start
# Stop worker service
npm run worker:stop
# Restart worker service
npm run worker:restart
# View worker logs
npm run worker:logs
# Check worker status
npm run worker:status
测试¶
# Run all tests
npm test
# Test context injection
npm run test:context
# Verbose context test
npm run test:context:verbose
开发¶
# Build hooks and worker
npm run build
# Build only hooks
npm run build:hooks
# Publish to NPM (maintainers only)
npm run publish:npm
查看已存储的上下文¶
上下文存储在 SQLite 数据库中,位置为 ~/.claude-mem/claude-mem.db。
直接查询数据库:
# Open database
sqlite3 ~/.claude-mem/claude-mem.db
# View recent sessions
SELECT session_id, project, created_at, status
FROM sdk_sessions
ORDER BY created_at DESC
LIMIT 10;
# View session summaries
SELECT session_id, request, completed, learned
FROM session_summaries
ORDER BY created_at DESC
LIMIT 5;
# View observations for a session
SELECT tool_name, created_at
FROM observations
WHERE session_id = 'YOUR_SESSION_ID';
理解渐进式披露¶
上下文注入采用渐进式披露来高效使用 token:
第 1 层:索引显示(会话开始)¶
- 显示观测记录标题及 token 成本估算
- 在时间线上按时间顺序显示会话标记
- 按文件对观测记录进行分组,以保持视觉清晰
- 仅当摘要是在最后一条观测记录之后生成时,才显示完整摘要详情
- 索引视图的 token 成本:约 50-200 tokens
第 2 层:按需详情(MCP 工具)¶
- 自然提问:“我们修复了哪些 bug?”或“我们是如何实现 X 的?”
- Claude 自动调用 MCP 搜索工具获取完整详情
- 按概念、文件、类型或关键词搜索
- 围绕特定观测记录的时间线上下文
- 每条观测记录的获取成本:约 100-500 tokens
- 使用三层工作流:search → timeline → get_observations
第 3 层:完美回忆(代码访问)¶
- 需要时直接读取源代码文件
- 访问原始记录和原始数据
- 按需提供完整上下文
这确保了高效的 token 使用,同时在需要时仍能访问完整的历史记录。
多 Prompt 会话与 /clear 行为¶
Claude-Mem 支持跨越多个用户 Prompt 的会话:
- prompt_counter:跟踪会话中的 Prompt 总数
- prompt_number:标识会话中的特定 Prompt
- 会话连续性:观测记录和摘要跨越多个 Prompt 进行关联
关于 /clear 的重要说明¶
当你使用 /clear 时,会话不会结束——它将继续以新的 Prompt 编号运行。这意味着:
- ✅ 上下文会被重新注入:从近期会话重新注入(SessionStart hook 以
source: "clear"触发) - ✅ 观测记录仍会被捕获,并添加到当前会话中
- ✅ 会生成摘要:当 Claude 完成响应时(Stop hook 触发)
/clear 命令会清除 Claude 可见的对话上下文,并从近期会话中重新注入新的上下文,而底层会话会继续跟踪观测记录。
搜索你的历史记录¶
Claude-Mem 提供了用于查询项目历史的 MCP 工具。只需自然地提问:
"What bugs did we fix last session?"
"How did we implement authentication?"
"What changes were made to worker-service.ts?"
"Show me recent work on this project"
Claude 会自动识别你的意图并调用 MCP 搜索工具,这些工具采用三层工作流(search → timeline → get_observations)以实现高效的 Token 使用。
后续步骤¶
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/claude-mem