Claude-Mem 记忆搜索深度指南:8 种工具 + 实战技巧
TL;DR
Claude-Mem 提供 8 种搜索工具,覆盖全文搜索、过滤搜索、上下文检索三大类。本文深入讲解每种工具的参数、使用场景和实战技巧,帮你从"会用"升级到"用好"。
一、为什么需要深度掌握搜索
之前的入门教程讲了"用自然语言搜索"。但当你的记忆库积累到几百条记录时,模糊搜索就不够用了。
你需要精准控制:
- 搜什么:只搜 bug?只搜决策?只搜某个文件相关?
- 搜多少:返回 3 条还是 50 条?
- 怎么省:如何用最少的 Token 获取最有价值的信息?
这就是本文要解决的问题。
二、8 种搜索工具全览
Claude-Mem 的搜索系统基于 HTTP API,运行在本地 37777 端口。所有查询通过 mem-search 技能自动调用,你只需用自然语言描述需求。

2.1 工具分类
类别
工具
用途
全文搜索
search observations
搜索所有观察记录
search sessions
搜索会话摘要
search prompts
搜索原始用户提示词
过滤搜索
by-type
按类型过滤(bug/feature/decision)
by-concept
按概念标签过滤
by-file
按文件名过滤
上下文检索
recent context
获取最近会话上下文
timeline
获取时间线上下文
三、全文搜索详解
3.1 搜索观察记录(Search Observations)
这是最常用的搜索。观察记录包含:bug 修复、功能实现、架构决策、代码发现等。
基础用法:
"搜索关于认证的观察记录"
带参数:
"搜索认证相关,只要 bugfix 类型,最近 5 条"
实际 API 调用:
curl "http://localhost:37777/api/search/observations?query=认证&type=bugfix&limit=5"
返回格式(索引模式):
| ID | Time | Type | Title | Tokens |
|----|------|------|-------|--------|
| #1234 | 12:30 PM | bugfix | 修复JWT过期问题 | ~150 |
| #1198 | 11:45 AM | bugfix | 解决登录状态丢失 | ~120 |
为什么先返回索引?
这是 Claude-Mem 的核心设计理念——渐进式披露。
先给你一个"书单"(~50 token/条),你选中感兴趣的,再获取"全书"(~500 token/条)。省 10 倍资源。
3.2 搜索会话(Search Sessions)
会话是更高层级的摘要。一个会话可能包含几十条观察记录。
适用场景:
- "上周我们讨论了什么主题?"
- "这个项目的开发历程是什么?"
用法:
"搜索包含数据库迁移的会话"
与 observations 的区别:
维度
Observations
Sessions
粒度
单条记录(一个 bug、一个决策)
整个对话(几十条记录的摘要)
适用
找具体细节
找宏观脉络
Token
~150/条
~300/条
3.3 搜索提示词(Search Prompts)
搜索你曾经问过 Claude 的原始问题。
适用场景:
- "我之前怎么问的那个问题?"
- "找到那个关于性能优化的提问"
用法:
"搜索我之前关于 PostgreSQL 的提问"
四、过滤搜索详解
当你明确知道要找什么类型的内容时,过滤搜索比全文搜索更精准、更省 Token。
4.1 按类型过滤(By-Type)
Claude-Mem 自动给每条记录打标签。常见类型:
类型
含义
示例
bugfix
Bug 修复
修复了空指针异常
feature
新功能
实现了用户注册
decision
架构决策
选择 PostgreSQL 而非 MySQL
discovery
代码发现
发现了性能瓶颈
refactor
重构
提取公共方法
change
代码变更
更新了配置文件
用法:
"显示所有 decision 类型的记录"
"最近 10 条 bugfix"
为什么要用类型过滤?
假设你记忆库有 500 条记录,其中只有 30 条是架构决策。
- 全文搜索"架构":可能返回 100 条包含"架构"这个词的记录
- 类型过滤
decision:精准返回那 30 条决策记录
信噪比完全不同。
4.2 按概念过滤(By-Concept)
概念是比类型更细粒度的标签。
常见概念:
- authentication:认证相关
- performance:性能相关
- security:安全相关
- database:数据库相关
用法:
"搜索 security 概念相关的所有记录"
4.3 按文件过滤(By-File)
当你想知道某个文件的修改历史时,这个最有用。
用法:
"显示所有关于 auth.ts 的修改记录"
"worker-service.ts 的历史变更"
返回内容:
- 这个文件被修改的所有观察记录
- 每次修改的原因和内容
- 相关的 bug 修复和功能实现
五、上下文检索详解
5.1 最近上下文(Recent Context)
获取最近几个会话的上下文摘要。
适用场景:
- 新开一个会话,想快速回顾昨天的进度
- 接手别人的项目,想了解最近在做什么
用法:
"获取最近的上下文"
"显示最近 3 个会话的摘要"
5.2 时间线(Timeline)
以某个时间点或某条记录为锚点,获取前后的上下文。
适用场景:
- "那个 bug 修复前后发生了什么?"
- "这个决策是基于什么讨论做出的?"
用法:
"显示 #1234 前后的时间线"
"那个认证 bug 发生时的上下文"
时间线的价值:
单独看一条记录,你只知道"修复了登录 bug"。
看时间线,你能知道:
1. 这个 bug 是什么时候发现的
2. 之前尝试了哪些方案
3. 最终为什么选择这个方案
4. 修复后又做了什么验证
六、Token 优化策略
6.1 上下文的代价
每次搜索都会消耗 Token。Claude 的"注意力"是有限的。
返回格式
Token 消耗
适用场景
索引模式
~50/条
初步筛选
摘要模式
~150/条
快速浏览
完整模式
~500/条
深入理解
黄金法则:先索引,后详情。
❌ "显示所有 bug 修复的完整内容" // 可能消耗 25000 token
✅ "显示最近 5 条 bug 修复" // ~750 token
✅ "展开 #1234 的详情" // ~500 token
6.2 渐进式披露实战
第一步:索引筛选
"搜索认证相关的记录,最近 10 条"
第二步:选择目标
看返回的索引,找到感兴趣的 ID。
第三步:获取详情
"展开 #1234 和 #1198 的详情"
第四步:基于详情行动
"参考 #1234 的方案,帮我修复当前的认证问题"
6.3 上下文腐烂问题
Claude 的准确度会随着上下文长度增加而下降。这不是 bug,是 LLM 的固有特性。
原因:
- Token 之间的关系是 n² 复杂度
- 长上下文训练数据有限
- 注意力机制有衰减
应对策略:
1. 压缩:定期总结历史,删除冗余
2. 分批:不要一次加载太多
3. 精准:用过滤搜索代替模糊搜索
七、高级技巧
7.1 组合搜索
同时使用多个过滤条件:
"搜索上周关于支付模块的 bugfix,只要涉及 payment.ts 的"
这相当于:
- 时间过滤:上周
- 类型过滤:bugfix
- 文件过滤:payment.ts
- 关键词:支付模块
7.2 对比分析
利用时间线功能对比不同时期的决策:
"对比 12 月初和现在关于数据库选择的讨论"
7.3 知识图谱构建
通过概念搜索,构建项目的知识图谱:
"显示所有 security 概念的记录,按时间排序"
这样你能看到安全相关的决策演进历程。
7.4 错误复盘
结合 bugfix 类型和时间线,复盘问题的发现和解决过程:
"显示 #1234 这个 bug 的完整时间线,从发现到解决"
八、中文版项目
如果你希望使用中文优化版的 Claude-Mem,可以访问社区中文版项目:
GitHub 地址:https://github.com/cfrs2005/claude-mem
中文版特点:
- 中文文档和注释
- 针对中文分词优化
- 社区维护和支持
九、常见问题
Q:搜索结果太多怎么办?
A:添加过滤条件。依次尝试:时间范围 → 类型 → 概念 → 文件。
Q:搜索结果不准确怎么办?
A:换关键词。"登录问题" → "认证失败" → "JWT 过期"。不同表达匹配不同记录。
Q:如何知道有哪些可用的类型和概念?
A:
"显示所有可用的记录类型"
"显示所有概念标签"
Q:能搜索代码片段吗?
A:能。Claude-Mem 会记录对话中出现的代码。搜"那段处理用户输入的代码"。
十、小结
场景
推荐工具
示例
找具体细节
search observations
"认证 bug 怎么修的"
找宏观脉络
search sessions
"上周做了什么"
找某类记录
by-type
"所有架构决策"
找某文件历史
by-file
"auth.ts 的修改记录"
快速回顾
recent context
"最近在做什么"
理解来龙去脉
timeline
"#1234 前后发生了什么"
核心心法:
1. 先索引后详情,省 10 倍 Token
2. 过滤搜索比全文搜索更精准
3. 时间线帮你理解决策的来龙去脉