← 코드 아키텍처 맵  /  런타임 해부  /  개선 과정  /  배치 카탈로그  /  메트릭 발견·근거  /  전체 메트릭 카탈로그

전체 메트릭 카탈로그 — 수집 + 도출

시스템이 수집(원시 컬럼)하는 신호와 거기서 도출(집계 뷰·스코어러·검증 뷰)하는 메트릭을 전수 정리. 겹침 메트릭(cite_f1·SOURCES-present·grounded_pct)이 illusory일 수 있어 함의(citation_F1_entailment·claim_verified_rate)로 교차검증해야 진짜 신호(EXP-190/209, V6 실증).

수집 raw ≈ 57개도출 집계 18도출 뷰 44스코어러 파생 7신규 심화 8총 ≈ 134 신호5축 분류기준 2026-06-27
읽는 법. 수집(raw) DB 컬럼에 직접 INSERT 되는 신호 · 도출(derived) 뷰/집계/스코어러가 계산하는 메트릭 · 신규 심화 개인 MAS(EXP-190/209)에서 신설한 측정. 축 표시: ■정확도 · ■비용 · ■효율 · ■근거 · ■신뢰. 출처: runs/events 스키마 + mv_*/v_* 뷰 + 각 도메인 scorer·grounding_guard·recency 모듈 + eval_meta JSONB 키(실측).
~57
수집 raw 신호
(runs+events+eval_meta)
18
도출 집계
(mv_batch/passk/tool)
44
도출 뷰
(grounding+검증+features)
7
스코어러 파생
(저장 안 됨)
8
신규 심화
(개인 MAS)

15축 요약 — 각 메트릭이 "무엇을 묻는가"

모든 메트릭은 5개 질문 중 하나에 답한다. 정답(correct)과 근거(grounded)·신뢰(verified)는 독립 축이다 — 한 축이 좋다고 다른 축이 좋은 게 아니다.

질문수집(raw)도출 — 집계(MV)도출 — 뷰·스코어러
정확도
Outcome
맞혔나?success · format_validpass_at_1 · format_invalid_rate · pass_any/pass_allfield_accuracy · exec_acc · ws-robust pass@1
비용
Cost
얼마나 들었나?total_tokens · input/output_tokens · overhead_tokens · eval_meta.cost_usdavg_tokens · tokens_per_success
효율
Efficiency
깔끔히 끝났나?status · terminated_by · total_turns · latency_ms · verify_latency_msloop_rate · avg_turns · p95_latency · calls/errors/avg_latency
근거
Grounding
진짜 자료 기반?tool_result · tool_error · eval_meta.cited_idsgrounded_pct · cite_f1(P/R) · ground_ratio · objective_correct · recency · report_sources · citation_F1_entailment · hallucination_risk · search_success_rate
신뢰
Verification
틀린 걸 아는가?eval_meta.supported · hallucination · confidence · labelclaim_verified_rate · misattribution · false_approval · useful_rejection · critic_engaged · verify_absent_fail · examiner TPR/TNR
독립성의 함정. 정답률이 1.0이어도 근거(grounded)가 0일 수 있고, 인용 F1=1.0이어도 함의(supported)가 0일 수 있다. 한 축만 보면 "거짓말"하는 메트릭에 속는다 → §10 심화 메트릭이 이 격차를 잡는다.

2수집 메트릭 — runs 테이블 수집 raw

run 1건 = 1행. 러너가 INSERT(running) → 종료 시 UPDATE(completed)로 success·tokens·latency를 채운다. 비용·효율 축의 원천.

컬럼메트릭의미 / 저장 방식
successpass@1 단위정확exact-match(GAIA) 또는 format_valid(analysis). BOOLEAN
format_valid형식 적합정확FINAL ANSWER: 패턴 추출 성공. BOOLEAN
status종료 상태효율running / completed / crashed / timeout
terminated_by종료 원인효율approve / max_messages / error (loop_rate의 원천)
total_turns턴 수효율run 내 메시지 수. INT
total_tokens총 토큰비용입력+출력. INT
input_tokens / output_tokens입/출력 토큰비용분리 비용 추정. INT
overhead_tokens오버헤드 토큰비용프레임워크 오버헤드. INT
latency_msend-to-end 지연효율run 전체 시간. INT
escalatedescalation 신설(008)신뢰cheap tier 게이트 실패→프론티어 이관. BOOLEAN
failure_stage / root_cause실패 라벨 (2차)정확MAST taxonomy 6스테이지·14모드. 현재 수동(NULL)
judge_meta판정 메타 (2차)정확LLM-judge 결과. 현재 NULL(결정론 채점 선호)
temperature / seed / max_messages재현성 좌표A/B 통제 변수. REAL/INT
model_name / attempt모델·회차pass@k 회차 식별. TEXT/INT
출처: migrations/001_init.sql(runs) · 011_failure_taxonomy.sql(failure_stage/root_cause 시드) · 008_cppx_grounding.sql(escalated). 불변식: status≠completed OR success NOT NULL · failure_stage→root_cause 필수 · UNIQUE(batch_id,task_id,attempt).

3수집 — events 테이블 + eval_meta JSONB 수집 raw

이벤트 단위 trace. TraceLogger가 AutoGen run_stream을 받아 20컬럼 INSERT. 이종 교차검증 판정은 eval_meta JSONB에 반구조화 저장.

events 컬럼

컬럼메트릭의미
message_type이벤트 유형agent_message / tool_call / tool_result / tool_error / handoff / selector_decision / final_answer / evaluator_score
agent_name / agent_role발화자어느 에이전트가 어느 역할로
tool_name / tool_args / tool_result / tool_error도구 호출 전문근거도구별 행동 추적 (result 2KB 절단 + tool_result_hash)
selected_next_agent / selector_reason라우팅 결정효율{reason_code, summary} 구조화. selector 토폴로지 전용
tokens / input_tokens / output_tokens / latency_ms이벤트 단위 비용/지연비용run 집계의 원천
content_truncated본문 절단8KB 초과 여부

eval_meta JSONB 키 이종 교차검증 + per-claim

JSON 키메트릭의미
ok검증 통과신뢰이종 검증기 verdict(boolean)
supportedclaim_verified_rate 단위신뢰출처가 클레임을 지지하는가
hallucination환각 여부신뢰날조 판정
confidence검증 신뢰도신뢰0~1
label판정 라벨신뢰supported / misattributed / …
claim_id / claim_textper-claim 근거신뢰클레임별 검증 단위
cited_ids EXP-190 §4.2per-claim 출처근거다이제스트 attribution. "출처 (없음)" 결함 해소
cost_usd검증 비용비용검증자 1콜 단가
verify_latency_ms검증 지연효율이종 검증 소요
출처: 009_evaluator_score.sql(eval_meta) · tracing/logger.py(_mask_secrets 단일지점) · tracing/mapping.py(event→message_type). tool_call↔result 짝은 call.id 전파로 보장(DB CHECK 아님).

4도출 — 정확·비용·효율 (mv_batch_summary) 도출 집계

배치×팀×레벨 단위 집계. materialized view라 배치 종료 시 REFRESH 필요(안 하면 stale). 헤드라인 메트릭 대부분이 여기에 있다.

메트릭정의좋은 방향수식 근원
pass_at_1정확첫 시도 정답률AVG(success::int)
format_invalid_rate정확형식 위반율1 - AVG(format_valid)
loop_rate효율비종결(루프)율terminated_by='max_messages' 비율
avg_turns효율run당 턴 수↓(보통)AVG(total_turns)
avg_tokens비용run당 평균 토큰AVG(total_tokens)
tokens_per_success비용성공 1건당 토큰(가성비)SUM(tokens)/SUM(success)
p95_latency효율꼬리 지연(tail)PERCENTILE_CONT(0.95)
n_runsrun 수집계 모수
주의: p95_latency(_ms 아님). 배치 메타데이터는 별도 batches 테이블이 없어 runs.started_at MAX로 파생. 출처: migrations/002_views.sql.

5도출 — 강건성 (mv_passk) 도출 집계

같은 태스크를 k회 반복해 실력의 상한/하한을 잰다. temp>0 샘플링에서만 의미.

메트릭정의해석
pass_any정확k회 중 1회라도 성공실력의 상한(가능성)
pass_all정확k회 모두 성공실력의 하한(안정성)
k시도 회차pass_any−pass_all 크면 flaky(self-consistency 낮음)
외부 근거. τ-bench의 pass^k(k번 모두 성공)가 강건성 지표로 제안됨 — pass_all이 정확히 이 개념. 본 repo metrics.html §5 참조.

6도출 — 도구 (mv_tool_summary) 도출 집계

도구별 호출·에러·지연. 도구 과다사용/실패 회피 탐지의 원천.

메트릭정의
calls효율도구별 호출 수
errors근거도구별 에러 수(빈결과/예외)
avg_latency효율도구별 평균 응답시간

7도출 — 도메인 근거 뷰 (live · REFRESH 불필요) 도출 뷰

일반 뷰라 즉시 최신. 정확도(success)와 독립적으로 근거품질을 잰다 — "맞았다"와 "근거가 있다"는 다르다.

리서치(코퍼스) — v_research_grounding / _summary

메트릭정의좋은 방향비고
cite_precision근거인용한 것 중 정답 출처 비율헛인용 벌 (FP 분모)
cite_recall근거정답 출처 중 인용한 비율누락 벌 (FN 분모)
cite_f1근거P·R 조화평균(겹침)정답(pass@1)과 거의 결정. 단 illusory 가능
sources_present / sources_present_rate근거SOURCES 줄 존재 여부/율"달기는 했나"(맞는지는 cite_f1)
hops멀티홉 단계(1-hop/2-hop)난도 분해 축. 2-hop에서 함의 격차 폭발

분석(웹 리서치) — v_analysis_grounded / _summary

메트릭정의함정
grounded_pct근거검색이 실결과 반환한 run 비율호출≠성공(차단 시 빈손) — migration 010이 재정의
n_search / avg_search_calls효율검색 호출 수
n_search_ok / avg_search_ok근거성공 검색 수grounded_pct의 분자
grounded근거run 단위 grounded 여부BOOLEAN (n_search_ok≥1 AND not simulated)

cppx(Expert 문제) — v_cppx_grounding / _summary

메트릭정의
ground_ratio = n_grounded/n_facts근거문제 아티클 사실 인용율
objective_correct정확목적함수 방향(max/min) 정확 여부
objective_correct_rate정확배치 단위 방향 정확율
structure_pass_rate정확구조(4축 섹션) 통과율
n_facts / n_grounded근거사실 총수 / 인용된 수
출처: 006(research_grounding) · 008(cppx_grounding) · 010(v_analysis_grounded, 성공 기준 재정의) · research/scorer.py(score_citations).

8도출 — 검증·구조 뷰 도출 뷰

critic/검증자가 틀린 걸 제대로 잡았는지를 잰다. false_approval이 가장 치명적 신호.

검증 품질 — v_verification_quality

메트릭정의신호
critic_engaged신뢰critic 개입 여부검증 활성
critic_routes / critic_msgs효율critic 경유/발화 수
revisions효율수정 턴 수self-repair 활동
false_approval신뢰오답인데 APPROVE (1종 오류)치명
useful_rejection신뢰오답 정당 반려 (진짜 가치)
verify_absent_fail신뢰검증 없이 실패종료설계 문제

run 특징 — v_run_features (피처 엔지니어링용)

메트릭정의
n_events / agent_msgs / handoffs효율이벤트/발화/인계 수
tool_calls / tool_results / tool_errors / any_tool_err근거도구 행동 요약
selector_calls효율라우팅 호출
revisions / verifications신뢰수정/검증 횟수
distinct_tools / truncated_results / evaluator_scores도구 다양성/절단/검증 이벤트
first_tool_seq / final_seq첫 도구/최종 답 시퀀스
출처: migrations/017_hierarchy_views.sql(v_runs, v_run_events) · v_verification_quality · v_run_features. 일반 뷰(REFRESH 불필요).

9도출 — 스코어러 파생 (저장 X, 계산 시 산출) 도출

DB에 컬럼이 없고, scorer/guard 모듈이 답·이벤트를 받아 그 자리에서 계산. cli grounding-score 같은 명령으로 배치 채점 시에만 산출된다.

메트릭모듈정의
recency근거recency.py:score_text최신성(연도/기준시점). 텍스트 프록시
report_sources근거본문 파생리포트 내 출처 URL 수 (불안정)
hallucination_risk신뢰grounding_guard.pyrecency≥0.5 인데 grounded↓ = 환각 위험
search_success_rate근거grounding_guard.py검색 호출 중 실결과 비율
field_accuracy정확extract/scorer.py문서 필드 부분점수 (exact-match 완화)
exec_acc정확sql/scorer.pySQL 실행결과 멀티셋 일치 (denotation)
valid_rate정확sql/scorer.pySQL 실행가능율(에러 없이 실행)

10신규·심화 메트릭 (개인 MAS · EXP-190/209) 신규 심화

겹침(overlap) 메트릭이 illusory임이 데이터로 드러나면서 신설한 측정. 시스템에 원래 없던 "이종 채점·함의 깊이·검증기 신뢰도"를 끼워 넣는다.

왜 필요한가. citation_F1=1.0·SOURCES_present=1.0·grounded_pct=높음 이 잘못된 귀속(misattribution)을 놓침이 라이브로 입증됨. 답도 맞고 인용 doc_id도 gold와 완전 일치(F1=1.0)인데 Claude 함의검증은 misattributed로 거부 (2-hop 4건 중 2건). → "인용 존재 ≠ 함의"(V6) 실증.
메트릭출처정의실측 결과
citation_F1_entailment 핵심근거research/scorer.py:score_citations_entailmentALCE식 NLI 함의 기반 인용 채점(gold 불요). recall(전체 cited가 claim 함의?) + precision(leave-one-out으로 load-bearing 측정). 이종 검증기(claude -p)를 NLI 대용겹침 F1=1.00인데 함의 F1=0.67 → over-citation 적발
claim_verified_rate 핵심신뢰eval_meta.supported 집계다른 모델이 출처에 비추어 클레임 지지 판정 비율2-hop 0.50 → 1.00 (decompose v2)
misattribution신뢰eval_meta.label='misattributed'답·인용 doc_id는 맞으나 출처가 클레임을 지지 않음겹침이 놓치는 환각 서브타입 (2-hop 2/4)
per-claim cited_ids근거eval_meta.cited_ids (EXP-190 §4.2)클레임별 인용 doc_id 저장 → 다이제스트 attribution"출처 (없음)" 결함 해소
examiner TPR/TNR신뢰probe 스크립트정답 TP율 / 오답 TN율 → 검증기 변별력TPR=TNR=1.0 (rubber-stamp 아님)
ws-robust pass@1정확ws-강건 재채점공백 정규화 후 진짜 정답률게이트 0.75 → 진짜 1.00
false_negative_count정확probe게이트가 오답으로 오판한 정답 수공백 brittleness 적발 (007 케이스)
over_decomposition dedup신뢰EXP-195중복 클레임 수 (exact-string 안전망)2hop-01: 클레임 2 → 1
출처: research/scorer.py:61-97(score_citations_entailment) · workers/cli_verifier.py(claude -p 이종 검증) · docs/PERSONAL_MAS_EVAL_RUN_20260624.md(probe 실측).

1순위 8종 + 핵심 통찰

대시보드·비교·실험 판정에서 가장 많이 쓰이는 신호 (초록 좌테두리). 이 8개만 봐도 시스템 건강도가 보인다.

메트릭왜 1순위
pass@1정확정답 헤드라인 (단, brittleness 인공물 주의 → ws-robust 교차)
tokens_per_success비용정확도×비용 동시 반영 — "비싼 정답"과 "싼 정답" 구분
loop_rate효율max_messages 종료율 — 종료설계·프롬프트 결함의 첫 신호
p95_latency효율꼬리 지연 — 평균이 좋아도 p95가 나쁘면 UX 붕괴
grounded_pct근거실검색 성공률 — "검색한 척 환각"과 "진짜 검색" 분리
cite_f1근거인용 정확도 — 단 함의(citation_F1_entailment)로 교차검증 필수
claim_verified_rate신뢰이종 검증 통과율 — 환각·misattribution 잡는 진짜 신호
false_approval신뢰오답 승인 — 검증자가 가짜로 일하면 시스템 전체가 거짓말
① 거짓말하는 헤드라인. #1 게이트 pass@1(0.75/0.875)은 + 주위 공백 brittleness 인공물 — 실제 pass@1은 1.0. ws-robust pass@1으로 복원해야 진짜.
② 겹침이 놓치는 것. citation_F1=1.0·SOURCES_present=1.0 이 misattribution 2건 놓침(2-hop). claim_verified_rate(0.50)만이 이를 잡음 → 함의 메트릭이 진짜 KPI.
가장 큰 통찰. 이진/겹침 메트릭(cite_f1, SOURCES_present, grounded_pct)은 illusory 가능 — 함의(citation_F1_entailment, claim_verified_rate)와 교차 검증해야 진짜 신호(EXP-190/209, V6 라이브 실증).