☰
claude-fable-5-claude-code逐行解析:55个真实会话、17000条Agent轨迹的JSONL结构完全拆解指南
2026/10/17 6:30:29 网站建设 项目流程

【免费下载链接】claude-fable-5-claude-code

项目地址:https://ai.gitcode.com/hf_mirrors/armand0e/claude-fable-5-claude-code
点击查看免费下载

claude-fable-5-claude-code是一个开源的Claude Agent 轨迹数据集:它包含 55 个真实会话、8 个子代理(subagent)轨迹,合计17000+ 行 JSONL 格式的事件记录,完整还原了 claude-fable-5 模型在使用 Bash、Edit、Read 等工具时的思考、决策与执行过程,是蒸馏(distillation)和小模型 Agent 训练的优质原料。

本文带你逐行拆解这套 JSONL 轨迹的完整结构,看完你就能看懂每一行日志在说什么。


一、这是什么数据集?为什么值得研究

一句话概括:每个.jsonl文件 = 一次完整的 Claude 会话录音。

  • 由两个团队合作收集、匿名化后的原始 Agent 轨迹(raw traces),MIT 协议开源
  • 覆盖真实开发场景:建分支、写代码、修 UI、跑测试、调用 MCP 工具……
  • 官方推荐用 teich 包把它转成 OpenAI 风格对话,用于蒸馏训练
  • 文件头部的 YAML 元数据声明了标签:agent-traces、distillation、claude-fable-5等

项目说明与工具 schema 快照都在 README.md 里,README 中附有一份完整的Tool schema snapshot(工具 JSON Schema),列出了 Agent 能调用的全部 40+ 个工具及其参数结构,做训练预处理时非常有用。


二、文件组织:63 个 JSONL,一个文件就是一个会话 📂

打开仓库,你会看到三种文件:

文件数量含义
UUID.jsonl(如 004c0d63-c96f-431d-8cf8-f78ca9367eb5.jsonl)55 个主会话轨迹,文件名就是会话 ID(sessionId)
agent-*.jsonl(如 agent-a68c3d43360a5ed83.jsonl)8 个子代理轨迹,主 Agent 派生的 Task 子任务单独成文件
LFS 指针文件(f956721a-0af7-4bdc-8678-3a493d8fcd39.jsonl)1 个超大轨迹用 Git LFS 存储,本地只有 133 字节的指针

主会话文件大小从 46 KB 到 6.5 MB 不等,对应短问答到超长开发任务;最大的单个 LFS 文件实际有 13.7 MB。

💡 小技巧:wc -l *.jsonl一行命令就能统计出 17237 行——每一行就是一条独立事件,这是 JSONL(JSON Lines)格式的核心约定。


三、JSONL 格式速览:一行 = 一个事件

JSONL 的规则很简单:每行是一个完整且独立的 JSON 对象,行与行之间没有依赖。这对流式处理极其友好——不用把 6 MB 的文件整个读进内存,逐行解析即可。

所有行的关键字段是type,它决定了这行事件的"角色"。我们对全部 17237 行做了统计,共有 12 种行类型:

行类型(type)行数占比作用
assistant704640.9%🤖 Agent 的每一步回复(思考/文字/工具调用)
user443325.7%👤 用户输入 + 工具执行结果的反馈
ai-title9365.4%系统自动生成的会话标题
last-prompt8925.2%记录"最后一条用户提示",用于会话恢复
mode8865.1%会话模式(normal / plan 等)
permission-mode8104.7%当前权限模式
attachment7654.4%附件与延迟工具列表的增量变化
file-history-snapshot5563.2%文件编辑历史快照,用于回滚
queue-operation3522.0%Agent 忙碌时用户排队插入的消息
system3432.0%系统事件(如 hook 执行摘要)
bridge-session1280.7%会话桥接信息(跨端同步 ID)
custom-title870.5%用户手动改的会话标题

下面按重要程度逐个拆解。


四、核心行类型逐行解析

1.assistant行:整个数据集的心脏 💓

这是最值钱的行,一条assistant行记录了 Agent 的一次完整响应。以一个真实样本(004c0d63-c96f-431d-8cf8-f78ca9367eb5.jsonl)为例,字段结构如下:

字段示例值含义
parentUuid578a3132-…父事件 UUID,串起整条对话链
isSidechainfalse是否子代理轨迹(主会话为 false)
message.modelclaude-fable-5产生这条回复的模型
message.content[]见下内容块数组,核心中的核心
message.stop_reasontool_use为何停止:调用工具 / 正常结束等
message.usage见下Token 消耗明细
requestIdreq_011…本次请求 ID
timestamp/gitBranch/cwd2026-06-11…/feat/teich-studio时间、代码分支、工作目录

content 数组里有三种内容块,全库统计:

内容块类型数量说明
tool_use3922🔧 工具调用:工具名 + 参数(如Bash+ 命令)
thinking2202🧠 思考块:thinking文本 +signature签名(原文已做隐私处理)
text928💬 给用户的自然语言回复

usage 字段是蒸馏时做成本/长度分析的好材料,包含input_tokens、cache_read_input_tokens、output_tokens等;stop_reason分布则是:tool_use6462 次(绝大多数回合都在干活)、end_turn340 次、stop_sequence56 次、max_tokens2 次。

2.user行:不只是"你说的话"

新手容易误解:user行并非只有用户打字的内容。它实际承担两种角色:

  1. 真实用户输入:例如某会话开头的原话是"create a new branch feat/teich-studio and move us over there then build out teich studio end to end…"
  2. 工具执行结果回填:Agent 执行了Bash命令后,命令输出会以user行的身份回灌给模型——这就是 Agent 循环(模型 → 工具 → 结果 → 模型)的关键一环

3. 元信息行:标题、模式与恢复点

  • ai-title:系统给会话自动起的标题,如"Build teich studio browser UI and interactive mode"(55 个会话中有 52 个带有此字段)
  • custom-title:用户手动修改后的标题
  • mode/permission-mode:会话所处的模式与权限状态
  • last-prompt:记录最后一条提示和leafUuid,用于中断后恢复会话
  • bridge-session:带bridgeSessionId(如cse_016X…),是跨端/云端桥接会话的同步锚点

4. 系统级行:钩子、快照与排队

  • system:系统事件。典型样本是stop_hook_summary——记录 Agent 停止时触发的 hook 数量、是否阻止了继续执行等
  • attachment:记录延迟加载工具的增量变化(addedNames),比如中途挂载的CronCreate、mcp__Claude_Preview__preview_screenshot等 MCP 工具
  • file-history-snapshot:文件编辑前的历史快照,Agent 改错了可以靠它回滚
  • queue-operation:Agent 还在干活时,用户新发的消息先进队列(enqueue),干完再处理——真实产品里的"插话"机制

5. 子代理轨迹:agent-*.jsonl🕸️

主 Agent 通过Task工具派出子代理并行干活时,子代理的完整轨迹会单独存成一个agent-<agentId>.jsonl文件。识别标志:

  • 每条记录的isSidechain: true(主会话是false)
  • 多了agentId字段

本数据集含 8 个子代理文件,配合主文件中的Task/TaskCreate/TaskUpdate调用记录,可以完整还原"主脑 + 多工人"的协作过程。


五、真实数据画像:Agent 都在干什么 📊

对 17237 行做一次全量统计,得到一份生动的"Agent 工作画像":

模型分布:claude-fable-56990 条,另有<synthetic>56 条(合成的占位消息,做数据清洗时建议过滤)。

工具调用 TOP 8:

工具调用次数用途
Bash1542执行 shell 命令
Edit932精确替换文件内容
Read453读取文件
Write330新建/覆写文件
PowerShell141Windows 环境命令
preview_eval90预览页面内执行 JS
WebSearch72联网搜索
TaskUpdate56更新任务清单

可以看到:约 **80% 的工具调用集中在"命令行 + 文件读写"**上,这正是编码类 Agent 蒸馏最需要学会的能力。会话中cwd字段横跨 Windows / 跨团队机器,说明轨迹来源多样、场景真实。


六、如何把这份数据用起来?

路线一:蒸馏 / 微调训练

README 推荐用 teich 包,它能自动解析 JSONL、过滤掉触顶限制和模型切换等噪声,并内置这套轨迹所用工具的完整 schema:

pip install -U teich
teich extract claude --model fable-5

路线二:直接读日志做分析

只想研究轨迹本身的话,任意能解析 JSON 的语言逐行读取即可,核心逻辑就三步:按type分流 → 用parentUuid重建对话链 → 从assistant.message.content中提取thinking/tool_use/text。


七、新手快速上手:3 条命令开始探索 🚀

git clone https://gitcode.com/hf_mirrors/armand0e/claude-fable-5-claude-code
cd claude-fable-5-claude-code && wc -l *.jsonl
head -c 2000 06ec42c3-2184-40c5-b0ee-98c3235b4c4c.jsonl

建议从最小的 21576682-1c94-4e42-a9d2-0f9e0137ffa7.jsonl(仅 46 KB)读起,再挑战 6 MB 级的长会话;完整工具参数定义见 README.md 的 Tool schema snapshot 章节。


八、总结

要点一句话记忆
文件格式JSONL:一行一个事件,按type字段分流
数据规模55 个会话 + 8 个子代理,共 17237 行
最有价值的行assistant(40.9%):思考 + 工具调用 + 回复
重建对话链靠parentUuid串起每一行
清洗要点过滤<synthetic>模型、hook 噪声与 LFS 指针文件

理解了这套结构,你手中的 55 个会话就不再是黑盒日志,而是一条条可以逐帧回放、批量训练、深度复盘的Agent 行为轨迹。🎯

【免费下载链接】claude-fable-5-claude-code

项目地址:https://ai.gitcode.com/hf_mirrors/armand0e/claude-fable-5-claude-code
点击查看免费下载

相关推荐

上一篇:浏览器录音新姿势:wavesurfer.js Record插件实现实时麦克风波形与录制
下一篇:跨平台KVM革命:Input Leap如何用一套键鼠掌控Windows、macOS、Linux多台设备

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询