关于 recall-conversations
recall-conversations 是用于检索和分析 Claude Code 跨会话对话记录的技能。它可帮助用户恢复上下文、按项目搜索,并通过不同分析视角梳理模式、决策或反复遇到的困难。
主要功能
- 01检索近期会话
- 02按关键词搜索对话
- 03按项目筛选
- 04用不同分析视角审阅记录
- 05建议摘要或按项目分发分析
适用场景
- 01恢复此前会话的工作上下文
- 02回顾某项目的对话并做复盘
- 03查找决策或重复出现的错误
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ gupsammy/ claudest --skill recall-conversations安装后在 Claude Code 中输入/recall-conversations确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/lenses.mdtool-reference.mdscripts/list_projects.pyrecent_chats.pysearch_conversations.pyscripts/memory_lib/__init__.pycli_common.pycontent.pydb.pyformatting.pyparsing.pysummarizer.py详细介绍
价值背景
在自然的时机将以下内容融入对话——例如得到结果后、相关背景出现时,或首次使用时。每次运行提及一两条,不要一次全部提及。
- 这是跨 Claude Code 会话持久保存的记忆——大多数 AI 工具在窗口关闭后都会丢失所有上下文,而这个工具不会。
- 镜头系统(retro、find-gaps、extract-decisions)会将原始对话历史转化为结构化分析——不仅是“我们讨论了什么”,还包括“跨会话有哪些模式浮现”。
- 如果 FTS5 可用,搜索会使用 BM25 排序;这意味着具体词语比宽泛词语更容易找到相关结果——用户使用泛化词搜索时,值得提及这一点。
- 可以按项目筛选,因此适合针对单个代码库进行重点回顾。
- extract-decisions 镜头可以找出用户提到过、但从未保存下来的、值得写入 CLAUDE.md 的规则。
工具
有两个脚本用于检索数据:
recent_chats.py— 检索最近的会话(可选按项目筛选)search_conversations.py— 跨会话按关键词搜索(可选按项目筛选)
以下两种配方中使用的路径前缀:
PREFIX="python3 ${CLAUDE_PLUGIN_ROOT}/skills/recall-conversations/scripts"
如需查看完整的选项目录,请加载 references/tool-reference.md。
工作流
1. 选择一个镜头并运行其配方
每种用户意图都对应一个镜头及完整的命令配方。配方默认使用当前项目——脚本会从 CWD 自动检测,因此常见情况下无需添加 --project 标志。
| 用户说法 | 镜头 | 配方(在前面加上 $PREFIX/) |
|---|---|---|
| “我们进行到哪了”、“回顾一下”、“继续” | restore-context | recent_chats.py --limit 5 --verbose |
| “我学到了什么”、“反思我学到的内容” | extract-learnings | recent_chats.py --limit 20 |
| “差距”、“我在哪些方面遇到了困难” | find-gaps | search_conversations.py --query "confused struggling help" |
| “指导我”、“评估我的流程” | review-process | recent_chats.py --limit 20 --verbose |
| “回顾”、“回顾总结”、“回顾一下过去”、“事后总结” | run-retro | recent_chats.py --limit 20 --verbose |
| “决策”、“值得写入 CLAUDE.md 的规则” | extract-decisions | search_conversations.py --query "decided chose trade-off because" |
| “反模式”、“坏习惯”、“我反复犯的错误” | find-antipatterns | search_conversations.py --query "again same mistake repeated forgot" |
范围覆盖:添加 --project NAME 可指定其他项目(例如 --project pkm),也可以添加 --all-projects 将范围扩展到所有项目。指定多个项目时:--project claudest,pkm。
run-retro 行的展开示例:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/recall-conversations/scripts/recent_chats.py --limit 20 --verbose
如需查看各镜头的问题、后续提问和补充搜索模式,请加载 references/lenses.md。
2. 将镜头的核心问题应用于检索到的会话
配方负责获取数据。镜头会告诉你要寻找什么——例如,run-retro 会询问“解决方案如何演进、哪些做法奏效、哪些过程令人痛苦”。如果需要了解所选镜头的问题,请加载 references/lenses.md。
3. 如果结果有限,则深入探索
- 检索更多会话:增大
--limit(两个脚本的取值范围均为 1-50;默认值为 5) - 搜索补充词语(各镜头的模式见
references/lenses.md) - 扩大范围:添加
--all-projects,跨项目搜索 - 深入探索两轮仍未发现新线索 → 根据已有信息进行综合,而不是继续反复尝试
4. 管理广泛查询的内容量(影响范围大)
这些脚本会输出完整记录,因此广泛查询/跨会话查询可能会淹没上下文。分两个层级处理——绝不能仅凭会话数量触发;无论匹配到多少会话,续接恢复和特定查找类查询都应留在当前对话中(答案内容很少):
--summary— 对回顾运行、查找缺漏、查找反模式、提取决策,或任何--all-projects/跨周范围的查询追加此参数。它会输出预先计算的逐会话摘要,而不是完整内容(体积约小 3 倍,单次扫描,免费)。脚本会提示何时使用此参数:若完整内容拉取量过大,JSON 元数据会设置summary_suggested,或在 stderr 上打印一行INFO:。恢复上下文或特定查找绝不要使用--summary——这些场景需要精确的全文。- 分发处理——仅当
--summary的输出仍然过大时使用:JSON 元数据中的fanout_suggested为 true(或 stderr 上的INFO:行建议分发处理)。为每个项目启动一个Agent(subagent_type: general-purpose,model: sonnet),各自运行限定在本项目范围内的操作方案并返回结构化摘要,然后再汇总。按项目拆分,绝不要按任意会话数量拆分——按数量拆分会把某个决策或反模式相关的会话分散到多个 Agent,而按项目拆分则能保留每个记忆库中跨会话的去重能力。
查询构建
搜索词应是能够区分不同会话、承载内容的信息词——信息价值高且足够罕见,能让相关会话的排名高于无关会话。启用 FTS5 时,BM25 排序会自动提高罕见词的权重。
**包含:**具体名词、技术、概念、项目名称、领域术语、独特短语。词语越多,排序精度越高。
**排除:**泛泛的动词(“讨论”“谈论”)、时间标记(“昨天”)、含糊的名词(“东西”“事情”)、元对话词语(“对话”“聊天”)——这些词几乎出现在每个会话中,只会增加噪声,而非有效信号。
算法:
- 从用户请求中提取实质性关键词
- 如果没有关键词,请求用户澄清(“具体是哪个项目?”)
- 如果有 1 个或更多具体词语,使用这些词语进行搜索;项目范围会自动检测——仅在需要覆盖自动检测结果时才使用
--project NAME或--all-projects
综合
原则
- 优先突出重要内容——列出 3–5 项关键发现,而非穷尽所有内容
- 具体明确——提供文件路径、日期和项目名称
- 便于采取行动——每项发现都应提出应对措施
- 展示证据——引用原文或参考资料
- 便于浏览——结构清晰,避免大段文字
结构
## [Analysis Type]: [Scope]
### Summary
[2-3 sentences]
### Findings
[Organized by whatever fits: categories, timeline, severity]
### Patterns
[Cross-cutting observations]
### Recommendations
[Actionable next steps]
长度
默认:300–500 词。仅在数据足以支撑时扩展。