SuperAPI AI 工具集

distill-sessions

智能体与模型

查看项目

更新于 10-23 16:18

技能介绍

Distill Sessions 是一个面向 AI 编程会话的复盘与改进提案技能。它读取本地会话日志,做只读分析——从不修改日志文件——输出一份带编号的具体改进提案列表,每条发现附一行经过脱敏的原文证据,最后由用户挑选要应用哪些。

日志位置

Claude Code:~/.claude/projects/<slug>/.jsonl(顶层会话)。单个会话的 subagent 记录位于 <uuid>/subagents/agent-.jsonl,统计“会话数”时应跳过,因为它们属于父会话。

Codex:~/.codex/sessions/<year>/<month>/<day>/rollout-*.jsonl。

两者都是 JSONL 格式,每行一个事件。

使用方式

1. 选取最近的 N 个会话

默认 N = 50,用户可指定数量。shell 中可能缺少 date/strftime,用 perl 处理时间戳。示例命令会按修改时间倒序列出最近 50 个会话文件,并排除 subagents 目录。

2. 提取信号(用 jq,不要整文件 cat)

文件很大且充斥工具输出噪声,应使用 jq 按两种 schema 提取:

Claude Code:提取人类输入消息(字符串形式与数组形式)、助手执行的 Bash 命令、工具错误。数组形式需跳过 <command-name>/system-reminder 噪声。

Codex:提取人类消息(第一条是 AGENTS.md 前言,应忽略)、shell 命令、命令输出(grep 错误关键字)。

快速发现纠正类反馈,可对提取出的人类消息做关键词 grep(如 no, actually, that's wrong, don't, stop, instead, revert 等)。

3. 分批并行处理

50 个会话放不进单个上下文。将文件列表按轮询方式拆成约 7 批(让大文件分散),每批派一个子代理并行处理;在允许选择模型的环境下使用更便宜的模型(此步是提取而非判断),每个子代理使用相同的 jq 速查表和任务说明。在安装了本插件的 Claude Code 中,子代理类型为 leek-skills:session-miner:日志只读、跳过项目 CLAUDE.md,并记住此前蒸馏中出现的模式以便标记“重复出现”;其他环境使用现有 harness 提供的任意子代理。每个子代理返回结构化发现列表,编排者跨批次去重并综合。

4. 找什么

目标是改进智能体环境,让未来的运行更顺利。证据视角关注会话中实际发生了什么:

  • 纠正:用户反驳("no"、"actually"、"that's wrong"、"don't do that"、回退/重做)。价值最高,应全部记录。
  • 重复/报错命令:某命令或工具报错,或重试多次才成功,记录最终修复方式。
  • 重复安装配置:同一套安装/配置/环境变量/登录/构建/清缓存步骤在多个会话中被反复发现。
  • 内容素材:值得写成文章、推文、教程、图示、提示词、产品想法或示例的东西。

环境视角关注应改变什么以避免再次发生:

  • 导航:智能体找对文件的难易程度,文件间是否有隐藏依赖,上下文指针是否有帮助。适用于会话花很长时间寻找某条信息时。
  • 自动化检查:linter、类型检查、测试或文件系统检查能否发现该问题。适用于智能体犯了机器可捕获的错误时。
  • 编码规范:评审者是否需要新规则,或现有规则需澄清/删除。适用于评审未能发现错误时。
  • 引导文件:CLAUDE.md / AGENTS.md(仓库或全局)中是否有指令更适合放进编码规范或自动化检查。适用于引导文件庞大难管时。
  • 工具经济性:昂贵或冗长的工具调用能否精简;自定义 CLI 或 MCP 服务器是否 token 效率低。适用于某次调用占用了明显比例的上下文时。
  • 无效指令:引导文件中不改变智能体相对默认行为的指令。适用于引导文件不断膨胀却未精简时。
  • 信息获取:智能体本可拿到缺失的事实吗?开发服务器日志接入、第三方服务只读访问、状态端点等。适用于关键信息完全无法触达时。

5. 脱敏(强制)

每条引用的证据行中,邮箱、API key、token、secret、密码、bearer 字符串一律替换为 [REDACTED],引用保持简短。

6. 输出:带编号的提案列表

每条发现给出:提案、对应的一行原文(脱敏)证据(附会话文件名)、落点、一句话理由。落点可以是:要起草/加入想法库的内容创意;要加入 CLAUDE.md / AGENTS.md 的一行(注明文件);要新增或更新的斜杠命令或技能(注明名称);应自动运行的 hook;应修复的工具或 CLI;配置或设置变更;或 nothing(如果确实是一次性的)。

不改变任何东西,呈现列表让用户选择要应用哪些。先给出跨领域主题(在 3 个以上会话中重复出现的模式价值最高)。

修复应该放在哪里

所有工作经过两个阶段,上下文压力差异很大。实现智能体承担最多:探索、写代码、调试失败。评审者承担最少:它收到一个 diff,无需探索,通常也不写代码。

因此规范属于评审者,而非实现者。像“告诉智能体写代码时总是做 X”这样的提案,几乎总是更适合作为评审规则,因为直到有 diff 可检查时才产生成本。

按成本排序的落点:

  1. CLAUDE.md / AGENTS.md 位于仓库中每个智能体的上下文里,极为节省地使用这些行,主要用于指向其他文件的上下文指针。
  2. 编码规范文档在评审时而非实现时读取,成本低,是大多数规则的合适归宿。
  3. 参考文档在有指针指向之前是免费的。写新文档前先找现有文档。
  4. 技能:若由模型调用,成本为其描述在上下文中的占用;若由用户调用,成本为零。遵循 writing-for-agents。

限制

该技能只做只读分析,不修改日志,也不自动应用改进;所有变更由用户选择。它依赖本地存在 Claude Code 或 Codex 的会话日志,并使用 jq、perl、grep、awk、find 等命令行工具。并行分批与更便宜模型的选择取决于所使用的 harness 是否支持。