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

一个编码会话、以及一次请求,包含多少工作量?

计算 tab:session_internal_countssrc/04_SessionContext.tex)背后的计数分布:每个 会话的请求数、用户触发 / 工具触发的步骤数以及工具调用数;每个请求的 工具触发步骤数和工具调用数;以及每个步骤的工具调用数——每一项都给出 avg / p25 / p50 / p90 / p99。

表格

Per session

MetricAvgP25P50P90P99
Requests9.21118137
User-initiated steps†8.91117129
Tool-initiated steps73.64151351,107
Tool calls101.48251761,438

Per request

MetricAvgP25P50P90P99
User-initiated steps0.91111
Tool-initiated steps7.8012086
Tool calls10.80230113

Per step

MetricAvgP25P50P90P99
Tool calls1.21124
表 1按会话、按请求、按步骤的计数(avg / p25 / p50 / p90 / p99)。

编码会话是持久的,且压倒性地自主(论文的 tab:session_internal_counts)。一个会话平均有 9.2 个请求,但带有一条长尾(p99 = 137),所以人类会一次又一次地回到同一个会话。每个会话中工具触发步骤(avg 73.6)远多于用户触发步骤(avg 8.9),所以一旦一个请求落地,循环就自行运转起来:解决一个请求平均需要约 8 个工具触发步骤和约 11 次工具调用。在步骤这一层级,每一轮只发出略多于一次的工具调用(avg 1.2,p50 1,p90 2),所以并行工具调用确实会发生,但属于例外而非常态。

参考
运行方式
# default merged trace (materialized to a temp DuckDB cache on first use)
uv run python artifacts/session/session_internal_counts/analyze.py

# the pinned public trace
uv run python artifacts/session/session_internal_counts/analyze.py -i trace/syfi_coding_trace.jsonl

# a prebuilt DB, into a chosen dir
uv run python artifacts/session/session_internal_counts/analyze.py --db /tmp/trace.duckdb -o /tmp/out
输出
  • session_internal_counts.tex —— 合并后的三行(booktabs)表格,可直接 \input 或 粘贴进 src/04_SessionContext.tex
  • session_internal_counts.md —— 该表格的 GFM Markdown 镜像,渲染在网页详情页上。
  • headline.json —— 用于 Overview gallery 卡片的几个 headline 数字。
  • stdout —— 完整的合并 + 按提供商(Claude / Codex)的明细。

无图。

SyFI TraceLab · 实验详情