🚜 lumber-truck 开发会话数据集(案例)

加载清单中…
目录:这是什么快速开始给 AI Agent文件清单数据格式使用示例更新机制 ← 返回分析页面

1. 这是什么

这是 lumber-truck(小车伐木) playable 广告的完整开发会话数据集——一个真实案例:从 2026-05-26 到 07-08,开发者们在 9 个沙盒(Sandbox)里用自然语言驱动 AI Agent,把这个 3D 小游戏从早期试探做到上线打磨。287 个会话、1,317 次用户输入、417 个任务块,每一步的 thinking / 工具调用 / 代码 patch / repo 快照全部在案。

这个案例适合:① 研究「人+Agent 协作开发游戏」的真实过程;② 构造 post-training 数据(给定 repo snapshot 预测用户意图);③ 评估 Agent 在 3D 游戏开发任务上的行为模式。数据来自 Supabase agent_sessions 备份,沙盒识别依据为会话内 git remote = github.com/fps-playable/lumber-truck。

2. 快速开始

只想看看? 不用下载任何东西,直接打开在线页面:

🚜 lumber-truck 会话时间线 · 🔍 全量会话浏览器 · 📊 任务块内容分布

最终 Git 源码 ZIP:下载 lumber-truck-main.zip。ZIP 文件名和顶层目录仍是 main;最新开发线为 codex,仓库中的实际分支名以 codex/ 开头。

要做分析? 大多数人只需要这三个小文件(共 ~35MB):

要全量? 命令行整包拉取(装个 wget 或用 curl):


  

3. 给 AI Agent:整体下载与分析说明

如果你想让另一个 Agent(Claude Code / Kimi / Codex 等)整体分析这个数据集,把下面这段 prompt 原样贴给它即可——里面包含了数据是什么、文件在哪、怎么下、分析什么的全部信息:


  

Agent 自助入口(机器可读):数据清单是一个 JSON,Agent 可以直接拉取后自主决定下载哪些文件:


    

manifest 结构:{base, snapshot_date, files: [{key, size, note}]}——完整下载地址 = base + "/" + key。

核心文件的字段 schema(Agent 解析前必读):

文件关键字段
turns.jsonl
(1 行 = 1 次用户输入)
sandbox_id, session_id, turn_index, user_text, editor_mode, agent_final_text, n_tool, n_patch, n_reasoning, patched_files, snapshot_start, snapshot_end, turn_started_at
blocks.jsonl
(1 行 = 1 个任务块)
sandbox_id, session_id, block_index, first_user_text, summary, turn_span, n_user_turns
content_labels.jsonlsandbox_id, session_id, block_index, content(12 大类), subtype, is_template, via_debug_panel;按 (sandbox_id, session_id, block_index) 与 blocks.jsonl 关联
session_index.jsonlsandbox_id, session_id, title, time_created, time_updated, n_msgs, parent_id(子 agent 会话有 parent_id)
root_sessions.tar 解开后的 *.json.gzOpenCode 会话原始结构:messages[].role / parts[](text / reasoning / tool / patch 事件流)

4. 文件清单(点击即可下载)

加载中…

5. 各部分是干什么用的

文件 / 目录内容与用途
lumber-truck/turns.jsonl最推荐入口。1,317 个用户 turn,每行含:用户输入原文、agent 该轮行为统计(工具数/patch 数/thinking 数)、snapshot_start/end(repo 状态 SHA)、editor_mode。1 行 = 1 次用户输入。
lumber-truck/blocks.jsonl417 个「任务块」(连续的用户意图段),含块摘要、turn 跨度。意图分析的基本单元。
lumber-truck/content_labels.jsonl任务块的内容分类标签(12 大类 + subtype + 模板/调试面板旗标)。可快速筛选出 gameplay / vfx / 动效等类别的开发过程。
lumber-truck/session_index.jsonl346 条会话元数据:标题、起止时间、消息数、父子会话关系(含无内容的空会话)。
lumber-truck/lumber-truck-sessions-timeline.md人工整理的 302 会话时间线文档,按天分组、带在线浏览链接。读这个能快速建立全貌。
lumber-truck/root_sessions.tar原始层:336 个会话的完整 JSON 备份(每个 <sandbox>__<session>.json.gz),含全部 thinking/工具调用/patch 事件流。一切加工产物的真源。
lumber-truck/lumber-truck-main.zip最终 Git 源码归档。ZIP 文件名和顶层目录仍是 main;最新开发线为 codex,仓库中的实际分支名以 codex/ 开头。归档内不含 .git 元数据,分支信息以此说明为准。
lumber-truck/snapshot_stores/<沙盒>.tar8 个沙盒的 git 对象库(shadow snapshot)。turns.jsonl 里的 snapshot_start SHA 可在这里 git ls-tree/cat-file 还原任意时刻的完整 repo 文件树与内容。注意:沙盒 ic0utj3z(性能测试期)的快照已被平台回收,无法提供。
lumber-truck/viewer_sessions.tar.gz在线时间线页面用的 243 个会话数据文件(精简后的事件流)。比原始层轻,又保留了 thinking/工具/patch 结构。

6. 使用示例

读用户 turn 数据(Python)
import json

# 每行一个用户 turn
for line in open('turns.jsonl'):
    t = json.loads(line)
    print(t['turn_started_at'], t['user_text'][:80],
          '→ 工具调用', t['n_tool'], '次')
还原某个时刻的 repo 状态(repo snapshot)
# 1. 解开对应沙盒的对象库
tar xf iqtphalyfu4ovpmekoutz.tar          # 得到 git 对象库目录
REPO=$(find iqtphalyfu4ovpmekoutz -name objects -type d | head -1 | xargs dirname)

# 2. 用 turns.jsonl 里的 snapshot_start SHA 查看那个时刻的文件树
git --git-dir=$REPO ls-tree -r --name-only 936ccd7a0c26af...
# 查看具体文件内容
git --git-dir=$REPO show 936ccd7a0c26af...:src/gameplay.json
读原始会话(完整事件流)
import gzip, json

d = json.load(gzip.open('root_sessions/iqtphaly...__ses_14fa932f5....json.gz'))
# d 是该会话的完整 message/part 结构:用户输入、thinking、工具调用、patch 全在
按内容分类筛选任务块
import json

labels = {}  # (sandbox|session|block) → label
for line in open('blocks_content_labels.jsonl'):
    l = json.loads(line)
    labels[(l['sandbox_id'], l['session_id'], l['block_index'])] = l

# 例:所有 vfx_shader 类、非模板、非调试面板的真实用户意图
hits = [l for l in labels.values()
        if l['content'] == 'vfx_shader' and not l['is_template']]

7. 更新机制

数据集由维护方不定期更新(新会话备份进来后重跑加工流水线并同步)。清单顶部的时间是本次快照时间;同名文件内容可能随更新变化,重要分析请记录清单里的快照日期。

⚠️ 本数据集包含内部开发会话原文,请勿把下载链接分享到公司以外。