콘텐츠로 이동

목표와 메트릭

로드맵은 증명이 있는 자율성(자율성 with 증명)을 최적화합니다. 모든 자율성 주장은 측정된 베이스라인으로 뒷받침되며, 어떤 것도 추정으로 단언되지 않습니다. 아래의 개선 배수 (, large reduction, 1/5)는 달성된 결과가 아니라 목표(targets) 이며 - 동일한 시나리오 세트에서 레퍼런스 베이스라인과 FDAI 트리트먼트가 모두 측정된 후에만 달성으로 언급할 수 있습니다 (Measurement-First Rule 참조).

이 문서는 KPI의 진실 원본(정본)입니다. architecture.instructions.md의 티어 커버리지 목표와 정합하며 phase-0-instrumentation-ko.md 에서 운영으로 구현됩니다.

영역상태근거참고
결정론적 KPI와 가드 메트릭 집계implementedcore/measurement/mttr.py; dora.py; regression.py; tests/core/measurement/ 아래의 집중 테스트MTTR, 변경, 회귀, 지연 시간, 모델 및 pattern 메트릭에 실행 가능한 reducer와 실패 시 차단 검사가 있습니다.
승격 및 운영 근거 평가implementedcore/measurement/promotion_gate.py; operational_promotion.py; 집중 승격 테스트승격 평가는 개정 번호, 시나리오, 표본, 신뢰 구간, 가드 및 결과 근거를 연결합니다. 그 자체로 실제 운영 집단의 존재를 입증하지는 않습니다.
고정된 시나리오 집합 계산in-progresstests/scenarios/manifests/v2026.07.json; test_frozen.py; test_v2026_07_replay.py매니페스트와 실행 가능한 커버리지 검사가 있지만 아래에 설명한 대로 SRE 및 다른 필수 헌법 차원은 아직 불완전합니다.
실제 운영 KPI 기준선, 처리 및 대시보드 종결in-progress데이터 수집과 원격측정; config/constitution-traceability.jsonFDAI-CONST-002 요구 사항런타임 기록과 작업은 있지만 하나의 고정된 개정에서 모든 성공 및 임계값 0 가드 메트릭을 입증하는 완전한 실제 운영 기준선 및 처리 집단은 보존되지 않았습니다.
날짜상태변경근거남은 작업
2026-08-19implemented커밋된 기준선을 다시 생성했습니다. sre.* 시나리오 3건이 추가되어 고정 세트가 12개가 된 뒤에도 기준선은 여전히 9개 세트를 기술하고 있었습니다. 발행된 모든 지표와 표본 크기, 신뢰구간이 더 이상 존재하지 않는 세트를 설명하고 있었고, routed_correctly_rate는 0.111에서 0.083이 되었습니다. 기준선 테스트는 이제 9와 “t2 시나리오가 정확히 하나”를 고정하는 대신 세트에서 시나리오 개수와 t2 경제성을 도출하므로, 다음 추가는 숫자 속에서 조용히 어긋나는 대신 산출물에서 크게 실패합니다.current change, tools.baseline_rundocs/baselines/v2026.07.{json,md}와 한국어 쌍을 재생성, core와 공유 패키지 suite가 11913건 통과(스킵 131건)하며 이전에 실패하던 test_baseline_runnertest_models_facade_only 포함기준선은 여전히 synthetic-harness 근거이며 주장 자격이 없습니다. 실측 기준선과 처리군 코호트는 아래의 열린 항목으로 남아 있습니다.
2026-08-19in-progresssre 팩에 세 번째 커버리지 차원을 manifest 항목이 아니라 실제로 단언되는 근거로 추가했습니다. 전용 테스트가 첫 요청을 떨어뜨리는 publisher를 상대로 sre.cluster-diagnostics-missing.001을 재생해 효과 결과가 진짜 알 수 없는 상태로 만들고, 오류가 빠져나가기 전에 종단 publish_outcome_unknown audit 항목이 닫히며 PR이 기록되지 않고 캐시도 남지 않는다는 점, 그리고 같은 executor로 재시도하면 관찰 모드 PR이 정확히 하나만 발행된다는 점을 입증합니다. 어느 팩에서도 처음 확보한 partial_failure_recovery 근거입니다.current change, tests/scenariostest_shadow_eval.py가 focused 116건 통과, 신규 테스트는 변이 검증 완료 - _close_unknown_publish를 no-op으로 바꾸면 assert 0 == 1로 실패합니다.sresuccessful_full_loop, cross_objective_conflict, a3e_or_non_applicability는 여전히 근거가 없습니다. full-loop 주장은 관찰 모드 실행이 제공하지 않는 독립 효과 검증이 필요하고, A3-E 주장은 아직 연결되지 않은 standing-authority 평가기가 필요합니다. manifest 검사는 인용된 테스트의 존재만 확인할 뿐 그 차원을 단언하는지는 확인하지 않습니다.
2026-08-14in-progress이전 이력을 재구성하지 않고 구현 원장을 도입했으며 실행 가능한 측정 mechanics를 입증되지 않은 결과 주장과 분리했습니다.current change; 위에 인용한 측정 소스, 집중 테스트, 시나리오 매니페스트 및 헌법 레지스터입니다.시나리오 커버리지를 완료하고 권위 있는 결과 종결을 포함한 실제 운영 기준선 및 처리 집단을 보존합니다.
2026-08-18in-progresssre 능력 팩에 첫 시나리오를 부여해 missing 상태인 팩이 사라졌습니다. 고정 시나리오 3개가 제공되는 카탈로그로 실제 컨트롤 루프를 재생합니다. kubernetes-cluster.diagnostic-settings-required를 발화시켜 관찰 모드 PR을 여는 관측 가능성 전제 조건, 모델링되지 않은 대상의 error budget 소진이 판단 보류하고 아무것도 발행하지 않는 경우, 검토된 상한을 넘는 텔레메트리 보존입니다. 도메인마다 하나씩 배치해 균형 검사를 만족시킵니다. unknown_or_denydeterministic_replay_with_evidence만 주장했습니다. 나머지 네 차원은 근거가 없어 팩은 partial, 집합은 incomplete로 유지합니다.current change, tests/scenarios focused 테스트 98건 통과. 신규 재생 3건 모두 제공되는 규칙·정책·ActionType으로 ControlLoop.process를 통과했습니다.모든 팩에 대해 successful-full-loop, cross-objective-conflict, partial-failure-recovery, A3-E 또는 비해당 사례를 작성해야 합니다. full-loop 주장에는 관찰 모드 실행이 제공하지 않는 독립 효과 검증이 추가로 필요합니다.
  • 성공, 거부 또는 알 수 없음, 충돌, 부분 실패 복구, A3-E 또는 해당 없음, 결정론적 재현 사례를 포함해 헌법상 5개 시나리오 묶음을 모두 완료합니다.
  • 동일한 고정 시나리오 집합에서 표본 크기, 신뢰 구간, 절대값 및 지원되지 않는 배수 주장이 없는 하나의 참조 기준선과 FDAI 처리를 보존합니다.
  • 실제 운영 인시던트, 변경, 비용, 사람 터치포인트 및 독립적으로 검증된 결과 기록을 KPI 변환 결과에 연결한 다음 모든 임계값 0 가드가 0을 유지함을 입증합니다.

3개 초기 버티컬(복원력, 변경 안전성, 비용 거버넌스)을 가진 AIOps 접근에서 클라우드 운영의 사람 검토를 최소화 - 대부분의 이벤트를 결정론적(T0/T1)으로 해결하고 LLM 추론(T2)은 잔여 모호한 소수에 한정하며, 가드 메트릭을 회귀시키지 않은 채로 달성합니다. 성공 메트릭을 개선하면서 가드 메트릭을 악화시키는 자율성은 실패이지 승리가 아닙니다.

SRE는 세 버티컬 전체의 운영 모델입니다. 재해 복구와 Chaos Engineering은 복원력 기능이고, 아키텍처 검토 Board 거버넌스는 도메인 전체에 적용되며, FinOps는 비용 거버넌스 규율입니다.

FDAI는 모든 새로운 진단이 맞는다고 주장하지 않습니다. 목표는 100% contract-conformant 행동입니다. 에이전트는 schema-valid, evidence-supported, authorized 결과를 만들거나 명시적인 알 수 없음, no-op, denial, 롤백 또는 사람 검토 결과를 기록합니다. 강제 답변이 아니라 unsafe guess 0건이 플랫폼 목표입니다.

다음 위반의 release 임계값은 정확히 0입니다.

  • 잘못된 객체 신원 또는 stale 대상 개정 번호를 대상으로 한 액션
  • 등록된 ActionType, standing 권한 또는 영향 범위 밖의 실행
  • 독립적인 효과 검증 없이 브로커/API 증적으로 성공을 주장하는 경우
  • 권위 있는 관측이 아닌 온톨로지 쓰기로 외부 상태를 주장하는 경우
  • 검토와 승격 근거 없이 권한을 높이는 learning 출력

해결되지 않은 이벤트를 즉시 사람 작업으로 만들지 않습니다. 범위가 제한된 기한 안에서 fresh 근거 acquisition, alternate 권위 있는 출처, 결정론적 reevaluation, 검증된 pattern reuse, 더 작은 safe 계획, no-op 또는 pre-authorized 복구를 시도합니다. 모호함이 남거나 정책이 승인을 요구하거나 risk가 standing 권한을 넘을 때만 사람 검토를 시작합니다. 모든 시도는 이벤트 상관관계를 공유하고 추가 human touchpoint를 만들지 않습니다.

메트릭 전반에서 사용되는 용어를 여기서 고정해 모호성을 없앱니다:

  • Event: event-ingest 이후 컨트롤 루프에 들어가는 정규화·중복제거된 한 항목. 안정적인 멱등성 키로 식별됩니다. 이벤트당(비율) 계산은 모두 이 단위 위에서 이루어집니다.
  • 시나리오 집합: SRE, ARB / 변경 안전성, FinOps / 비용 거버넌스, DR 및 Chaos Engineering 기능 묶음을 포괄하며 기준선과 처리에 동일하게 사용하는 고정된, versioned 수집입니다. 각 release는 시나리오 집합 및 묶음별 버전을 기록합니다(예: v2026.07).

현재 커버리지 공백: services/core-control-plane/tests/scenarios/manifests/v2026.07.json은 모든 고정본을 SRE, ARB / 변경 안전성, FinOps, DR 또는 Chaos에 할당합니다. 커버리지 dimension은 해당 묶음이 소유한 시나리오와 실제 실행 가능한 테스트를 함께 인용할 때만 계산됩니다. 집합은 incomplete입니다. SRE 시나리오가 없고 모든 기존 묶음이 하나 이상의 필수 사례를 누락합니다. 다섯 묶음이 모두 완전한일 때까지 완전한 도메인 커버리지를 주장하면 안 됩니다.

  • 참조 에이전트: 단계 0에서 측정된 고정 비교 시스템(문서화됨, 단일 모델, 티어링 없음). 버전은 베이스라인 실행마다 고정됩니다.
  • Human touchpoint: 사람의 결정 또는 입력이 필요한 모든 액션(사람 승인 승인, 수동 편집, 수동 롤백). 고유하게 식별된 액션 또는 승인은 각각 한 번 계산하며, 같은 액션 또는 승인의 반복 수명 주기 행은 touchpoint를 추가하지 않습니다. 하나의 이벤트가 둘 이상의 touchpoint를 제공할 수 있습니다. 콘솔의 읽기 전용 조회는 touchpoint가 아닙니다.
  • Auto-resolved 이벤트: 측정 윈도우 내에서 사람 터치포인트 0회, 사후 롤백 없이 종단의 올바른 결과에 도달한 이벤트. 실행기 전달은 명시적인 measurement.action_outcome.v1 기록이 강제 적용 모드, 검증 통과, auto 결정 및 롤백 없음으로 관측을 닫을 때까지 resolved가 아니라 pending입니다.
  • 측정 구간: 실행당 고정된 관측 기간(기본값: 30일 롤링, 또는 전체 시나리오 세트 1회 리플레이). 보고되는 모든 수치와 함께 명시됩니다.
  • Contract-conformant 결과: 대상, 근거, 권한, 액션, 효과 검증, 감사 기록이 exact versioned 계약을 충족하는 최종 결과입니다. 명시적 알 수 없음 또는 safe no-op은 conformant하지만 지원하지 않는 성공은 아닙니다.

각 메트릭은 단위, 공식, 보고 윈도우를 고정합니다. 목표는 동일 시나리오 세트 버전에서 레퍼런스 에이전트 대비 상대값이며, 측정 전까지는 방향 목표(directional 대상)입니다.

#메트릭정확한 정의단위방향베이스라인 대비 목표
1비용 per 단위처리된 단위당 귀속 총 지출 ÷ 처리 단위 수. $/incident, $/change, $/optimization로 각각 계산USD/단위낮을수록 좋음큰 폭 감소 (측정된 경우에만 배수 명시)
2Auto-resolution 비율자동 해결된 이벤트 ÷ 총 이벤트 ([0, 1])비율높을수록 좋음베이스라인의 5×(최대 1.0)
3aMTTR해결된 인시던트의 mean(resolve_time − detect_time)낮을수록 좋음5× 짧게(베이스라인의 0.2×)
3b변경 lead 시간변경의 mean(merge_time − change_request_time)낮을수록 좋음5× 짧게(베이스라인의 0.2×)
4Human intervention사람 터치포인트 ÷ (총 이벤트 ÷ 100)100 이벤트당 터치포인트낮을수록 좋음베이스라인의 0.2×(즉 1/5)

주의:

  • 메트릭 1의 비용은 처리에 귀속되는 모델 추론, 컴퓨트, 저장소, 이벤트 버스 지출을 포함합니다. FDAI가 아닌 워크로드와 공유되는 고정 플랫폼 오버헤드는 제외합니다.
  • MTTR과 lead 시간은 mean과 함께 median과 p90을 보고합니다. 지연 분포가 편향돼 있어 평균만 으로는 꼬리(회귀)를 감춥니다.
  • 비율(메트릭 2)에서의 목표는 상한이 있습니다 - 배수와 절대 비율을 함께 보고합니다. 베이스라인이 이미 높으면 배수는 의미가 없어지기 때문입니다.

가드 메트릭은 승격을 거부합니다: 위반이 발생하면 액션은 강제 적용에서 관찰 모드로 강등됩니다. 각 메트릭은 방향이 아니라 명시적 임계값(임계값)을 갖습니다.

가드 메트릭정의임계값
변경 실패 비율 (CFR)인시던트/롤백을 유발한 변경 ÷ 총 변경≤ 베이스라인 CFR(증가 없음)
False-positive 비율잘못된 액션 ÷ 실행된 액션≤ 베이스라인. > 베이스라인 + 1pp면 알림
False-negative 비율놓친 진짜 이벤트 ÷ 진짜 이벤트≤ 베이스라인. > 베이스라인 + 1pp면 알림
Rollback 비율롤백된 액션 ÷ 실행된 액션≤ 베이스라인 롤백률
Policy-violation escapes정책을 위반하고 강제 적용에 도달한 자율 액션정확히 0(모든 escape은 release-blocking)
Wrong-target 또는 stale-revision 실행승인 계획과 다른 객체 또는 개정 번호에 적용된 액션정확히 0
승인되지 않은 실행등록 타입, 신원, standing 권한 또는 영향 범위 밖의 액션정확히 0
검증되지 않은 성공 점유독립적인 expected-effect 종결 없이 성공으로 보고된 액션정확히 0

임계값은 성공 메트릭과 동일한 측정 윈도우와 시나리오 세트 버전에서 평가되어, 이득과 가드 위반이 다른 데이터에서 비교되지 않습니다.

선행 vs 후행 지표(Leading vs Lagging Indicators)

섹션 제목: “선행 vs 후행 지표(Leading vs Lagging Indicators)”

성공 메트릭 1-4는 후행(lagging) 입니다(충분한 이벤트가 해결된 후에만 관측 가능). 승격 결정은 가드-메트릭 건강을 더 일찍 예측하는 선행(leading) 지표도 함께 봅니다:

  • 티어별 커버리지 비율(T0 70-80%, T1 15-20%, T2 5-10%)이 대역을 벗어남,
  • mixed-model 불일치율(T2 quality 게이트)의 상승 추세,
  • 검증기 판단 보류/fail 비율의 상승,
  • 후보 액션의 관찰 모드-vs-enforce 결정 다이버전스(divergence).

선행 지표는 후행 가드 메트릭이 회귀하기 전에 조사를 트리거합니다.

  • 자율성은 자신의 효과를 측정할 원격측정(metrics 1-4 + 모든 가드 메트릭) 없이는 출시되지 않습니다.
  • 단계 0가 KPI 대시보드와 레퍼런스 베이스라인을 어떤 티어도 라이브 가기 전에 확립합니다 (phase-0-instrumentation-ko.md).
  • 배수 주장(2-4)은 베이스라인과 트리트먼트가 동일한 고정 시나리오 세트 버전에서 모두 측정된 후에만 언급됩니다.
  • 통계적 타당성: 각 배수는 표본 크기(이벤트 수), 신뢰구간, 시나리오 세트 버전과 함께 보고합니다. 신뢰구간 안의 차이는 개선이 아니라 “측정된 변화 없음”으로 보고합니다. Zero-sample Wilson 간격은 accuracy가 정확히 0이라는 근거가 아니라 [0, 1] 알 수 없음입니다.
  • Operational 승격 근거: 고정된 벤치마크와 live-관찰 모드 샘플을 하나의 full FDAI 개정 번호, ActionType 다이제스트, 시나리오 사례, 권위 있는 측정 단위에 연결하고 최신 correction이 집단, 시나리오, 관측 시간, causal 계보를 바꾸지 않고 이전 행을 대체합니다. Separate 고정된/실제 운영 Wilson 95% lower 한계, 서로 다른 실제 운영 일, zero escape, executed-action 롤백과 완전한 recurrence 구간, 검증된 causal 증적, Dynamic 검토가 모두 통과해야 합니다. Closed causal 증적은 confirmed 종결일 때만 계산합니다. Raw 메트릭은 promote할 수 없고 검증된 증적은 별도 검토만 허용합니다.
  • 공정성: 베이스라인과 트리트먼트는 동일한 시나리오, 동일한 입력 분포, 동일한 측정 윈도우에서 실행합니다. 레퍼런스 에이전트를 의도적으로 불리하게 만들지 않습니다.

모든 메트릭은 대시보드가 구축 가능하도록(열망만이 아닌) 구체적인 원격측정 소스에 매핑됩니다:

  • 구조화된 이벤트 + 트레이스 (OpenTelemetry)가 event_id, tier, decision, mode(관찰 모드/강제 적용), 타임스탬프를 운반 - 메트릭 2, 3a/3b, 선행 지표의 소스.
  • 추가 전용 감사 로그가 사람 터치포인트(메트릭 4), 롤백, 정책 escape의 소스.
  • 결과 finalization 기록(measurement.action_outcome.v1)가 auto-resolution의 권한입니다. Dispatch-only 이벤트는 pending으로 유지되고, 검증된 non-rollback 결과만 finalized denominator에 들어가며, 롤백/adverse 결과는 성공이 되지 않고 계속 표시됩니다. 하나의 액션에 correction finalization 행이 있으면 가장 높은 감사 순서만 권위 있으며, 명시적 검증 실패는 사라지지 않고 rejected 관측으로 유지됩니다.
  • 명시적 메트릭 관측값은 각 event_id 및 메트릭 키의 최신 행을 사용합니다. 하나의 이벤트에 대한 재시도 또는 correction은 통계 가중치를 추가하지 않고 이전 값을 대체하며, 서로 다른 이벤트의 관측값은 독립 표본으로 유지합니다.
  • MTTR(메트릭 3a) 은 순수 집계기 core/measurement/mttr.py 가 계산합니다. 해결된 인시던트(resolved_at - opened_at)를 mean, median, p90 초로 접습니다. 미해결/무결성 위반 인시던트는 카운트하되 계산에서 제외하며, 절대 0 이나 음수 소요 시간을 기여하지 않습니다. 라이브 인시던트를 공급해 /kpi/autonomy 패널의 synthetic 데모값을 대체하는 전달 레이어 배선은 후속 작업으로 추적합니다.
  • 비용/사용 기록(모델 토큰, 컴퓨트 시간, 저장소, 버스 처리량)이 메트릭 1의 소스. 귀속 키는 지출을 발생 event_id에 연결합니다. 하나의 액션에 반복된 수명 주기 행이 있으면 재시도를 가중하거나 합산하지 않고 최신 관측 절감 값을 한 번만 반영합니다.
  • 모든 메트릭 입력은 영문, 시크릿 없음, 고객-비종속 - 저장소 범위 규칙 준수.
  • 승격마다: 메트릭 + 가드 리뷰가 통과하지 않으면 관찰 모드 → 강제 적용으로 이동하는 액션은 없음.
  • 주간: 선행 지표와 가드-메트릭 드리프트 대시보드 리뷰.
  • 시나리오 세트 버전 갱신마다: 목표가 오래된 것이 아닌 현재의 공정한 레퍼런스를 추적하도록 전체 베이스라인 재측정.

아래 메커니즘들은 목표 이득의 가설(hypothesized) 출처입니다. 각각은 베이스라인 대비 측정된 후에만 인정됩니다. 프레이밍은 의도적으로 “LLM을 더 잘 쓴다”가 아니라 “LLM을 덜 쓴다” 입니다.

목표가설된 메커니즘
Auto-resolution ↑T0/T1이 이벤트의 ~85-90% 다수를 결정론적으로 종결; T2/사람 승인으로의 에스컬레이션 감소.
MTTR / lead 시간 ↓T0/T1에는 LLM 라운드트립(ms-s)이 없음; auto-수정 PR이 사람 대기 시간을 제거.
Human intervention ↓리스크 게이트가 저위험 액션을 자동 승인; 학습된 T1 액션이 반복 사람 터치를 회피.
비용 per 단위 ↓이벤트의 ~5-10%만 프론티어 모델에 도달; OSS/CSP-중립 스택; 이벤트-기반 scale-to-zero.

핵심 통찰: 이득은 더 똑똑한 LLM이 아니라 LLM을 덜 쓰는 구조에서 온다는 가설이며 - 이 주장은 단계 0 측정으로 살거나 죽습니다.

학습 대상문서
베이스라인 계기화 방식phases/phase-0-instrumentation-ko.md
티어별 커버리지 목표와 trust 라우터../../.github/instructions/architecture.instructions.md
가드 메트릭이 강제하는 안전 불변식../../.github/instructions/coding-conventions.instructions.md
P0와 함께 배송되는 KPI 대시보드../dashboards/phase-0-kpi.json