关于 local-conversation-history
面向处理本地对话历史的 Agent 路由技能,覆盖 Claude Code、OpenAI Codex 和 Kimi CLI。它根据平台与目标选择专用读取或续作技能,并规定备份检查、索引检索和证据覆盖要求。
主要功能
- 01按平台和用户意图路由
- 02区分证据读取与工作续作
- 03限定跨平台清单和搜索范围
- 04要求续作前验证读取结果
- 05定义只读备份健康检查
适用场景
- 01按主题或引文查找旧对话
- 02查看多个平台的近期会话
- 03检查备份覆盖范围与可恢复性
- 04从已验证的会话继续工作
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ daymade/ claude-code-skills --skill local-conversation-history安装后在 Claude Code 中输入/local-conversation-history确认已加载。
详细介绍
本地对话历史 — 路由器
此技能负责判断哪个技能运行。它本身不解析历史记录,不负责单个提供方的命令,也绝不重新实现执行器已有的功能。如果你开始解释某个提供方的标志,那就说明你用错了技能——请移交处理并停止。
按平台 × 操作路由
对于备份健康状况请求(“我们的对话备份是否正常?”/“历史备份是否正常”),请先阅读负责的备份配置和存储 SOP,再选择历史读取器。如果已安装 git-large-files-storage-setup 这一 Skill,请使用其备份健康状况工作流;否则请遵循现有存储负责方的流程,并报告任何缺失的依赖项。此路由仅供读取。请分别核验提供方/来源覆盖范围、实际备份轮次、目标位置的原始记录、恢复抽样和告警任务。请勿为了检查备份而恢复已暂停的收集器或重建索引。仅在选定原始记录/会话身份核验时使用提供方读取器,不要用对话正文搜索来查找备份任务。账号、机器和凭据路径应保留在用户所属的配置中。
路由前请先确定两件事:对话所在的平台,以及用户想要的是证据(说过/做过什么)还是继续处理(推进工作)。
| 平台 | 读取证据 | 继续工作 |
|---|---|---|
| Claude Code | daymade-claude-code:read-claude-code-history | daymade-claude-code:continue-claude-code-work |
| OpenAI Codex | daymade-claude-code:read-codex-history | daymade-claude-code:continue-codex-work |
| Kimi CLI | read-claude-code-history,并明确指定 Kimi 范围 — 参见 提供方范围 | 不存在继续处理技能 |
继续处理前必须先读取历史记录。继续处理技能需要经过核验的读取回执;未经核验就直接路由到这些技能是缺陷,不是捷径。
如果未说明平台,请区分精确身份信息和对内容的记忆。若提供了完整会话 ID,请先使用 Codex 精确 ID 定位器;如果 Codex 无法核验,再使用 Claude Code 精确会话查询。经过核验的原始记录决定提供方和继续处理技能;ID 前缀不能作为依据。若只有标题、日期、引文或记忆中的主题,请使用下方的清单或内容搜索路由,并在指定提供方前核验原始消息。
提供方范围——此入口路由的任务范围
交接前先说明所需的提供方。清单查询和内容回忆使用不同的执行器;不要假设针对某个提供方的默认设置能覆盖跨提供方请求。
| 跨提供方需求 | 路由至 | 说明此范围 |
|---|---|---|
| 清单查询——“我最近在做什么”“列出我最近的聊天”、会话标题/日期/ID | 可用时查询已编入索引的元数据,然后使用精确会话读取器 | 不要使用 list_local_history.py --source all:它会在读取 Claude 会话正文后才应用日期和输出限制。如果没有已编入索引的清单,请报告此缺口。 |
| 内容搜索——“我们之前讨论过 X 吗”、查找引言、文件或工具结果 | read-claude-code-history、其索引回忆功能,然后使用精确会话读取器 | 选择相关的已编入索引的提供方;检查索引的覆盖范围和新鲜度。仅打开候选会话。 |
| 排名回忆——措辞可能有所变化 | read-claude-code-history、其混合回忆索引 | 索引会注明其中包含哪些提供方;不要推断其覆盖了未编入索引的提供方。 |
索引回忆支持显式筛选 Claude、Codex 和 Kimi 提供方。
优先利用已提供的线索,再进行广泛检索。 如果粘贴的引言已知项目、日期或标题,请使用已编入索引的元数据缩小候选范围,然后核实原始消息。对于 Codex,请遵循 read-codex-history 中的 定位引用内容对应的交流。清单本身无法证明内容匹配;如果候选项不匹配或范围不完整,请报告缺口并优化索引查询。排除当前 Session。若请求仅涉及 ID,则有已核实的消息证据即可,无需重建所有无关对话。
通过索引或已知的确切会话搜索历史记录。 禁止原始扫描每一段对话,包括设置了输出限制或扫描超时的情况。当前原始搜索命令的日期标记是在读取文件后才进行筛选,因此无法限制该命令的搜索范围。如果索引缺失、陈旧或未包含某个提供方,请报告此覆盖缺口;不要退回到语料库扫描。排名靠前的 Top-K 结果不能用于支持“没有相关内容”的结论。
Kimi CLI 在其他任何地方都没有入口——这两个方向都没有专用技能,因此上述两种路由都会指向 read-claude-code-history,其中记录了它自己的 Kimi 主目录解析方式。
由执行器负责精确会话查找、索引提供方筛选、覆盖范围和输出格式。此技能用于指定纳入范围的提供方。
意图决定路由——而不是“历史”这个词
| 用户请求的结果 | 路由 |
|---|---|
| 对话备份是否为最新且可恢复 | 使用上方的备份健康度路由;分别给出提供方/来源和目标位置的判定,并说明覆盖范围和恢复限制 |
| 对话列表:标题、日期、会话 ID | 使用 提供方范围 下的索引清单行;如不可用,请说明缺口 |
| 出现过某个主题、引文、文件或工具结果的对话——“找到那次旧聊天”“我们以前讨论过 X 吗” | 使用 提供方范围 下的索引内容搜索行;先根据提供的线索缩小候选范围。仅列出标题并不能证明内容存在 |
| 按时间顺序逐字查看他们自己的原始输入 | 使用相应读取器的逐字输入路径。保留重复项和会话边界;重复项是记录的一部分,不是噪声 |
| 最近可能停滞的请求——“最近有没有什么事我们忘了完成?”/“最近提过却没推进的事” | 使用 提供方范围 下的索引清单/内容搜索路由,然后使用相应的精确会话读取器。根据当前项目记录核实候选项;仅靠项目注册表无法涵盖未登记的请求 |
| 从已确认的会话继续工作 | 读取之后,使用相应的续接技能 |
用户请求的输出优先于其背景动机。如果有人解释了一个问题,随后要求查看自己某个时间段的原始输入,就返回该时间段的输入——解释中提到的主题线索不会将请求转变为内容搜索。
对于近期未完成工作的请求,检索过程应保持只读。确定所请求的时间范围和相关提供方,检查索引是否为最新,然后仅通过各自负责的读取器打开选定会话。将每个候选项的原始用户请求与最新的相关交接记录或完成证据配对;在判定其尚未完成前,先检查项目当前的决策/状态来源。区分已完成的工作、用户暂停的工作、外部阻碍,以及等待验收的工作。将提醒、助手计划和未完成的参考书签视为线索,而非尚有待履行承诺的证明。报告候选项、下一步操作、证据来源/日期,以及任何尚未解决的覆盖缺口。仅在所请求的清单范围内检索;未经授权,不得恢复旧工作或迁移任务。调用方 Agent 负责进行这项核对;读取器负责检索,且任何机械检查都无法替它们确认现实中的工作是否已完成。
跨路由保持不变的原则
对于记忆中的事实,搜索前先明确具体命题:账户数量、账户用户,以及某个事件的执行身份,是不同的问题。在选定的会话中检查三类证据:用户的直接表述、作为定位线索的助手复述,以及工具先前读过的原始外部记录。助手的引述可以帮你定位来源,但不能取代来源。如果目标是先前读取过的内容,请使用提供方读取器完整的工具证据路径。
当用户说“再搜索一次”时,改变一个具体的搜索维度:来源路径、已索引的提供方/日期/项目范围、字面匹配与语义匹配,或选定会话的原始记录。不要只换几个同义词,仍用相同的排序文本查询来结束重试。说明覆盖范围发生了什么变化。将已找到的子主张与尚未找到的其余部分分开;即使没有找到相关历史措辞,当前用户明确陈述的事实仍具有权威性。保留原始证据值;导出记录时,不要悄悄删改、替换或概述存储的文本。
- 覆盖范围。 查看索引所涵盖的提供方和来源范围,以及其新鲜度边界。超出该范围的归档或提供方属于未知。缺少必需来源时,不能据此声称某事不存在。
- 自我匹配。 当前会话记录了用户的问题和此 Agent 自己的命令,因此几乎任何关于它自身的查询都能匹配到当前会话。在把命中结果当作历史证据之前,先排除当前会话 ID。
- 零结果不代表不存在。 排序式召回可能漏掉措辞不同的内容和未编入索引的记录。说明覆盖范围;不要把空结果说成“从未发生过”。
- 问问某个词是主题的名称,还是你谈论它的方式。 在用户实际说的是「用哪个」和「不要闭门造车」的语料中搜索
技术选型,几乎什么也找不到——实测:真实出现了 163 次,却只命中 10 次,因为中文短语只有在词元边界处才会匹配。搜索某个人的语料时,要搜他们实际说话的方式:祈使句、否定表达和具体场景句,而不是设计文档会给主题起的标签。主题名称的零命中不能支持“不存在”的说法;先扩大搜索范围,纳入那个人可能使用的措辞,并说明你尝试了哪些表达。 - 零结果有三种原因,只有一种是“没有历史记录”。 另外两种是从未找到存储位置,以及搜索范围排除了所有内容;空表无法区分这三种情况。Kimi 最容易遇到这个问题:文档说明的默认存储位置,并非每个安装都会使用的位置——桌面客户端可能会将 CLI 捆绑在自己的运行环境中,并将会话保存在那里;而且 Kimi 的会话属于各自的工作区,因此在其他某个仓库中以默认方式运行,即使存储中有大量对话,也可能什么都找不到。在报告不存在之前,先排除这两种可能:说明实际读取了哪个存储位置,并说明当时启用的项目范围。如果存储位置不存在,清单会打印一行诊断信息;出现时请引用它——但如果已找到存储位置却没有结果,就不会打印诊断信息,而且搜索路径在这两种情况下都不会打印任何内容,因此绝不能把静默的空结果当作读取器确认了不存在。
read-claude-code-history负责定位存储位置,以及确定清单需要哪些范围标志。
不要
- 不要在此处运行提供方专用解析、SQLite、
rg、jq或 JSONL 管道。所有这些都应由执行器处理;执行器已负责处理其存储的架构、归档和故障模式。 - 除了用于指定提供方范围的三个标志(
--source、--codex、--kimi)外,不要将执行器的其他标志复制到此文件中——这三个标志是此技能自身的主题。其他所有标志都会随执行器的更新而变化;在此处复制任何一个,都会导致此文件悄然过时,进而教人使用错误的命令。 - 不要为了回答有关过去的问题而转到延续技能。读取是取证;延续则会改变现状。