한 줄 요약
법률의견서 평가 Skill에 빠른 단일 평가와 앙상블 평가 선택 단계를 넣고, 같은 가상 의견서를 실제로 세 명의 독립 평가자·검증자·조정자에게 맡겨 보았다. 결과적으로 목표는 점수를 높이는 것이 아 니라 법적 권위, 사실 전제, 인용 연결, 과잉 감점, 미해결 불확실성을 분리해서 검증하는 구조를 만드는 일이었다.
이런 분께 도움돼요
AI로 법률의견서나 법률 검토문을 반복 평가하는 분
여러 모델을 쓰되 단순 평균·다수결을 넘는 운영 규칙을 만들고 싶은 분
법령·판례 인용과 사실 전제를 함께 검수해야 하는 법무·감사·연구 담당자
실제 판결이나 처분이 아직 없는 사전예측형 법률의견서를 평가하는 분
AI 평가 결과를 바로 Gold로 저장하지 않고, 근거와 한계를 남기고 싶은 분
시작 전 상태
법률의견서 평가 Skill은 처음부터 다음 문제를 다루고 있었다.
질의·사실·기준일·권위를 먼저 확인한다.
→ EVALUABLE / LIMITED / DEFERRED로 입력을 판정한다.
→ 평가 가능할 때만 다섯 축으로 점수화한다.
기본 평가축은 다음과 같았다.
평가축
배점
평가 질문
질의·검토범위 충족
25
의뢰인이 물은 문제를 빠짐없이 다루었는가
사실·전제 및 자료 독해
15
사실·가정·시간축·자료 수준을 구분했는가
논증 구조·법리 적용
30
요건·예외·반론이 결론까지 연결되는가
법령·판례·근거 활용
15
법적 권위를 정확하고 적절하게 사용했는가
표현·형식·실무 사용성
15
불확실성을 보정하고 실행 가능한가
문제는 이 평가가 실제로는 한 명의 평가자에게 의존하는 경우가 많았다는 점이다. 같은 의견서를 반복해서 넣으면 비슷한 점수가 나올 수는 있었다. 하지만 그것만으로 다음 질문에 답할 수는 없었다.
그 점수가 안정적인가?
아니면 같은 관점과 같은 오독을 반복한 것인가?
법령을 확인한 것인가, 의견서의 문장을 그럴듯하게 요약한 것인가?
미확인 사실을 빠뜨린 것인가, 아니면 의도적으로 조건부로 남긴 것인가?
논술 답안이라면 과잉 감점이나 제시문 오독이 핵심 오류가 될 수 있다. 법률의견서에서는 오류의 비용이 더 크다. 존재하지 않는 판례를 만들거나, 기준일이 다른 법령을 섞거나, 합성 사실을 확정 사실처럼 다루거나, 실제 결과가 없다는 이유만으로 좋은 사전예측을 LIMITED로 내릴 수 있기 때문이다.
참고한 출발점
이 구조를 설계하면서 MOSL의 사례글 「논술 채점 Skill에 세 명의 채점자와 조정자를 붙여 보았다」를 참고했다. 그 글은 빠른 단일 채점과 앙상블 채점의 선택 단계를 만들고, 독립 채점자·검증자·조정자를 나누어 같은 답안을 실제로 비교했다. 특히 다음 원칙을 법률의견서 평가에 맞게 옮겼다.
세 평가자가 서로의 결과를 보지 않는다.
검증자는 평가 결과를 보기 전에 독립 체크리스트를 만든다.
조정자는 평균을 내지 않고 충돌 문항만 원문·공식 근거로 다시 읽는다.
앙상블은 점수를 올리는 장치가 아니라 근거 오류를 드러내는 장치다.
논술 채점의 ‘제시문 근거’는 법률의견서의 ‘법령·판례·증거 receipt’로, ‘문항별 감점’은 ‘요건별 법리·입증 연결’로 바꾸었다.
1. 먼저 평가 방식을 선택하게 했다
사용자가 단순히 “평가해줘”라고 했을 때 곧바로 긴 앙상블을 실행하지 않도록 선택 단계를 만들었다.
평가 방식을 선택해 주세요.
1. 빠른 단일 평가: 평가자 1명 + 독립 검증자 1명
2. 앙상블 평가: 독립 평가자 3명 + 검증자 + 필요 시 조정자
빠른 단일 평가
초안에 대한 빠른 피드백이나 반복적인 내부 점검에 사용한다. 한 명의 평가자와 독립 검증자가 참여하며, 결과는 빠르지만 관점의 다양성이 제한된다.
앙상블 평가
제출 전 검토, Gold 후보, 중요한 법률의견서 비교처럼 근거와 오류를 함께 확인해야 할 때 사용한다. 평가자 A·B·C가 각자 독립적으로 검토하고, 검증자가 독립 체크리스트와 결과를 대조한다. 충돌이 있거나 검증자가 필요하다고 판단할 때만 조정자가 개입한다.
앙상블을 사용한다고 항상 더 높은 점수가 나오는 것은 아니다. 중요한 것은 점수의 방향이 아니라 왜 높아졌거나 낮아졌는지를 설명할 수 있는가이다.
2. 세 평가자의 관점을 나눴다
세 평가자는 같은 루브릭을 사용하지만 서로 다른 중심 관점을 부여했다.
역할
중심 관점
주로 확인하는 것
평가자 A (grader A)
범위·사실·출처
질의 충족, 사실·가정 구분, 자료와 출처 연결
평가자 B (grader B)
법리·권위·논증
법령의 현재성, 요건·예외·반론, 법리 연결
평가자 C (grader C)
증거·사용성·반론
입증책임, 상대방 최강 반론, 실무 선택지, 민감도
이들은 별도의 Hermes 프로세스로 실행되며, 서로의 점수나 의견을 보지 않는다. 모델 이름을 달리하는 것만으로 독립성이 생긴다고 보지 않았다. 독립성은 다음과 같이 설계했다.
평가자 A 호출
평가자 B 호출
평가자 C 호출
→ 각자의 결과를 숨긴 채 보관
→ 검증자 독립 체크리스트 작성
→ 검증자만 제한된 digest를 보고 대조
실행 시에는 grader-concurrency 1을 사용했다. 세 평가자를 동시에 무제한으로 실행하면 모델 호출이 서로 자원을 다투거나 timeout이 늘어날 수 있기 때문이다. 속도보다 재현 가능한 canary와 감사 가능한 telemetry를 우선했다.
3. 검증자는 점수를 보기 전에 먼저 읽게 했다
검증자에게 평가자 결과를 처음부터 보여 주면, 평가자의 점수와 표현에 끌릴 수 있다. 그래서 검증자 호출을 두 단계로 나누었다.
첫 번째: 독립 체크리스트
검증자는 점수와 평가자 결과를 보기 전에 다음을 작성한다.
질의와 평가범위
결론을 바꾸는 사실·가정
기준일·법령 버전
필수 권위 앵커
필수 법리 연결
상대방 반론
증거 공백
산술 검증 준비 상태
두 번째: 제한된 비교
그 다음에만 평가자별 점수·짧은 근거·critical issue digest를 대조한다. 검증자는 평가자 점수를 직접 고치는 역할이 아니다. 대신 다음을 표시한다.
근거 없는 감점 또는 가점
원문 오독
필수 권위와 선택적 보강 권위의 혼동
요건과 증거의 연결 누락
평가자 간 critical issue 불일치
점수 산술 오류
조정자 호출 필요 여부
법률의견서에서는 이 순서가 특히 중요했다. 실제 canary에서 평가자 A와 B는 Gold contract에 필수로 들어 있지 않은 민법 제387조를 사실상 필수 권위처럼 취급했다. 평가자 C는 이를 critical issue로 보지 않았다. 검증자는 이 불일치를 찾아냈고, 조정자는 제387조를 이번 scoped Gold의 필수 권위가 아니라 선택적 보강사항으로 재분류했다.
이는 평가자 수를 늘리면 자동으로 정답에 가까워진다는 뜻이 아니다. 오히려 법률 평가에서는 먼저 다음을 정해야 한다는 뜻이다.
이번 평가에서 반드시 확인할 권위는 무엇인가?
인접 조문은 필수인가, 선택적 보강인가?
미확인 판례는 핵심 결함인가, 제한사항인가?
4. 조정자는 평균을 내지 않게 했다
조정자는 세 점수를 평균 내거나 다수결로 결론을 정하지 않는다. 다음 조건이 있을 때만 호출한다.
평가자 간 영역별 점수 차이가 큰 경우
총점 범위가 기준을 넘는 경우
평가 가능성·중심 권위·critical issue 판정이 충돌하는 경우
검증자가 과잉 감점·중대한 누락·오독을 지적한 경우
조정자는 충돌하지 않은 문항은 건드리지 않고, 문제된 문항만 원 의견서와 공식 receipt로 다시 읽는다.
조정자가 보는 자료도 무제한으로 늘리지 않았다.
원문 head/tail
Gold contract의 필수 권위 목록
authority receipt
external recheck receipt
citation map
충돌 문항 digest
실제 v5 live에서 조정자는 민법 제390조·제393조·제396조의 기준일 receipt와 본문 인용을 다시 대조했다. 직접 관련 판례가 특정되지 않은 부분은 억지로 판례를 만들지 않고 limitation으로 남겼다. 계약상 면책·불가항력·책임제한 조항, 실제 가격자료, 대체품의 동일성 같은 사실도 미해결 불확실성으로 공개했다.
5. 테스트용 사례를 먼저 고정했다
평가자 구조를 설명하기 위해 실제 개인정보가 들어간 자문 원문을 사용하지 않고, 반복 실행할 수 있는 합성 법률의견서를 fixture로 고정했다.
사례는 매도인의 납품 지연에 관한 간단한 민사 의견서다.
계약일: 2026-01-10
약정 인도일: 2026-02-01
실제 인도일: 2026-02-20
주장된 대체 구매비용: 100만 원
관할: 대한민국
기준일: 2026-02-20
의뢰 질의는 다음과 같다.
이 의견서가 매도인의 납품 지연에 관한 채무불이행·손해배상 쟁점과
반론·증거·권고를 적절히 연결하는지 평가하라.
의견서는 민법 제390조를 채무불이행의 출발점으로, 제393조를 손해배상 범위와 예견가능성으로, 제396조를 채권자 과실과 손해액 조정으로 연결했다. 그러나 다음 자료는 완전히 확정하지 않았다.
계약상 면책·불가항력·책임제한·유예·통지 조항
운송장애의 실제 원인과 예견·회피 가능성
원계약가격과 대체구매가격
대체품의 수량·규격·품질 동등성
대체구매 필요성과 구매 시기
직접 관련 판례 원문
이 사례는 실제 손해배상 청구의 승패를 맞히기 위한 것이 아니다. 의견서 작성 당시의 법적 프레임과 위험통제가 합리적이었는지를 시험하는 pre-action-framework fixture다.
6. 처음에는 평가 가능성부터 고정했다
법률의견서 평가에서 자주 생기는 오류는 실제 처분·판결·공고가 없다는 이유로 의견서 자체를 평가 불가로 만드는 것이다.
이번 사례에는 아직 실제 소송 결과가 없다. 그렇다고 다음과 같이 처리하지 않았다.
결과 없음 → LIMITED → 점수 없음
대신 다음을 구분했다.
실제 결과가 적법했는가? → 나중의 OUTCOME_VALIDATION
작성 당시 예측이 합리적이었는가? → 지금의 ex-ante 평가
질의, 합성 사실, 기준일, 관할, 필수 조문 receipt, 독립 재확인 자료가 있었으므로 입력 게이트는 EVALUABLE로 고정했다. 다만 합성 사실과 실제 증거를 혼동하지 않도록 시나리오 상태와 미확인 자료를 별도로 기록했다.
7. 점수만으로는 Gold를 만들 수 없었다
처음 live canary는 실행 자체에는 성공했다.
호출 수: 7
성공: 7
실패: 0
하지만 Gold는 부여하지 않았다. 점수와 실행 성공은 Gold와 다른 문제였기 때문이다. 처음 막힌 이유는 다음과 같았다.
본문 인용과 권위 receipt의 추적성이 충분히 결정되지 않음
Full moderator 실행 여부와 미해결 불확실성 처리 규칙이 지나치게 엄격함
여기서 두 가지를 보완했다.
7.1 bounded uncertainty를 실패와 구분했다
사전예측형 의견서에는 실제 계약서·가격자료·판례 원문이 아직 없을 수 있다. 이를 전부 “미해결이므로 Gold 불가”라고 하면, 사전예측의 한계를 정직하게 공개한 의견서가 오히려 불리해진다.
그래서 Gold contract에 다음 정책을 넣었다.
{
"allow_bounded_uncertainties": true,
"scope": "SCOPED_GOLD: ex-ante-prediction"
}
단순히 불확실성을 허용한 것은 아 니다. 다음 조건을 함께 요구했다.
Full moderator가 실제로 실행될 것
외부 재확인 receipt가 있을 것
Lite moderator가 아닐 것
불확실성이 공개되어 있을 것
FATAL·BLOCKED·NOT_VERIFIED 같은 차단 표지가 없을 것
불확실성을 숨기면 Gold를 얻는 구조가 아니라, 불확실성을 공개하고 그 범위를 고정해야 Gold를 검토할 수 있는 구조다.
7.2 authority citation map을 만들었다
평가자가 “조문번호가 본문에 있다”고 말하는 것만으로는 충분하지 않았다. 그래서 필수 조문마다 다음 연결을 결정적으로 기록했다.
required article
→ authority receipt
→ claim ID
→ opinion locator
→ 실제 citation text
이번 fixture의 연결은 다음과 같다.
민법 제390조
→ AUTH-390-HIST-20260220
→ CLM-LAW-390-HIST-001
→ 제4절 제1문단
민법 제393조
→ AUTH-393-HIST-20260220
→ CLM-LAW-393-HIST-001
→ 제4절 제2문단
민법 제396조
→ AUTH-396-HIST-20260220
→ CLM-LAW-396-HIST-001
→ 제4절 제3문단
검사 항목은 다음과 같다.
receipt가 실제로 존재하는가
receipt의 조문과 map의 조문이 일치하는가
receipt가 verified인가
claim이 존재하는가
claim source_refs에 receipt가 연결되는가
citation text가 본문에 실제로 있는가
opinion locator가 존재하는가
필수 조문 전체가 빠짐없이 매핑되는가
이 map이 통과하고 verifier가 WARN을 남긴 경우에는 비치명적 추적성 경고를 해소할 수 있다. 반대로 verifier가 FAIL을 내리면 map만으로 덮지 않는다.
8. 실제로 돌려 본 결과
첫 live canary
첫 live에서는 세 평가자·검증자·조정자 호출 자체는 성공했지만 Gold가 차단되었다. 이 결과는 런타임이 고장났다는 뜻이 아니라, Gold contract가 아직 사전예측형 법률의견서의 불확실성과 본문 추적성을 충분히 표현하지 못했다는 뜻이었다.
citation map을 추가한 v4
citation map과 bounded uncertainty 정책을 추가한 v4에서는 다음 결과를 얻었다.
호출: 7/7 성공
최종 점수: 80.0
inspection_gate: PASS
input_gate: EVALUABLE
Full moderator: 성공
gold_eligible: true
scope: SCOPED_GOLD: ex-ante-prediction
이 단계에서 verifier의 본문 인용 상태는 WARN이었지만, 결정적 citation map이 조문·claim·receipt·본문을 모두 확인하여 제한된 경고를 해소했다.
다만 조정자는 민법 제396조에 관한 문구를 다시 읽고, 의견서의 다음 표현을 보정할 필요가 있다고 지적했다.
참작될 수 있다
법문 취지에 맞추어 다음과 같이 고쳤다.
참작하여야 한다
법률문구를 보정한 v5
v5에서는 문구를 수정하고 원문 SHA-256을 다시 계산했다.
7299c321a0d897fca3d5f64bc9d98df9f1607c35d08d4d465f46e1631ef332f3
그 후 mock과 실제 Hermes Full live를 모두 재실행했다.
구분
결과
Grader A
77.0
Grader B
84.75
Grader C
80.0
최종 점수
80.0
호출
7/7 성공
검증자 retry
0
inspection gate
PASS
input gate
EVALUABLE
Full moderator
성공
authority map
3개 조문 모두 PASS
verifier citation
PASS
Gold
SCOPED_GOLD: ex-ante-prediction
최종 JSON의 핵심 상태는 다음과 같다.
finalization:
pilot_status: FINALIZED
gold_eligible: true
gold_scope: SCOPED_GOLD: ex-ante-prediction
blocked_gold_reasons: []
reopen_conditions: []
조정자는 점수를 바꾸지 않았다. 대신 다음을 다시 확인하고 제한사항으로 남겼다.
계약상 면책·불가항력·책임제한·유예·통지 조항
원계약가격과 대체구매가격
대체품의 수량·규격·품질 동등성
직접 관련 판례의 구체적 적용
이것이 조정자의 역할이다. 모든 충돌을 점수 변경으로 끝내는 것이 아니라, 공식 근거로 확인할 부분과 계속 미해결로 남길 부분을 나눈다.
9. 앙상블을 붙이고 배운 것
첫째, 모델 수보다 정보 공개 시점이 중요했다
세 명을 붙였다는 사실만으로 독립 평가가 되지 않는다. 서로의 결과를 보지 않게 하고, 검증자가 점수를 보기 전에 독립 체크리스트를 만들도록 해야 했다. 독립성은 모델 이름보다 무엇을 언제 보았는가로 설계해야 했다.
둘째, 법률 평가는 평균을 내면 안 되는 충돌이 있다
두 평가자가 어떤 조문 누락을 지적했다고 해서 그 조문이 자동으로 필수 권위가 되는 것은 아니다. 이번 사례에서 제387조는 논증을 보강할 수 있는 인접 조문이었지만, 이번 Gold contract의 필수 권위는 제390·393·396조였다. 조정자는 이 범위를 다시 고정했다.
셋째, Gold는 높은 점수가 아니다
v5의 평가자 점수는 77.0, 84.75, 80.0으로 서로 달랐다. Gold는 점수가 높아서 주어진 것이 아니다. 다음 조건을 모두 충족했기 때문에 부여되었다.
입력 게이트 EVALUABLE
필수 권위 receipt 확인
본문·claim·receipt citation map 통과
EvidencePack과 external recheck 확인
예측 전제·결정 pivot·위험통제 기록
bounded uncertainty 공개
Full moderator 실행
검증 상태 PASS
넷째, 법률문구 하나도 재검증 대상이었다
v4에서 Gold를 달성한 뒤에도 조정자는 민법 제396조 문구의 강도를 다시 지적했다. 평가 시스템을 운영하는 목적은 Gold 라벨을 얻는 것이 아니라, 이런 문구·근거·범위의 문제를 다시 발견하는 데 있다.
다섯째, 실제 결과가 없는 사안도 평가할 수 있다
이번 fixture에는 실제 판결이나 처분이 없다. 그러므로 OUTCOME_GOLD를 주장하지 않는다. 대신 의견서 작성 당시의 법적 프레임, 조건부 결론, 증거계획, 반론 대비, 불확실성 공개를 평가하는 SCOPED_GOLD: ex-ante-prediction만 부여했다.
나중에 실제 공고·처분·판결이 생기면 그것은 별도의 OUTCOME_VALIDATION 입력이다. 결과가 예측과 다르다는 이유만으로 당시의 합리적인 예측을 소급하여 틀렸다고 판정하지 않는다.
10. 속도와 비용의 현실적인 균형
앙상블은 단일 평가보다 오래 걸린다. 이번 live canary는 세 평가자·검증자·조정자를 포함해 총 7회의 호출을 수행했고, 평가자·검증자 단계와 조정자 단계의 시간을 telemetry로 남겼다.
따라서 운영에서는 다음처럼 나누는 것이 현실적이다.
초안·반복 피드백
→ QUICK
제출 전·중요 의견서·Gold 후보
→ ENSEMBLE
모델 경합이 큰 영역만 재검증
→ ENSEMBLE + 조건부 moderator
--force-moderator는 운영 기본값이 아니라 live moderator 경로를 확인하기 위한 canary 옵션으로 사용했다. 실제 운영에서는 점수 범위, 게이트 충돌, 중심 권위 불일치, 검증자 신호가 있을 때만 조정자를 호출한다.
11. 현재 만든 구조
전체 흐름은 다음과 같다.
사용자 선택
↓
빠른 단일 평가 또는 앙상블 평가
↓
claim inspection gate
↓
입력 게이트
↓
평가자 A·B·C 독립 실행
↓
검증자 독립 체크리스트
↓
검증자 비교
↓
충돌·오독·과잉감점이면 조정자
↓
점수·근거·불확실성·citation map 집계
↓
예측 Gold 또는 보류·재개 조건 확정
실행기는 다음 감사 정보를 남긴다.
호출별 성공·실패·retry
모델과 역할
입력 게이트
평가자별 rubric
검증자 flags
조정자 source_recheck
authority citation map
최종 점수
Gold scope와 차단 사유
이렇게 해야 나중에 “왜 80점인가?”뿐 아니라 다음 질문에도 답할 수 있다.
왜 이 조문을 필수로 보았는가?
누가 어떤 근거를 놓쳤는가?
어떤 불확실성은 허용했고 어떤 불확실성은 차단했는가?
조정자가 점수를 바꾸었는가, 아니면 근거 분류만 바꾸었는가?
12. 다음 실험
이번 실험은 사람 채점자의 Gold 정답과 비교한 실험이 아니라, 실행 구조와 근거 추적성을 검증한 canary였다. 다음에는 사람 판정이 있는 비식별 법률의견서 묶음을 사용해 단일 평가와 앙상블을 비교할 예정이다.
비교 지표는 점수 하나로 끝내지 않는다.
사람 판정과의 평균절대오차(MAE)
영역별 점수 분산
핵심 법리·권위 누락 발견률
unsupported deduction 비율
citation map 완성률
EVALUABLE/LIMITED/DEFERRED 판정 일치율
조정자 개입률과 개입 후 오류 감소율
호출 시간·비용
법률의견서에서는 여기에 다음 지표도 추가할 수 있다.
기준일이 다른 법령을 섞은 비율
미검증 판례를 사실처럼 제시한 비율
증거와 요건을 잘못 연결한 비율
합성 사실을 확정 사실처럼 표현한 비율
실제 결과 부재를 이유로 부당하게
LIMITED처리한 비율Gold 이후 사람이 재개 조건을 발견한 비율
도움받은 글
MOSL, 「논술 채점 Skill에 세 명의 채점자와 조정자를 붙여 보았다」, GPTers, 2026년 8월 확인.
참고한 내용: 빠른 단일 채점과 앙상블 채점의 선택, 독립 채점자 3명, 점수를 보기 전 독립 검증, 충돌 문항만 조정, 점수 상승이 아닌 감점 근거 검증, 속도와 비용의 trade-off.
적용한 방식: 논술의 제시문·답안·공식 해설 구조를 법률의견서의 사실·법령·판례·증거 receipt·기준일 구조로 바꾸고, Gold contract와 citation map을 추가했다.
마무리
세 명의 평가자와 조정자를 붙이는 일은 “AI에게 세 번 물어보기”와 다르다. 법률의견서 평가에서 필요한 것은 모델 수가 아니라 다음 네 가지였다.
독립성
공식 권위의 범위
불확실성의 공개
재현 가능한 감사 기록
이번 사례에서 앙상블은 한쪽으로 점수를 밀어 올리지 않았다. 어떤 평가는 과잉 감점을 되돌렸고, 어떤 평가는 법률 표현을 더 엄격하게 고치게 했다. 최종 Gold는 점수의 높이가 아니라, 무엇을 확인했고 무엇을 아직 모르는지 설명할 수 있는 상태에 붙였다.
따라서 현재 법률의견서 평가 Skill의 Gold는 다음 의미로 한정한다.
SCOPED_GOLD: ex-ante-prediction
= 정해진 기준일·권위·사실 전제 안에서
사전예측형 법률의견서의 구조·근거·불확실성 처리가
재현 가능한 평가 계약을 통과했다는 뜻
실제 판결이나 처분의 결과를 보증하는 라벨은 아니다. 그 결과가 생기는 날에는 별도의 OUTCOME_VALIDATION을 다시 실행해야 한다.