【免费下载链接】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) | 行数 | 占比 | 作用 |
|---|---|---|---|
assistant | 7046 | 40.9% | 🤖 Agent 的每一步回复(思考/文字/工具调用) |
user | 4433 | 25.7% | 👤 用户输入 + 工具执行结果的反馈 |
ai-title | 936 | 5.4% | 系统自动生成的会话标题 |
last-prompt | 892 | 5.2% | 记录"最后一条用户提示",用于会话恢复 |
mode | 886 | 5.1% | 会话模式(normal / plan 等) |
permission-mode | 810 | 4.7% | 当前权限模式 |
attachment | 765 | 4.4% | 附件与延迟工具列表的增量变化 |
file-history-snapshot | 556 | 3.2% | 文件编辑历史快照,用于回滚 |
queue-operation | 352 | 2.0% | Agent 忙碌时用户排队插入的消息 |
system | 343 | 2.0% | 系统事件(如 hook 执行摘要) |
bridge-session | 128 | 0.7% | 会话桥接信息(跨端同步 ID) |
custom-title | 87 | 0.5% | 用户手动改的会话标题 |
下面按重要程度逐个拆解。
四、核心行类型逐行解析
1.assistant行:整个数据集的心脏 💓
这是最值钱的行,一条assistant行记录了 Agent 的一次完整响应。以一个真实样本(004c0d63-c96f-431d-8cf8-f78ca9367eb5.jsonl)为例,字段结构如下:
| 字段 | 示例值 | 含义 |
|---|---|---|
parentUuid | 578a3132-… | 父事件 UUID,串起整条对话链 |
isSidechain | false | 是否子代理轨迹(主会话为 false) |
message.model | claude-fable-5 | 产生这条回复的模型 |
message.content[] | 见下 | 内容块数组,核心中的核心 |
message.stop_reason | tool_use | 为何停止:调用工具 / 正常结束等 |
message.usage | 见下 | Token 消耗明细 |
requestId | req_011… | 本次请求 ID |
timestamp/gitBranch/cwd | 2026-06-11…/feat/teich-studio | 时间、代码分支、工作目录 |
content 数组里有三种内容块,全库统计:
| 内容块类型 | 数量 | 说明 |
|---|---|---|
tool_use | 3922 | 🔧 工具调用:工具名 + 参数(如Bash+ 命令) |
thinking | 2202 | 🧠 思考块:thinking文本 +signature签名(原文已做隐私处理) |
text | 928 | 💬 给用户的自然语言回复 |
usage 字段是蒸馏时做成本/长度分析的好材料,包含input_tokens、cache_read_input_tokens、output_tokens等;stop_reason分布则是:tool_use6462 次(绝大多数回合都在干活)、end_turn340 次、stop_sequence56 次、max_tokens2 次。
2.user行:不只是"你说的话"
新手容易误解:user行并非只有用户打字的内容。它实际承担两种角色:
- 真实用户输入:例如某会话开头的原话是"create a new branch feat/teich-studio and move us over there then build out teich studio end to end…"
- 工具执行结果回填: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:
| 工具 | 调用次数 | 用途 |
|---|---|---|
Bash | 1542 | 执行 shell 命令 |
Edit | 932 | 精确替换文件内容 |
Read | 453 | 读取文件 |
Write | 330 | 新建/覆写文件 |
PowerShell | 141 | Windows 环境命令 |
preview_eval | 90 | 预览页面内执行 JS |
WebSearch | 72 | 联网搜索 |
TaskUpdate | 56 | 更新任务清单 |
可以看到:约 **80% 的工具调用集中在"命令行 + 文件读写"**上,这正是编码类 Agent 蒸馏最需要学会的能力。会话中cwd字段横跨 Windows / 跨团队机器,说明轨迹来源多样、场景真实。
六、如何把这份数据用起来?
路线一:蒸馏 / 微调训练
README 推荐用 teich 包,它能自动解析 JSONL、过滤掉触顶限制和模型切换等噪声,并内置这套轨迹所用工具的完整 schema:
pip install -U teichteich 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-codecd claude-fable-5-claude-code && wc -l *.jsonlhead -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
相关推荐
三查清单 + 完整部署路径:openpilot 智能驾驶免费装进 300 多款车型
三查清单 + 完整部署路径:openpilot 智能驾驶免费装进 300 多款车型 早高峰的车流停在匝道前,前车怠速蠕行两分钟,你的手在方向盘和换挡杆之间机械地
Podman `--publish-all`(`-P`)选项深度指南:将容器全部暴露端口随机映射到宿主机
Podman publish all ( P )选项深度指南:将容器全部暴露端口随机映射到宿主机 publish all (短选项 P )是 Podman 在
Claude Code 桌面版(Claude Fable 5)System Prompt 深度拆解:Agent SDK 架构、工具编排与安全治理全貌
Claude Code 桌面版(Claude Fable 5)System Prompt 深度拆解:Agent SDK 架构、工具编排与安全治理全貌 关联文档:
大模型人工智能提示工程
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考