Sub-Agent和主线程指标不可混比:实测差距达135倍
做了几千条线程的日志汇总,本来想产出一张"7个模型版本 × 5个行为指标"的对比表——真实负载,不是benchmark。结果一张被我跳过的交叉表(角色×模型)直接告诉我:之前那堆数字大部分是错的。
这还只是第一层问题。
下一篇
DSCode:终端里的DeepSeek编程Agent,我替你们试了 →
数字不会说谎,但会误导。
同一个模型,同权重,只因为跑的任务角色不同,指标可以差到135倍:
- A模型:主线程中位数47.8万tokens,子代理中位数6212,差距77倍
- D模型:主线程中位数18.5万,子代理1371,差距135倍
- B模型:主线程16,432,子代理14,157,差距只有1.2倍
这还只是第一层问题。
真正的坑在于行为指标的结构性失真。
看同文件重编辑率和错误恢复序列这两个指标:主线程层还能看出模型差异(0.40~0.53,以及1~2次恢复),但子代理层直接是6/7的模型恰好为0。
为什么?子代理是fire-and-forget——跑一次、干完就销毁,不会回头改同一个文件,根本也遇不到需要"恢复"的失败。指标在结构上就是零。所以子代理这个分层里,模型间信号完全不存在,所有信号全挤在主线程那7%的数据里。
最要命的是第三个数字:角色混合比例。
整个数据集里4890行,4533行(92.7%)是子代理产生的。但每个模型的主线程占比从1.5%到71.4%不等,跨度48倍。这是编排策略导致的——便宜模型被指派去做机械的fan-out任务,贵的模型留给我手动驱动。
于是你把所有行合在一起算均值,得到的就是一个"主要由子代理构成、但子代理占比因模型而完全不同"的混合体。合成出来的差异,在两个分层里都不存在。
这篇笔记对跑Agent观察管道的人有参考价值。原作者把模型名隐去了,理由是怕被误读成排名,这点很克制。跑分布、按角色分层、把主线程和sub-agent拆开看,才是正确姿势。
原帖在:https://hexisteme.github.io/notes/subagent-metrics-not-comparable-to-main-thread.html