agent-eval메트릭 기반 개선 플라이휠

AutoGen 멀티에이전트 팀을 벤치마크로 평가 → 모든 실행을 trace DB에 기록 → 팀 구성 변경의 효과를 데이터로 검증.  기준일 2026-06-13 · GAIA · multi-hop research · open-ended analysis
20
실험 (experiments)
13
promoted 채택
5
rejected 기각
2
inconclusive
720
완료 run
3
도메인
기획의도 대비 현황 (SPEC §0)

원래 1차 목표 = 개선이 아니라 그걸 가능케 할 측정·비교 하니스. 산출물 3: ① trace 수집(run_stream→PG 무손실) ② 평가 러너(자동 채점) ③ 분석 리포트(SQL/CLI 비교). 1차 종착점(M6) = GAIA 베이스라인 수치 확보.

층위기획의도현재
하니스 1차 (M1~M6)trace+러너+리포트, GAIA 베이스라인완성 AC1~9 충족
하니스의 목적팀 변경 효과를 데이터로 검증가동·증명
개선 실험 (§9 다음단계)1차 이후로 미룸⏩ 당겨 진행 (사용자 지시)
research/analysis 도메인원래 GAIA만⏩ 확장 (사내 사례 시연)
Grafana 대시보드 (§0.3 비범위)Tier-3, 1차 금지⏩ 구축 (사용자 지시)

🛡 Tier-3 금지선은 유지: LLM-judge 실패라벨·claim/evidence·verifier 혼동행렬은 스키마만(미구현). analysis 채점기도 결정적(LLM-judge 아님). → 범위는 넓혔지만 하드가드는 안 깸.

핵심 결론 — 어떤 레버가 통했나

✅ 통한 레버 = 도구·데이터·입력

EXP-40 첨부 경로 주입 · EXP-41/46 형식 프롬프트 fix · EXP-42 멀티포맷 파서 · EXP-64 status-aware 검색 · (분석) web_search grounding · EXP-66 과검색 제거 · EXP-68 도구 dedupe

❌ 안 통한 레버 = 프롬프트·구조

EXP-57 grounding 강제(메트릭 버그였음) · EXP-60 RoundRobin 토폴로지(97→7%) · EXP-63 disambig 프롬프트(80→27%) · EXP-45 max_messages 축소 · EXP-67 출처 전부 인용 강제

교훈: 좋은 베이스라인에선 surgical한 도구/데이터 수정이 프롬프트 튜닝보다 신뢰롭다. 메트릭 하니스가 회귀(예: 97→7%)를 출시 전에 잡았다.

플라이휠 — 한 바퀴의 작동
① 배치 실행 cli.py run --team T --batch B (runs/events 기록) ↓ ② 메트릭 관측 success · latency · tokens · turns · tool_call ↓ ③ 진단 "어느 스테이지에서 깨지나?" → 가설 1개 ↓ ④ 1변수 개입 새 team_id (프롬프트 1글자만 바뀌어도) — AC9 가드 ↓ ⑤ 재실행 같은 task, temp=0 (노이즈 제거) ↓ ⑥ 델타 판정 회귀 0 + 목표지표↑ → promoted / 아니면 rejected → 원장 기록

규율 3: 1변수 개입(효과 귀속) · temp=0(노이즈 제거) · 회귀 가드(pass만 보지 않고 regressed 동시 확인).

대표 성과 ① GAIA — 첨부파일 처리 (v1-baseline → v5-multitool)
구간전 (v1)후 (v5)차이
전체 성공률 (27 task)39.2%57.4%+18.2pp
형식 정합82.4%93.4%+11pp
첨부파일 task만 (11개)0.0%43.4%+43.4pp
레버(바이너리 파서)가 겨눈 첨부 task에선 0%→43%. v1은 파일을 못 열어 그 11개를 전부 틀렸다.
대표 성과 ② Analysis — grounding 플라이휠 4바퀴 (stale → web)
grounded%토큰지연(s)출처수turn
v2 stale (도구 0)0%29.4k2800베이스라인
v3 grounded100%97.1k6024.7EXP-65 트레이드오프
v4 lite (과검색 제거)100%17.8k2092.3EXP-66 dominant
v5 cited (전부 인용)67%28.6k30615.7EXP-67 과다·역행
v6 dedup+cap100%21.3k1774.7EXP-68 회복
"켜고(65)→싸게(66)→과욕(67 기각)→질로 회복(68)". 안정성 측정(EXP-69)은 "검색은 안정적이나 리포트 인용은 비결정적"을 드러냄 → grounding은 events로 측정.
왜 좋아졌나 — 이벤트 trajectory (실패점 → 통과)

GAIA · 첨부 .xlsx 매출 합계 (정답 89706.00)

v1-baseline ❌ — 파일을 못 열어 도구 에러 3연발

planner: Excel 읽어 합계 내라 🔧 read_attached_file() ❌ ERROR 경로만 받음 🔧 python_calc() ❌ ERROR invalid syntax 🔧 read_attached_file() ❌ ERROR sales.xlsx 없음 executor: (빈 응답 → 오답)

v5-multitool ✅ — python_exec가 바로 읽음

🔧 python_exec() Columns:[Location,Burgers,..] 🔧 python_exec() $89,706.00 critic: 반려 — FINAL ANSWER: 누락 planner: FINAL ANSWER: 89706.00 critic: APPROVE
갈린 지점: 바이너리 파서/python_exec 레버가 v1이 막혔던 그 도구 호출을 통과시킴.

Research · "Project Vesta 운영팀의 관리자?" (정답 Lena Patel)

v1-research ❌ — 비활성 decoy에 낚임

🔧 search(Vesta) project_03 · Team Dunes 🔧 search(team) (no matching docs) 🔧 search(team) → team_02_decoy "Granite Legacy is a disbanded group" 🔧 search(mgr) → person_02_decoy "Nadia Bauer Legacy, retired advisor" → 오답

v2-cleanret ✅ — status-aware 검색이 decoy 강등

🔧 search(Vesta) project_03 · Team Dunes 🔧 search(Dunes mgr) person_03 "Lena Patel, Engineering Manager, manages Team Dunes" planner: FINAL ANSWER: Lena Patel SOURCES: person_03, team_03 → APPROVE
갈린 지점: v1 검색은 비활성 함정 문서를 상위 노출 → 추종. v2는 demote_inactive로 첫 결과가 활성 정답.

정직성 단서(EXP-70, N=3 재측정): 위 v1 실패는 저확률 tail이다. 2hop을 3회씩 재니 v1 pass@1 93% / v2 97%(+4pp), pass@3 둘 다 10/10. EXP-64의 "hop2 60→90%"은 N=1 노이즈였다. 단발 dramatic 예시는 오도 → N회·pass@k가 진실(하니스가 자기 과거 결론까지 교정).

Analysis · "반도체 동향" (요구 기준연도 2026)

v2-deep ❌ web_search 0회 → 기준시점 명시 없음, 2024 파라미터 지식 토출 ("NVIDIA 427% 226억달러, WSTS 2024 16%").   v6-web ✅ web_search 5회·출처 7 → 기준시점 2026-06-13, 현재 데이터("WSTS 2026 +25% 9,750억달러, 1조 임박"). 게다가 더 빠르고(143s) 더 쌈(21.5k).

메트릭 읽는 법 (요약)
종류메트릭뜻 / 읽는 법좋은 방향
품질success정답 여부. GAIA/research=exact match, analysis=리포트 형식↑ (같은 task 비교)
format_validFINAL ANSWER 형식을 지켰나 (실패의 종류 구분)
pass@kk번 중 1번이라도 성공. pass@1과 갭=불안정↑, 갭↓
비용total_tokens읽고 쓴 토큰(=돈). input=근거 흡수, output=생성/환각↓ (품질 유지 시)
tokens/success정답 1건당 비용
latency · turns한 판 시간 · 발화 횟수(루프 낭비 탐지)
행동tool_call / error어느 도구를 쓰고 어디서 에러났나 (실패점)error 0
grounded% (events)web_search를 실제로 썼나. 텍스트 URL보다 견고↑ (최신성 목표 시)

개선의 두 모양: dominant(품질↑+비용↓, 예 EXP-64/66) vs 트레이드오프(능력↑ 대신 비용↑, 예 GAIA 첨부·grounding 켜기). → 품질·비용을 항상 같이 본다.

정합성(invariant): "완료 run인데 success 비어있음=0", "tool_call인데 짝 없음=0" 이라야 모든 숫자를 믿는다.

자세히 보기 — 라이브 대시보드 & 실행환경