mcpField
R
recall-conversations

recall-conversations

github.com/gupsammyAgent 工作流27637 次安装5 天前更新
代码仓库

关于 recall-conversations

recall-conversations 是用于检索和分析 Claude Code 跨会话对话记录的技能。它可帮助用户恢复上下文、按项目搜索,并通过不同分析视角梳理模式、决策或反复遇到的困难。

主要功能

  1. 01检索近期会话
  2. 02按关键词搜索对话
  3. 03按项目筛选
  4. 04用不同分析视角审阅记录
  5. 05建议摘要或按项目分发分析

适用场景

  1. 01恢复此前会话的工作上下文
  2. 02回顾某项目的对话并做复盘
  3. 03查找决策或重复出现的错误

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/gupsammy/claudest --skill recall-conversations

安装后在 Claude Code 中输入/recall-conversations确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
lenses.md
tool-reference.md
scripts/
list_projects.py
recent_chats.py
search_conversations.py
scripts/memory_lib/
__init__.py
cli_common.py
content.py
db.py
formatting.py
parsing.py
summarizer.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-contextrecent_chats.py --limit 5 --verbose
“我学到了什么”、“反思我学到的内容”extract-learningsrecent_chats.py --limit 20
“差距”、“我在哪些方面遇到了困难”find-gapssearch_conversations.py --query "confused struggling help"
“指导我”、“评估我的流程”review-processrecent_chats.py --limit 20 --verbose
“回顾”、“回顾总结”、“回顾一下过去”、“事后总结”run-retrorecent_chats.py --limit 20 --verbose
“决策”、“值得写入 CLAUDE.md 的规则”extract-decisionssearch_conversations.py --query "decided chose trade-off because"
“反模式”、“坏习惯”、“我反复犯的错误”find-antipatternssearch_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. 管理广泛查询的内容量(影响范围大)

这些脚本会输出完整记录,因此广泛查询/跨会话查询可能会淹没上下文。分两个层级处理——绝不能仅凭会话数量触发;无论匹配到多少会话,续接恢复和特定查找类查询都应留在当前对话中(答案内容很少):

  1. --summary — 对回顾运行、查找缺漏、查找反模式、提取决策,或任何 --all-projects/跨周范围的查询追加此参数。它会输出预先计算的逐会话摘要,而不是完整内容(体积约小 3 倍,单次扫描,免费)。脚本会提示何时使用此参数:若完整内容拉取量过大,JSON 元数据会设置 summary_suggested,或在 stderr 上打印一行 INFO:。恢复上下文或特定查找绝不要使用 --summary——这些场景需要精确的全文。
  2. 分发处理——仅当 --summary 的输出仍然过大时使用:JSON 元数据中的 fanout_suggested 为 true(或 stderr 上的 INFO: 行建议分发处理)。为每个项目启动一个 Agent(subagent_type: general-purpose,model: sonnet),各自运行限定在本项目范围内的操作方案并返回结构化摘要,然后再汇总。按项目拆分,绝不要按任意会话数量拆分——按数量拆分会把某个决策或反模式相关的会话分散到多个 Agent,而按项目拆分则能保留每个记忆库中跨会话的去重能力。

查询构建

搜索词应是能够区分不同会话、承载内容的信息词——信息价值高且足够罕见,能让相关会话的排名高于无关会话。启用 FTS5 时,BM25 排序会自动提高罕见词的权重。

**包含:**具体名词、技术、概念、项目名称、领域术语、独特短语。词语越多,排序精度越高。

**排除:**泛泛的动词(“讨论”“谈论”)、时间标记(“昨天”)、含糊的名词(“东西”“事情”)、元对话词语(“对话”“聊天”)——这些词几乎出现在每个会话中,只会增加噪声,而非有效信号。

算法:

  1. 从用户请求中提取实质性关键词
  2. 如果没有关键词,请求用户澄清(“具体是哪个项目?”)
  3. 如果有 1 个或更多具体词语,使用这些词语进行搜索;项目范围会自动检测——仅在需要覆盖自动检测结果时才使用 --project NAME 或 --all-projects

综合

原则
  1. 优先突出重要内容——列出 3–5 项关键发现,而非穷尽所有内容
  2. 具体明确——提供文件路径、日期和项目名称
  3. 便于采取行动——每项发现都应提出应对措施
  4. 展示证据——引用原文或参考资料
  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 词。仅在数据足以支撑时扩展。

评论

支持 Markdown