감으로 판정하던 AI에 로나로 '채점기'를 붙였습니다

로나로 감으로 보던 판정을 점수로 바꾸기
홍보 규정 판정 스킬에 Eval 붙이기

오픈채팅방 홍보 규정 위반을 가려내는 AI 스킬에, 판정을 채점하는 Eval을 붙였습니다.
스킬 코드는 한 줄도 건드리지 않고요.

■ Eval이란 — AI 출력에 채점기를 붙이는 기능

한국어로 된 웹사이트의 홈페이지


Eval은 "기대값(expectation)"을 먼저 정의하고, 실제 실행 기록(트레이스)을
그 기대값에 대고 근거 기반으로 통과/실패를 매기는 채점 장치입니다.
"느낌상 잘 되는 것 같다"를 "12건 중 몇 건 통과했다"로 바꿔주는 게 이 기능의 전부이자 핵심입니다.


[1] 기대값 정의
→ "외부 서비스 홍보는 위반" 같은 조건을 사람이 읽을 수 있는 문장으로 미리 적어둠

[2] 트레이스 실행
→ 실제 입력을 스킬에 흘려보내 "입력 → 근거 → 판정" 기록을 남김

[3] 근거 대조 채점
→ 채점자가 트레이스를 읽고 기대값 하나하나에 증거를 붙여 판정

PASS (증거 있음) / FAIL (증거 있음)

이 기능을 붙일 때 실제로 중요했던 특징 세 가지:

1) 명확한 건 코드, 애매한 건 심판

참여코드·도메인처럼 참/거짓이 명확한 조건은 코드가 채점하고,
문맥과 의도가 필요한 조건만 AI 심판에게 넘깁니다.
전부 AI에게 맡기지 않는 게 이 기능의 설계 원칙입니다.

2) 증거 없이는 통과 없음

채점자는 "필드 이름이 맞다" 같은 표면적 일치가 아니라,
실제로 과제가 제대로 수행됐다는 근거를 인용해야 통과로 판정합니다.
부분 점수는 없습니다 — 통과 아니면 실패.

3) 채점 기준 자체도 비평받음

채점자는 결과만 보지 않고 "이 기대값은 틀린 답도 통과시킬 만큼
헐겁다" 같은 약점을 함께 지적합니다. 채점 기준이 스스로 갱신되는 구조입니다.

▶ 한 번 만들어두면 재실행은 명령어 한 줄입니다. 프롬프트를 고치든
모델을 바꾸든, 같은 골든셋에 같은 기준으로 다시 돌려서 숫자로

■ EVAL 붙이기 전후의 차이!

■ 01 — 먼저 "잘한 판정"을 세 줄로 못박기

[최우선] 거짓 양성 0
멀쩡한 대화를 위반으로 잡지 않는다. 한 번만 나와도 사고.

[필수] 거짓 음성 0
진짜 홍보를 놓치지 않는다. 규정이 무력해지는 지점.

[필수] 근거 추적
판정마다 어떤 규정을 어떤 증거로 적용했는지 남긴다.

■ 02 — 붙이는 순서

1. 기준 정의

2. 트레이스 수집
실제 판정 12건을 "입력 → 근거 → 판정" 형태로 기록.

3. 실패 카탈로그
사람이 직접 읽으며 틀리기 쉬운 지점 5가지를 뽑음.
예) 내부 소속 방인데 외부 유인으로 오판 · "무료"라는 말만 보고 넘어갔다가 본문의 유료 링크를 놓침

4. 채점 방식 분리
규칙으로 떨어지는 건 코드, 뉘앙스는 AI 심판. 이 글의 핵심입니다.

5. 골든셋 고정 + 재실행
정답지를 얼리고, 커맨드 한 줄로 언제든 다시 돌림.

■ 12건에 대한 번호 채점자 판정 결과

한국사이트 스크린샷

[코드 체크] 3건 — 규칙으로 딱 떨어지는 것
내부 소속 참여코드, 자체 도메인 여부처럼 참·거짓이 명확한 조건.

→ 100% 정확 · 실행 비용 거의 0 · 결과가 항상 같음

[AI 심판] 9건 — 사람도 갈리는 것
"이건 교육 행위인가, 사업 홍보인가" 같은 문맥·의도 판단.

→ 코드로는 못 잡는 영역 · 비싼 대신 뉘앙스를 봄

■ 03 루프로 한 바퀴 더 재채점

'진짜 판사 없음 12'라고 적힌 텍스트가 있는 검은 화면

한 바퀴 = 12건 재채점

$ eval run promo-judge --golden 12

■ 남은 생각

이번 로나를 활용해서 eval 스킬을 활용하면서 가장 크게 배운 건,
팀 전체가 함께 쓰는 공용 스킬일수록 이 안전망이 필요하다는 점이었습니다.
누가 언제 손대도 판정 품질은 지켜지니까요.

혹시 여러 사람이 같이 쓰는 AI 스킬을 운영 중이시라면, 사례 열 개만이라도 모아 한번 붙여보세요!

1
4개의 답글
밀어주고 끌어주는

온·오프라인 AI 스터디

AI로 어디까지 할 수 있는지
직접 확인하실 분만 신청하세요.