The Machine: AI가 AI 활용 코드를 평가하는 법
AI 에이전트를 하네스로 묶어 400여 명의 제출물을 자동 채점하는 시스템을 만들고 고도화했다.
400여 명의 제출물을 사람 손으로 읽고 채점하는 일은 현실적으로 불가능했다. 그래서 터미널 기반 AI 에이전트를 범용 실행자로 두고, clone부터 보안 스캔, Docker 빌드, 기능 테스트, 점수 계산, Slack 알림까지 전 과정을 자동으로 돌리는 평가 머신을 설계했다.
핵심은 에이전트를 직접 만드는 것이 아니라, 에이전트가 따를 하네스를 만드는 일이었다. 지침서는 Markdown으로 작성하고, 출력은 JSON Schema로 강제해 재현성을 확보했다. 후보자별로 독립 서브 에이전트를 띄워 컨텍스트 오염을 막고, 각 후보자는 깨끗한 채점실에서 평가받도록 했다.
평가 파이프라인은 7단계로 구성됐다.
- Init Stage: GitHub 레포를 clone하고 마감 이전 마지막 커밋으로 고정
- Security Gate: 네트워크 요청, OS 명령, 시크릿 하드코딩 등을 점검
- Preflight Gate: README, 소스 디렉토리, 빌드 설정 유효성 확인
- Quality Gate: AI가 코드·문서·프롬프트를 읽고 8개 영역에서 깊이를 채점
- Functional Gate: Docker에서 서버를 띄우고 테스트 케이스 실행
- Scoring Stage: 기능과 깊이를 합산해 3-Tier 모델로 최종 점수 산출
- Report Stage: 대시보드 갱신, Slack 알림, Docker 정리
처음에는 Pass/Fail, 그다음은 S/A/B/C/D/F 등급으로 갔지만, 기능과 사고의 깊이를 분리하지 않으면 변별력이 부족했다. 결국 Base 100점 + Depth 120점의 체계로 정리했고, Ace, Craftsman, Hustler, Thinker, Contender, Rookie, Incomplete의 7단계 랭크를 만들었다. 특히 Hustler와 Thinker는 기능은 강하지만 사고가 얕은 경우와, 실행은 삐끗했지만 사고가 깊은 경우를 구분하기 위해 만든 랭크였다.
실전에서는 루브릭 튜닝이 핵심이었다. 초기에는 점수 변동폭이 컸지만, 증거 체크리스트를 추가해 흔들림을 줄였다. 17번의 채점 모델 변경, 26번의 초기화를 거치며 루브릭을 계속 고쳤고, 자동 평가 뒤 별도 에이전트가 overscored/underscored 패턴을 찾아 루브릭 자체를 개선하는 세 겹의 피드백 루프를 만들었다.
인프라도 중요했다. 후보자 명단 생성, GitHub 초대, 제출물 수집, 평가 상태 추적, 점수 동기화, 합격자 명단 생성, 면접관 초대까지는 n8n, PostgreSQL, Google Sheets, GitHub API가 연결했고, 대시보드로 진행 상황을 추적했다. 결과적으로 시스템을 만드는 커밋보다 실제로 시스템을 돌리는 커밋 비중이 훨씬 컸고, AI 채점은 단순한 기능이 아니라 전체 채용 프로세스를 떠받치는 운영 시스템의 일부가 됐다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.
