SyFI TraceLab
数据助手
正在读取公开 SYFI 数据池
覆盖 Claude 和 Codex 的 665,453 个智能体步骤,可公开分享。
答案会在沙箱中运行真实 DuckDB/Python,并展示代码
全部图表
会话
一段连续的工作记录,通常包含多个请求或问题。
请求
从一次用户输入到智能体最终响应的完整过程。
智能体步骤
请求内部的一次模型调用。
用户触发步骤
由用户输入启动的智能体步骤。
工具触发步骤
由工具结果启动的智能体步骤。
问题

在缓存前缀已经如此之大的前提下,一个步骤会追加多少(未缓存)token?

填充 tab:append_by_prefixsrc/05_LLMGeneration.tex)——它是前缀-vs-追加散点图(fig:prefill_append_relationship)的定量配套。对 Claude 和 Codex,每个智能体步骤按其 prefix_tokens 分箱,并在每个箱内报告 newly_append_tokens 的分布:count、avg、p50、p90、p99。

前缀箱采用倍增方式,以 1024-token 为单位:<1k, 1-2k, 2-4k, 4-8k, 8-16k, 16-32k, 32-64k, 64-128k, 128-256k, >256kprefix_tokens / newly_append_tokens 的核算与 prefix_append_distributiontoken_length_distribution 所用的相同,因此各处数字彼此对得上。

表格

Claude

PrefixStepsAvgP50P90P99
<1k7,165186.9K96.1K541.9K951.3K
1-2k0
2-4k324.8K4.0K56.2K67.9K
4-8k1,38865.2K12.0K178.4K853.5K
8-16k8,24691.3K6.4K359.7K819.5K
16-32k18,35534.7K2.0K38.2K696.2K
32-64k42,9922.7K1.2K5.7K23.7K
64-128k66,4021.8K9414.2K13.4K
128-256k72,8891.6K8373.7K10.8K
>256k88,0051.5K8403.5K9.5K

Codex

PrefixStepsAvgP50P90P99
<1k725109.6K120.4K208.3K245.3K
1-2k9727.7K7.6K71.4K200.4K
2-4k2,62356.5K23.6K165.4K236.0K
4-8k4,31559.6K25.1K169.9K221.7K
8-16k8,32123.1K4.6K81.3K196.7K
16-32k18,3458.8K2.0K16.6K140.9K
32-64k48,8303.7K1.1K8.6K42.2K
64-128k117,0402.7K1.0K5.9K29.3K
128-256k158,5202.2K9935.0K19.7K
>256k1,1923.0K2.1K6.2K13.6K
表 1按前缀长度分箱、按提供商划分的追加 token 统计(步骤数 / avg / p50 / p90 / p99)。

这张表(tab:append_by_prefix)量化了前缀-vs-追加散点图背后的反相关关系:一个步骤已经缓存得越多,它追加得就越少。在最小的前缀箱(<1k——一次缓存未命中或最初的那次请求,此时几乎没有内容被缓存)里,中位追加巨大,Claude 为 96k token,Codex 为 120k,因为几乎整个 prompt 都得作为新内容发送。一旦前缀增长超过 32k,中位追加就稳定在 1k 左右(在 32-64k..>256k 各箱里 Claude 为 1,200–840,Codex 为 1,100–2,100),因为那些步骤只是把一个增量的工具结果或用户轮次叠加到已缓存的上下文之上。各箱也暴露了提供商的结构:Claude 的前缀几乎直接跳到大值——它的 1-2k 箱为空,2-4k 只有 3 步,反映出一个很大的 system prompt——而 Codex 实际上在接近其 256k 上下文窗口处封顶,有 1,192 步超过它。

参考
运行方式
uv run python artifacts/llm_generation/append_by_prefix_bin/analyze.py --db trace/syfi_coding_trace.duckdb
uv run python artifacts/llm_generation/append_by_prefix_bin/analyze.py        # default merged trace
输出
  • append_by_prefix_bin.tex——供论文使用的 Claude/Codex 表格(空箱渲染为 --)。
  • append_by_prefix_bin.md——该表格的 GFM Markdown 镜像,渲染在网页详情页上。
  • headline.json——供概览画廊卡片使用的少量头条数字。
  • stdout——同一份按提供商的拆分,纯文本形式。
关键数字(公开数据)
  • 追加与前缀呈相关。在 <1k 的前缀(冷启动——一次缓存未命中或首次请求)时,Claude 的中位追加为 96k token,Codex 为 120k
  • 一旦前缀超过约 32k(增量式工具循环 / 用户步骤),两个提供商的中位追加都接近 1k
  • 各箱揭示出提供商的结构:Claude 的前缀几乎是直接跳到大值(1-2k 箱为空,2-4k 仅 3 步),因为它的 system prompt 很大;Codex 实际上在接近其 256k 上下文处封顶(有 1,192 步超过它)。

无图。

SyFI TraceLab · 实验详情