mcpField
C
ce-session-extract

ce-session-extract

github.com/everyincAgent 工作流25.8k132 次安装今天更新
代码仓库

关于 ce-session-extract

ce-session-extract 是面向 Agent 的技能,可从 Claude Code、Codex 或 Cursor 会话文件中提取可读摘要或错误信号。脚本负责解析 JSONL 格式,避免将大型会话记录全部载入上下文。

主要功能

  1. 01提取对话骨架
  2. 02提取错误信号
  3. 03合并连续重复的工具调用
  4. 04按行数限制输出
  5. 05报告解析及事件计数

适用场景

  1. 01查看单个会话的对话脉络
  2. 02查找会话中记录的错误
  3. 03限制提取内容以控制上下文

安装

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

$npx skills add https://github.com/everyinc/compound-engineering-plugin --skill ce-session-extract

安装后在 Claude Code 中输入/ce-session-extract确认已加载。

附带文件scripts/extract-errors.pyscripts/extract-skeleton.py

详细介绍

会话摘录

面向 Agent 的基础工具。从单个 Claude Code、Codex 或 Cursor 会话文件中提取经过筛选的内容——可以是对话骨架,也可以是错误信号。

这项技能旨在避免 Agent 将数 MB 的会话文件读入上下文。scripts/ 下的脚本负责处理 JSONL 格式,并生成可读的叙述性摘要。

参数

以空格分隔的位置参数:

  1. <file> — 会话 JSONL 文件的绝对路径(通常是 ce-session-inventory 返回的 file 值)。
  2. <mode> — skeleton 或 errors。
  3. <limit> (可选) — head:N 或 tail:N,将输出限制为 N 行(例如 head:200)。省略则返回完整提取内容。

执行

Skeleton 模式 — 用户消息、助手文本和折叠后的工具调用摘要构成的叙述:

cat <file> | python3 scripts/extract-skeleton.py

Errors 模式 — 仅包含错误信号:

cat <file> | python3 scripts/extract-errors.py

如果 <limit> 为 head:N,则通过 head -n N 处理;如果为 tail:N,则通过 tail -n N 处理。应在 Python 脚本执行后再应用限制,不能提前应用——_meta 行最后输出,使用 head 限制时可能会将其截掉;调用方要求 head 限制时,这可以接受。

原样返回标准输出。不要改述、注释或综合整理——调用方会跨多个会话进行综合。

各模式的返回内容

Skeleton

叙述性输出,每个逻辑事件为一个区块,各区块之间以 --- 分隔:

  • 用户消息(仅文本,不含工具结果,并去除框架包装标签)
  • 助手文本(不含思考/推理区块——这些内容属于内部内容或已加密)
  • 工具调用摘要;连续 3 次以上的同名调用会合并(例如:[tools] 5x Read (file1, file2, +3 more) -> all ok)

末尾为 _meta 行:{"_meta": true, "lines": N, "parse_errors": N, "user": N, "assistant": N, "tool": N}。

Errors

每个错误占一行,各行之间以 --- 分隔:

  • Claude Code:is_error: true 的工具结果
  • Codex:退出码非零或 stderr 非空的 exec_command_end 事件
  • Cursor:始终为空——Cursor Agent 记录不会记录工具结果

末尾为 _meta 行:{"_meta": true, "lines": N, "parse_errors": N, "errors_found": N}。

错误处理

如果无法读取文件,则让错误传递给调用方。如果 _meta 报告 parse_errors > 0,则原样返回输出——部分提取仍然有用,由调用方决定是扩大搜索范围还是进一步深入调查。

评论

支持 Markdown