关于 ce-session-extract
ce-session-extract 是面向 Agent 的技能,可从 Claude Code、Codex 或 Cursor 会话文件中提取可读摘要或错误信号。脚本负责解析 JSONL 格式,避免将大型会话记录全部载入上下文。
主要功能
- 01提取对话骨架
- 02提取错误信号
- 03合并连续重复的工具调用
- 04按行数限制输出
- 05报告解析及事件计数
适用场景
- 01查看单个会话的对话脉络
- 02查找会话中记录的错误
- 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 格式,并生成可读的叙述性摘要。
参数
以空格分隔的位置参数:
<file>— 会话 JSONL 文件的绝对路径(通常是ce-session-inventory返回的file值)。<mode>—skeleton或errors。<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,则原样返回输出——部分提取仍然有用,由调用方决定是扩大搜索范围还是进一步深入调查。