서브에이전트 지표, 에이전트 비교 왜곡
- •코딩 에이전트 fleet 지표는 메인 스레드와 서브에이전트 사이에서 최대 135x 차이 났다
- •서브에이전트 행은 attribution된 4,890개 행 중 4,533개, 즉 92.7%를 차지했다
- •모델 A와 C를 합산하자 메인·서브에이전트 층위 안에는 없던 3.6x 격차가 생겼다
hexisteme notes 저자 존(John)은 2026년 8월 2일 자신의 단일 머신 fleet에서 코딩 에이전트 서브에이전트 지표를 메인 대화형 스레드 지표와 직접 비교할 수 없다고 밝혔다. 그의 로깅 파이프라인은 익명화된 7개 모델 버전과 5개 행동 지표에 걸쳐 수천 개 스레드를 수집했지만, 역할 × 모델 교차표에서 역할에 따라 일부 수치가 최대 135x 달라졌고 모델마다 메인 스레드와 서브에이전트 행의 비율도 달랐다.
이 fleet은 같은 모델 가중치에 2개 역할을 사용했다. 하나는 운영자가 이끄는 긴 대화형 메인 스레드이고, 다른 하나는 메인 스레드가 생성한 뒤 폐기하는 짧은 일회성 서브에이전트였다. 스레드당 출력 토큰 중앙값은 역할에 따라 크게 갈렸다. 모델 A는 메인 행 200개에서 중앙값 478,238, 서브에이전트 행 2,761개에서 6,212로 77x 차이를 보였다. 모델 C는 427,838 대 8,784로 49x, 모델 D는 185,534 대 1,371로 135x, 모델 G는 128,415 대 11,358로 11x였다. 모델 B는 16,432 대 14,157로 1.2x였고, 모델 F는 4,194 대 51,562로 방향이 뒤집혀 0.08x였다.
행동 지표도 역할에 따라 의미가 달라졌다. 같은 파일 재편집률은 4개 모델의 메인 스레드 중앙값이 0.40 / 0.44 / 0.50 / 0.53이었지만, 7개 서브에이전트 모델 중 6개는 정확히 0이었다. 오류 복구 시퀀스는 4개 모델의 메인 스레드 중앙값이 1 / 2 / 2 / 2였지만, 7개 서브에이전트 모델 중 6개는 정확히 0이었다. 검증 실행은 7개 메인 스레드 모델 중 6개와 7개 서브에이전트 모델 전부에서 중앙값 0이었다. 저자는 서브에이전트 행에는 재편집률과 복구 횟수에 대한 모델 간 신호가 없었고, 전체 행의 7%에 불과한 메인 스레드 행에만 가능한 신호가 있었다고 설명했다.
역할 구성도 모델별로 달랐다. attribution된 corpus 전체에서 4,890개 행 중 4,533개, 즉 92.7%가 서브에이전트 행이었지만, 메인 비중은 모델 E와 B의 1.5%에서 모델 F의 71.4%까지 벌어졌다. 교차표에는 E가 메인 2개와 서브에이전트 132개, B가 20개와 1,338개, A가 200개와 2,761개, D가 11개와 122개, C가 88개와 156개, G가 21개와 18개, F가 15개와 6개로 기록됐다. 저자는 이런 불균형을 위임 정책 탓으로 봤으며, 여기에는 저가 tier로 보내진 기계적 fan-out 작업도 포함됐다. 모델 A는 A인 서브에이전트 1,788개와 B인 서브에이전트 730개를 생성했고, 모델 C는 B인 서브에이전트 393개를 생성했다.
모델 A와 C를 역할 구분 없이 합치자 잘못된 비교가 나왔다. pooled 계산은 A를 (200 × 684,639 + 2,761 × 13,691) / 2,961 = 59,010으로, C를 (88 × 565,678 + 156 × 13,913) / 244 = 212,910으로 산출해 C가 A보다 출력 토큰을 3.6x 더 쓰는 것처럼 보이게 했다. 그러나 역할 층위 안에서 C는 메인 스레드에서 565,678 대 684,639, 즉 0.83x로 A보다 낮았고, 서브에이전트 실행에서는 13,913 대 13,691, 즉 1.02x로 거의 같았다. 저자는 이 격차를 교과서적 Simpson's paradox(집계 추세가 그룹별 추세와 달라지는 현상)가 아니라 amalgamation effect라고 불렀다. pooled 3.6x가 의미 있는 역할 내 효과가 아니라 서로 다른 가중치에서 나왔기 때문이다.
저자는 역할별 층화가 첫 단계일 뿐이며, 어떤 지표는 각 층위에서 서로 다른 개념을 측정할 수 있다고 말했다. completion proxy는 한 모델의 99개 서브에이전트 스레드 중 92개가 harness 로깅 관례 때문에 tool-result line에서 끝나면서 실패했다. 또한 단위도 바뀔 수 있다고 지적했다. 모델 A는 메인 attribution 행이 200개였지만, completion proxy에 사용할 수 있는 메인 스레드는 154개였다. 그의 체크리스트에는 stratum × treatment 교차표를 먼저 출력하기, 표시 기준을 n ≥ 5로 사전 설정하기, interval 기준을 양쪽 n ≥ 20으로 두기, cross-stratum 비교 금지하기, 층위별 construct validity(측정이 의도한 개념을 재는 정도) 검증하기, 설명되지 않는 zero-width interval 거부하기, pooled 결과와 stratified 결과가 다를 때 둘 다 공개하기가 포함됐다.
또 [0, 0] 신뢰구간은 정밀도가 아니라 동률 데이터를 반영할 수 있다고 경고했다. 메인 스레드의 검증 실행 횟수에서 모든 모델의 중앙값은 0이었지만, 평균은 A 4.11, C 2.38, G 1.67, B 0.60이었다. 6개 모델 쌍 전체에 percentile bootstrap(재표본추출로 불확실성을 추정하는 방법)을 적용하자 평균에는 약 7x 차이가 있었는데도 중앙값 차이는 0, 95% interval은 [0, 0]으로 나왔다. 저자는 routing이 무작위가 아니었고 작업 난도, 프로젝트, 주와 얽혀 있었기 때문에 증거는 여전히 비인과적이라고 말했다. 모델 A의 메인 스레드 재편집 중앙값도 4개 프로젝트에서 0.34 / 0.45 / 0.53 / 0.70으로 달랐다.