coredot.today
AutoHarness 논문 해설 — AI가 스스로 '규칙 위반 방지 코드'를 만든다
블로그로 돌아가기
AutoHarnessAI 에이전트LLM코드 생성GeminiGPT-5.2논문 리뷰TextArena

AutoHarness 논문 해설 — AI가 스스로 '규칙 위반 방지 코드'를 만든다

Gemini-2.5-Flash 체스 대회 패배의 78%가 '반칙'이었다. Google DeepMind의 AutoHarness 논문은 LLM이 스스로 규칙 검증 코드를 작성해 이 문제를 해결한다. 작은 모델이 큰 모델을 이기는 역전극의 비밀.

코어닷투데이2026-03-3146

들어가며: AI 체스 챔피언의 굴욕적인 패배

AutoHarness — AI가 스스로 규칙 위반 방지 코드를 만든다

2025년, Kaggle에서 열린 GameArena 체스 대회에서 황당한 일이 벌어졌다. Google의 최신 모델 Gemini-2.5-Flash가 참가해 처참한 성적을 냈는데, 패배 원인을 분석해보니 78%가 전략 실패가 아니라 "반칙"이었다.

무슨 뜻이냐면 — AI가 체스 규칙을 몰라서 진 게 아니다. 규칙을 "알면서도" 비숍을 직선으로 움직이거나, 킹이 체크 상태인데 다른 수를 두거나, 이미 잡힌 말을 다시 움직이는 불법 수(illegal move)를 뒀다. 심판이 "반칙!"을 선언하면 그 즉시 패배 처리된다.

AI가 반칙을 범하는 상황

이건 체스만의 문제가 아니다. 지뢰찾기에서 이미 열린 칸을 다시 클릭하고, 오셀로에서 뒤집을 수 없는 위치에 돌을 놓고, 스도쿠에서 같은 행에 중복 숫자를 넣는다. LLM 에이전트가 게임 규칙을 "이해"하고 있음에도 불구하고, 실제 행동에서는 규칙을 위반하는 기이한 현상이 반복되고 있었다.

2026년 2월, Google DeepMind와 Causal 팀의 연구자들이 이 문제에 대한 근본적인 해법을 제시했다. 바로 AutoHarnessAI가 스스로 자신의 행동을 검증하는 코드를 작성하게 하는 논문이다.

💡 핵심 아이디어: LLM에게 "규칙을 지켜라"고 말하는 대신, LLM이 직접 "규칙 검증 코드"를 작성하게 하면 어떨까?

결과는 놀라웠다. 작고 저렴한 Gemini-2.5-Flash가 자신이 만든 코드 안전장치를 장착하자, 크고 비싼 Gemini-2.5-Pro와 GPT-5.2를 능가했다. 145개 게임에서 불법 수 발생률 0%를 달성했다.

이 글은 그 논문을 완전 해부한다. AI 에이전트가 왜 규칙을 어기는지의 역사부터, AutoHarness의 작동 원리, 그리고 2026년 AI 에이전트 시대에 이 기술이 갖는 의미까지.


제1장: AI는 왜 "아는 규칙"을 어길까?

1.1 LLM의 이상한 능력 격차

2022년부터 LLM은 코드 생성수학적 추론에서 인간 수준의 성능을 보여왔다. AlphaGeometry2는 국제수학올림피아드 기하학 문제를 풀었고, AlphaEvolve는 과학적 발견을 코드로 구현했다. "AI가 코딩과 수학을 잘한다"는 건 2026년 현재 상식이다.

하지만 이상한 점이 있다. 규칙이 명확한 환경에서의 행동 계획에서는 여전히 취약하다.

🧠
LLM이 잘하는 것
코드 생성 · 수학 증명 · 자연어 이해 · 패턴 인식
⚠️
LLM이 못하는 것
게임 상태 추적 · 합법 수 판별 · 다단계 행동 계획 · 제약 조건 준수
💡
핵심 모순
"체스 규칙을 설명할 수 있지만, 체스를 규칙대로 두지 못한다"

이 현상을 학계에서는 "action applicability problem"(행동 적용 가능성 문제)이라고 부른다. 2023년 ASU의 Valmeekam 등이 발표한 연구에서 처음 체계적으로 밝혀졌고, 2025년 ACPBench Hard 벤치마크에서 LLM들이 "이 상태에서 어떤 행동이 가능한가?"를 판단하는 능력이 현저히 낮다는 것이 입증됐다.

1.2 왜 이런 일이 생길까?

이유는 LLM의 근본적인 작동 방식에 있다. LLM은 "다음 토큰 예측" 기계다. 체스판의 현재 상태를 텍스트로 받으면, 훈련 데이터에서 가장 그럴듯한 다음 수를 "예측"한다. 하지만 이 예측에는 실제 게임 상태에 대한 시뮬레이션이 없다.

LLM의 사고 과정
입력 "현재 체스판: Ke1, Ra1, Rh1, ... 상대 킹이 e8에 있다"
추론 "훈련 데이터에서 비슷한 상황에서 사람들이 자주 둔 수는..."
출력 "e2e4" ← 하지만 e2에 폰이 없거나, 경로에 다른 말이 있을 수 있다!

Tree of Thoughts(Yao et al., 2023)같은 방법론은 LLM의 내부 "세계 모델"을 이용해 탐색하지만, 이 세계 모델 자체가 환각(hallucination)에 취약하다. "이 수가 합법인가?"를 LLM에게 물어봐도 LLM은 자신감 있게 틀린 답을 준다.

기존 해결책은 세 가지였다:

방법원리문제점
파인튜닝규칙 위반 사례를 추가 학습느리고 비싸며, 다른 능력이 저하됨
수동 하네스 코딩개발자가 규칙 검증 코드를 직접 작성게임마다 새로 만들어야 함 (145게임 × N시간)
프롬프트 엔지니어링"합법적인 수만 두세요"라고 지시효과 불안정, 복잡한 규칙에서 실패

1.3 "행동 가능성" 문제의 실제 사례들

이 문제가 게임에만 해당한다고 생각하면 오산이다. 2026년 현재, AI 에이전트가 실제 업무에 투입되면서 같은 문제가 도처에서 나타나고 있다.

  • 코딩 에이전트: 컴파일 불가능한 코드를 생성하거나, 존재하지 않는 API를 호출
  • 웹 브라우징 에이전트: 이미 사라진 버튼을 클릭하려 하거나, 팝업이 떠 있는데 뒤의 요소를 클릭
  • 로봇 제어: 물리적으로 불가능한 동작을 지시 (벽 너머로 팔 뻗기)
  • API 에이전트: rate limit을 무시하고 연속 호출하거나, 필수 파라미터를 빠뜨림

모든 AI 에이전트 시스템은 "이 행동이 지금 가능한가?"를 검증하는 메커니즘이 필요하다. AutoHarness가 주목받는 이유가 바로 이것이다.


제2장: "Code as X" — 코드로 AI를 제어하는 아이디어의 계보

AutoHarness를 이해하려면, "AI의 행동을 코드로 제어한다"는 아이디어의 역사를 알아야 한다.

2.1 Code as Policies (2023) — 로봇을 코드로 조종하다

2023년, Google Research의 Liang 등이 ICRA에서 발표한 "Code as Policies" 논문이 이 분야의 시작이었다. 핵심 아이디어는 간단했다: 로봇에게 "컵을 집어서 테이블 위에 놓아라"라고 말하면, LLM이 이를 Python 코드로 변환하여 로봇을 제어한다.

hljs language-python
# "Code as Policies" 스타일의 로봇 제어
def pick_and_place():
    cup = detect_object("cup")
    gripper.move_to(cup.position)
    gripper.close()
    gripper.move_to(table.center + [0, 0, 0.1])
    gripper.open()

자연어 지시를 직접 해석하는 것보다, 코드라는 명시적이고 검증 가능한 중간 표현을 거치면 정확도가 크게 높아졌다.

2.2 Voyager (2023) — AI가 코드 라이브러리를 스스로 만들다

같은 해, Wang 등이 발표한 Voyager는 마인크래프트에서 작동하는 LLM 에이전트였다. Voyager의 혁신은 "스킬 라이브러리" — AI가 성공한 행동을 코드로 저장하고, 나중에 재사용하는 시스템이었다.

새로운 과제 발생
기존 스킬 검색
LLM이 새 코드 작성
성공 시 라이브러리에 저장

나무를 캐는 코드, 집을 짓는 코드, 몬스터를 피하는 코드 — 이런 스킬들이 축적되면서 Voyager는 점점 더 복잡한 과제를 수행할 수 있게 됐다.

2.3 Eureka (2024) — 보상 함수를 코드로 진화시키다

NVIDIA의 Ma 등이 ICLR 2024에서 발표한 Eureka는 한 걸음 더 나갔다. 로봇의 보상 함수(reward function)를 LLM이 코드로 작성하고, 진화적 탐색으로 개선하는 시스템이었다. 인간 전문가가 설계한 보상 함수보다 83%의 태스크에서 더 나은 성능을 보였다.

2.4 Reflexion (2023) — "말로 하는 자기 반성"의 한계

NeurIPS 2023에서 발표된 Reflexion(Shinn et al.)은 LLM이 실패 경험을 자연어 메모로 저장하고 다음 시도에 활용하는 "언어적 강화학습" 시스템이었다. "지난번에 문을 열지 않고 방에 들어가려 해서 실패했다. 다음엔 먼저 문을 열자."

아이디어는 좋았지만 한계가 명확했다 — 자연어 반성은 모호하고, 정확한 규칙으로 전환되지 않는다. "문을 먼저 열자"라는 교훈이, 다음에 "창문으로 들어가려는" 실수를 막아주진 않는다.

2.5 AutoHarness가 다른 이유: "코드로 하는 자기 검증"

AutoHarness는 이 모든 아이디어를 통합하면서, 결정적인 전환을 이뤘다:

접근법코드의 역할AutoHarness의 차별점
Code as Policies행동을 코드로 실행+ 행동의 합법성을 코드로 검증
Voyager성공 스킬을 코드로 축적+ 실패 원인을 코드로 차단
Eureka보상 함수를 코드로 진화+ 규칙 검증 코드를 트리 탐색으로 진화
Reflexion자연어 반성+ 반성을 코드로 구체화 → 검증 가능

제3장: AutoHarness — 작동 원리 완전 해부

3.1 핵심 아이디어: "하네스"가 뭔데?

하네스(harness)는 원래 말이나 안전벨트를 고정하는 장치를 뜻한다. 소프트웨어 공학에서는 테스트 하네스 — 코드의 올바른 동작을 검증하는 자동 검사 장치를 의미한다.

AutoHarness에서 하네스는 LLM 에이전트의 안전벨트다. LLM이 행동을 제안하면, 코드 하네스가 "이 행동이 합법인가?"를 검증한다. 합법이면 통과, 불법이면 차단하고 다시 요청한다.

코드 하네스가 AI를 보호하는 개념

그런데 핵심은 — 이 하네스 코드를 사람이 아니라 LLM 스스로 작성한다는 것이다.

3.2 두 가지 핵심 함수

AutoHarness가 만드는 코드의 핵심은 딱 두 개의 Python 함수다:

AutoHarness 핵심 인터페이스
propose_action(board: str) → str 주어진 게임 상태에서 합법적인 행동 하나를 제안한다

is_legal_action(board: str, action: str) → bool 주어진 게임 상태에서 특정 행동이 합법인지 검증한다

이 두 함수가 전부다. 체스든 지뢰찾기든 오셀로든, 모든 게임에 대해 이 인터페이스로 통일된다. LLM이 해야 할 일은 각 게임의 규칙에 맞는 이 두 함수의 구현체를 작성하는 것이다.

3.3 세 가지 작동 모드

AutoHarness는 이 함수들을 세 가지 방식으로 활용한다:

Action Filter
모드 1
코드가 합법 수 목록 생성 → LLM이 그중 최선 선택
Action Verifier
모드 2 (메인)
LLM이 수를 제안 → 코드가 합법성 검증 → 불법이면 재시도
Code as Policy
모드 3
코드가 직접 최적의 수를 선택 → LLM 호출 0회

모드 1: Action Filter — "메뉴판 만들기"

레스토랑에 비유하면, 코드가 먼저 "주문 가능한 메뉴판"을 만들고, LLM이 그 메뉴에서 고른다. propose_action()을 여러 번 호출해서 합법적인 수 목록을 만들고, LLM이 Chain-of-Thought 추론으로 최선의 수를 선택한다.

모드 2: Action Verifier — "안전망 쳐놓기" (논문의 주력 모드)

LLM이 자유롭게 수를 제안하되, is_legal_action()거부권을 행사한다. 불법이면 "이 수는 반칙이야, 다시 해봐"라는 메시지와 함께 재시도한다. 거부 샘플링(rejection sampling)과 유사한 방식이다.

모드 3: Code as Policy — "AI 호출 자체를 없애기"

가장 급진적인 모드다. 코드가 직접 최적의 수를 계산한다. 순수 Python + NumPy만으로, LLM을 전혀 호출하지 않는다. 추론 비용이 사실상 $0이다.

3.4 학습 과정: 트리 탐색 + 톰슨 샘플링

AutoHarness의 핵심 혁신은 코드를 어떻게 개선하는가에 있다. 단순히 "에러 메시지를 보고 고치기"가 아니라, 트리 구조의 체계적 탐색을 사용한다.

1단계 초기 코드 생성 — LLM이 게임 설명을 읽고 첫 번째 하네스 코드를 작성한다
2단계 환경 롤아웃 — 10개 병렬 환경에서 최대 1,000스텝 실행. 불법 수가 나오면 즉시 중단
3단계 에러 수집 — 실패한 스텝 중 최대 5개를 샘플링, 게임 상태와 에러 메시지 수집
4단계 Critic (비평가) — 수집된 에러들을 분석하여 유형별로 정리 ("폰 이동 규칙 오류", "캐슬링 조건 누락" 등)
5단계 Refiner (개선자) — 원본 코드 + 에러 분석을 받아 개선된 코드를 생성한다
6단계 톰슨 샘플링 — 트리의 어떤 노드(코드 버전)를 다음에 개선할지 선택. 합법 수 정확도가 1.0이 되면 종료

여기서 톰슨 샘플링(Thompson Sampling)이 핵심이다. 각 코드 버전(트리 노드)의 합법 수 정확도를 추적하고, 탐색(exploration)과 활용(exploitation)의 균형을 잡는다. "이 코드 버전이 유망하지만 아직 충분히 테스트 안 됐으니 한번 더 시도해보자" vs "이미 잘 작동하는 코드를 더 다듬자"의 트레이드오프를 자동으로 조절한다.

3.5 똑똑한 에러 라우팅

코드 개선 과정에서 중요한 세부사항이 하나 있다:

에러 유형별 개선 전략
is_legal_action()이 True를 반환했는데, 실제로는 불법인 경우: → propose_action()과 is_legal_action() 둘 다 수정

is_legal_action()이 False를 반환했는데, 실제로는 합법인 경우: → propose_action()만 수정 (검증 함수는 올바르게 작동 중)

이런 세밀한 에러 라우팅 덕분에 불필요한 수정을 피하고, 실제 문제가 있는 부분만 정확히 고칠 수 있다.

3.6 수렴 속도: 평균 14.5번이면 끝

논문의 실험 결과, 평균 14.5번의 트리 탐색 반복만으로 완벽한 하네스 코드가 완성됐다. 32개 게임 중 19개는 10번 미만의 반복으로 충분했다.

쉬운 게임들 (19/32) < 10회
GermanWhist 43회
Cryptarithm 45회
Othello 62회
Chess 64회

체스가 가장 어려웠다는 게 재미있다. 캐슬링, 앙파상, 프로모션, 체크/체크메이트 같은 특수 규칙이 많기 때문이다. 하지만 64번의 반복이면 — 사람이 체스 엔진을 처음부터 코딩하는 것에 비하면 아주 효율적이다.


제4장: 실험 결과 — 작은 모델의 역전극

4.1 실험 환경: TextArena 145개 게임

실험은 TextArena 플랫폼에서 진행됐다. TextArena는 100개 이상의 텍스트 기반 게임을 제공하는 LLM 에이전트 벤치마크로, OpenAI Gym 스타일 인터페이스를 사용한다.

논문팀은 의도적으로 "Available Moves" 힌트를 제거했다. 원래 TextArena는 매 턴 "가능한 수 목록"을 보여주는데, 이를 숨겨서 에이전트가 스스로 합법 수를 추론해야 하는 더 어려운 환경을 만들었다.

4.2 결과 1: 불법 수 0% 달성

145개 전체 게임에서 불법 수 발생률 0%. 각 게임당 1,000스텝 × 10개 랜덤 시드로 테스트했다. 체스, 오셀로, 지뢰찾기, 스도쿠 등 규칙 복잡도가 극단적으로 다른 게임들에서 모두 완벽한 합법성을 달성했다.

4.3 결과 2: 2인용 게임 — Flash가 Pro를 이기다

16개 2인용 게임에서 Gemini-2.5-Flash+AutoHarness가 Gemini-2.5-Pro와 대결했다.

Flash + AutoHarness 승률 56.3% 9/16 승
Gemini-2.5-Pro 승률 38.2%
Flash (바닐라) 승률 29.7%

가장 작고 저렴한 모델이, 하네스를 장착하는 것만으로 가장 크고 비싼 모델을 이겼다. Flash+AutoHarness는 바닐라 Flash 대비 16개 중 12개 게임에서 승리했다 (승률 64.8%).

4.4 결과 3: 1인용 게임 — 보상값도 우위

16개 1인용 게임에서의 평균 보상값:

모델평균 보상Pro 대비 우위 게임 수
Flash + AutoHarness0.7458/16 우위, 5/16 동률
Gemini-2.5-Pro0.707
Flash (바닐라)0.673

4.5 결과 4: Code as Policy — 가장 충격적인 결과

가장 급진적인 "Code as Policy" 모드의 결과가 논문에서 가장 놀라운 부분이다. LLM을 전혀 호출하지 않는, 순수 Python 코드만으로 게임을 플레이한 결과:

Code as Policy (순수 코드) 0.870 1위
GPT-5.2-High 0.844
Gemini-2.5-Pro 0.707
GPT-5.2 (no thinking) 0.635

Gemini-2.5-Flash가 만든 순수 코드가 GPT-5.2-High를 이겼다.

16개 게임 중 3개에서 Code as Policy가 이기고, 5개에서 GPT-5.2-High가 이기고, 8개는 동률이었다. 전체 평균에서는 코드가 앞섰다.

그런데 더 충격적인 건 비용이다:

💰
GPT-5.2 + GPT-5.2-High 추론 비용
16개 게임 × 20회 매치 = 약 $640
🆓
Code as Policy 추론 비용
약 $0 (순수 Python 코드 실행 — LLM 호출 없음)

물론 하네스 코드를 만드는 과정에서는 LLM 호출이 필요하다 (평균 89.4번의 반복). 하지만 한번 만들어진 코드는 영원히 무료로 재사용된다.


제5장: AutoHarness가 실제로 만든 코드 들여다보기

5.1 지뢰찾기 하네스 — 제약 전파의 진수

논문 부록에는 AutoHarness가 생성한 실제 코드가 공개되어 있다. 지뢰찾기 하네스는 세 단계 전략을 구사한다:

지뢰찾기 AI 전략
전략 1: 첫 수 중앙 셀을 선택한다 (가장자리보다 정보 획득량이 많음)
전략 2: 논리 추론 제약 전파(constraint propagation)로 확실한 안전/지뢰 셀을 추론한다
전략 3: 확률 추정 애매한 경우, 인접 단서와 전체 보드 상태에서 지뢰 확률을 계산하여 가장 안전한 셀을 선택한다

이것은 LLM이 "지뢰찾기를 어떻게 풀어야 하는지" 완벽하게 이해하고, 그 지식을 실행 가능한 알고리즘으로 변환한 것이다. 사람이 코딩하는 것과 비슷한 수준의 전략 구현이다.

5.2 체스 하네스 — 가장 복잡한 규칙 검증

체스 하네스는 AutoHarness가 만든 코드 중 가장 복잡하다. 64번의 반복 끝에 완성된 이 코드는:

  • UCI 좌표 변환: "e2e4" 같은 문자열을 보드 인덱스로 변환
  • 킹 위치 감지: 현재 보드에서 킹의 좌표를 파악
  • 공격 판정 함수: 모든 기물 유형별 공격 판정
    • 폰: 대각선 공격
    • 나이트: L자 이동
    • 킹: 인접 8칸
    • 룩/퀸: 직선 레이캐스팅
    • 비숍/퀸: 대각선 레이캐스팅
hljs language-python
# AutoHarness가 자동 생성한 체스 공격 판정 (간략화)
def is_attacked_by(board, square, color):
    # 나이트 공격 체크
    for dr, dc in [(-2,-1),(-2,1),(-1,-2),(-1,2),
                    (1,-2),(1,2),(2,-1),(2,1)]:
        r, c = square[0]+dr, square[1]+dc
        if in_bounds(r, c) and board[r][c] == knight(color):
            return True
    # 레이캐스팅으로 룩/비숍/퀸 공격 체크
    for direction in ROOK_DIRS + BISHOP_DIRS:
        piece = cast_ray(board, square, direction)
        if piece and piece.color == color:
            if piece.type in valid_attackers(direction):
                return True
    return False

이 코드는 사람이 처음부터 짠 체스 엔진의 합법 수 검증과 거의 동일한 구조다. LLM이 "체스 프로그래밍"이라는 전문 분야의 지식을 코드로 결정화(crystallize)한 셈이다.


제6장: 왜 이것이 2026년에 중요한가?

6.1 AI 에이전트 시대의 핵심 인프라

2026년은 AI 에이전트의 해다. Claude Code, Devin, OpenAI Codex, Google Jules — AI가 독립적으로 코딩하고, 브라우저를 조작하고, API를 호출하는 시대가 왔다. 하지만 이 모든 에이전트들이 공유하는 취약점이 바로 "불법 행동" 문제다.

코딩 에이전트
컴파일 안 되는 코드 생성
웹 에이전트
없는 버튼 클릭 시도
API 에이전트
잘못된 파라미터로 호출
데이터 에이전트
존재하지 않는 컬럼 쿼리

AutoHarness의 아이디어 — "에이전트가 자신의 행동을 검증하는 코드를 스스로 만들게 하자" — 는 이 모든 문제에 적용 가능하다.

6.2 "규모 확장보다 자기 검증"이라는 패러다임

지금까지 AI 업계의 주류 해법은 모델을 키우는 것이었다. 규칙을 어기면? 더 큰 모델을 써라. 환각이 생기면? 더 많은 데이터로 훈련시켜라.

AutoHarness는 정반대를 제안한다: 작은 모델이 스스로 안전장치를 만들면, 큰 모델보다 낫다.

이 결과가 시사하는 바는 크다:

📊
기존 패러다임: Scale is All You Need
더 큰 모델 = 더 나은 성능. GPT-5.2-High($640) vs Flash($수십)
🔄
AutoHarness 패러다임: Self-Verification > Scale
작은 모델 + 자체 검증 코드 → 큰 모델을 능가. 비용은 $0에 수렴
🚀
미래: AI가 스스로 가드레일을 만드는 시대
모든 AI 에이전트가 자기 행동의 합법성을 검증하는 코드를 스스로 작성

6.3 논문이 제시하는 미래 방향

AutoHarness 팀은 세 가지 미래 방향을 제시한다:

  1. 재귀적 자기 개선(Recursive Self-Improvement): 하네스 코드에서 학습한 도메인 지식을 다시 LLM에 파인튜닝하면? 더 나은 LLM이 더 나은 하네스를 만들고, 그것이 다시 LLM을 개선하는 선순환.

  2. 재사용 가능한 하네스 라이브러리: 한번 만든 체스 하네스, 오셀로 하네스를 라이브러리화하면 — 새로운 에이전트가 즉시 사용 가능.

  3. 멀티모달 확장: 텍스트 게임을 넘어서, 이미지 입력이 필요한 게임(Craftax, Terra Nova)에도 같은 원리를 적용.


제7장: 한 줄 요약과 핵심 교훈

핵심 메시지

AutoHarness가 증명한 것은 단순하지만 심오하다:

AI에게 "규칙을 지켜라"고 말하지 말고, "규칙을 검증하는 코드를 짜라"고 하면 된다.

항목수치
테스트 게임 수145개 (1인용 + 2인용)
불법 수 발생률0% (전 게임)
평균 수렴 반복 횟수14.5회
Flash+Harness vs Pro 승률56.3% vs 38.2%
Code as Policy 평균 보상0.870 (GPT-5.2-High: 0.844)
Code as Policy 추론 비용~$0

이 논문이 우리에게 주는 교훈

  1. LLM의 강점(코드 생성)으로 약점(행동 검증)을 보완하라. AI가 코드를 잘 쓴다면, 그 능력을 자기 자신의 안전장치를 만드는 데 쓰게 하라.

  2. 규모가 아니라 구조가 답이다. 작은 모델 + 영리한 구조(코드 하네스) > 큰 모델 + 무방비. 비용 효율성에서도 압도적이다.

  3. "자연어 반성"에서 "코드 검증"으로. Reflexion의 "말로 하는 반성"은 모호하다. AutoHarness의 "코드로 하는 검증"은 명확하고, 실행 가능하며, 재사용 가능하다.

  4. 환경 피드백이 최고의 교사다. LLM의 내부 시뮬레이션은 환각에 취약하지만, 실제 환경의 에러 메시지는 거짓말하지 않는다. 이 신뢰할 수 있는 신호를 코드 개선에 활용하는 것이 핵심이다.


마치며: 모든 AI 에이전트에게 안전벨트를

Code as Policy 개념

2026년, 우리는 AI 에이전트가 일상 업무에 투입되는 시대를 살고 있다. 코드를 짜고, 이메일을 보내고, 데이터를 분석하고, API를 호출한다. 하지만 이 에이전트들은 종종 "할 수 없는 일"을 시도한다.

AutoHarness의 메시지는 명확하다: AI에게 안전벨트를 채워주되, 그 안전벨트를 AI가 직접 만들게 하라. 가장 효과적인 안전장치는 외부에서 강제하는 것이 아니라, 시스템이 스스로 생성하는 것이다.

Gemini-2.5-Flash가 자신만의 코드 하네스를 만들어 GPT-5.2-High를 이긴 것처럼 — 자기 자신의 한계를 코드로 극복하는 AI의 시대가 열리고 있다.


이 글은 Google DeepMind와 Causal의 Xinghua Lou, Miguel Lázaro-Gredilla, Antoine Dedieu, Carter Wendelken, Wolfgang Lehrach, Kevin P. Murphy가 2026년 2월 발표한 논문 "AutoHarness: improving LLM agents by automatically synthesizing a code harness"를 바탕으로 작성되었습니다.