[논문 리뷰] Code as Agent Harness — LLM 에이전트의 계획·실행·검증 루프
Meta·Stanford·UIUC 40명 연구진이 제안한 에이전트 하네스 아키텍처. LLM을 '천재적 이야기꾼이지만 끔찍한 몽상가'로 보고, 3계층 구조로 계획-실행-검증 루프를 강제해 신뢰성을 확보한다.
Series
논문 리뷰- 1AI 엔지니어 필독 논문 10개 — ① 기초 아키텍처 (Attention, VAE, GANs)
- 2AI 엔지니어 필독 논문 10개 — ② NLP 혁명과 멀티모달 (BERT, GPT, ViT, DDPM)
- 3AI 엔지니어 필독 논문 10개 — ③ 실무 적용과 학술의 속도 (RAG, LoRA, PEFT)
- 3AI 엔지니어 필독 논문 10개 — ③ 실무 적용과 학술의 속도 (RAG, LoRA, PEFT)
- 4거대 비전-언어 모델은 단 3개의 Attention Head로 충분하다
- 4[논문 리뷰] SEISMIC — Learned Sparse Retrieval을 마이크로초 단위로 끌어내리기
- 5[논문 리뷰] EnterpriseRAG-Bench: 사내 지식 RAG 벤치마크
- 6[논문 리뷰] A-RAG: Agentic RAG가 2026년의 기본기가 된 이유
- 7[논문 리뷰] Code as Agent Harness — LLM 에이전트의 계획·실행·검증 루프
- 8[논문 리뷰] Scaling Laws for Agent Harnesses — 피드백 계산으로 에이전트 성능 확장하기
- 8[논문 리뷰] DeepSeek-V4 — 1M Context에서 KV Cache 10% 수준으로 압축한 Hybrid Attention
- 9[논문 리뷰] HarnessX — 에이전트 하네스를 실행 트레이스로 진화시키기
- 9[논문 리뷰] HyperTool — 에이전트의 도구 호출 단위를 다시 설계하기
- 10[논문 리뷰] Consensus is Strategically Insufficient — 합의보다 중요한 것은 불일치의 구조다
- 11[논문 리뷰] Do Language Models Need Sleep? — 긴 컨텍스트를 잠자는 동안 정리하는 법
- 12[논문 리뷰] K-BrowseComp — 한국어 웹 브라우징 에이전트는 왜 어려운가
- 13[논문 리뷰] BINEVAL — LLM 평가를 점수가 아니라 질문으로 쪼개기
- 14[논문 리뷰] Generative Agents에서 MemGPT, Mem0까지 — 에이전트 메모리는 어떻게 진화했나
- 15[논문 리뷰] Dense Retriever의 위치 편향은 타고나는가, 학습되는가
Code as Agent Harness: A Framework for Executing Agentic Tasks with LLM-Generated Code
Meta Fundamental AI Research, Stanford University, University of Illinois Urbana-Champaign (2026)- arXiv preprint
문제: LLM의 환각과 신뢰성
LLM은 언어 생성에는 탁월하지만, 복잡한 작업 실행에는 문제가 있습니다. 연구진은 이를 다음과 같이 표현합니다:
"천재적인 이야기꾼이지만 끔찍한 몽상가(brilliant storyteller but terrible hallucinator)"
LLM이 생성한 코드나 계획을 그대로 신뢰할 수 없다는 뜻입니다. 소프트웨어 에이전트의 신뢰성을 높이려면, LLM의 강점(계획·추론)과 한계(신뢰성)를 명확히 구분하고, 실행·검증 단계를 강제해야 합니다.
솔루션: 3계층 에이전트 하네스
논문이 제시하는 에이전트 하네스는 3계층으로 구성됩니다:
1. 인터페이스 계층 (Interface Layer)
에이전트가 상호작용하는 외부 환경을 정의합니다. 이 계층이 없으면 LLM은 무한정 환상적인 반응을 생성할 수 있습니다.
예시:
- 코드 실행 샌드박스 (격리된 환경에서만 코드 실행)
- 도구 API (Bash, Python, SQL 등 제한된 도구만 노출)
- 파일시스템 접근 제한 (읽기/쓰기 권한 제어)
2. 메커니즘 계층 (Mechanism Layer)
에이전트의 실행 순환(루프)을 정의합니다.
구조:
[계획] → [샌드박스 실행] → [검증 및 피드백] → [반복]
각 단계:
- 계획: LLM이 다음 액션을 결정 (코드 생성, 도구 선택)
- 샌드박스 실행: 계획을 격리된 환경에서 실행
- 검증: 실행 결과가 의도한 대로 작동하는지 확인
- 피드백: 검증 결과를 LLM에 전달하여 다음 계획에 반영
이 루프를 강제함으로써, LLM이 "생각만 하고 끝내는" 문제를 해결합니다.
3. 확장성 계층 (Extensibility Layer)
미래 기술(메모리, 협업 등)을 플러그인 방식으로 추가할 수 있도록 설계합니다.
지원 기술들:
- L2MAC: 장기 메모리를 통해 복잡한 작업 상태 유지
- EvoMAC: 런타임에 에이전트 구조 자동 개선
- MAGE: 초정밀 디버깅 피드백으로 신뢰성 강화
실제 성과
논문은 이 하네스를 실제 애플리케이션에 적용한 결과를 보고합니다:
1. 알리바바 소프트웨어 에이전트
- 작업: 프로덕션 이슈 자동 해결
- 결과: 16.9%의 이슈를 완전 자동으로 해결 (사람 개입 없음)
- 의미: 전체 이슈 대응의 1/6을 에이전트가 처리
2. 버클리 자율 실험실
- 작업: 신규 화합물 합성 실험
- 성과: 17일간 41개의 신규 화합물 합성
- 의미: 실험실 자동화의 가능성 입증
미래 기술: L2MAC, EvoMAC, MAGE
한 줄 요약 — 에이전트 하네스는 LLM의 강점(계획·창의성)과 약점(신뢰성)을 분리하는 구조를 통해, 신뢰할 수 있는 소프트웨어 에이전트를 만든다.
L2MAC: 공유 메모리를 통한 장기 상태 유지
복잡한 작업은 여러 단계를 거칩니다. LLM의 컨텍스트 윈도우는 한정되어 있으므로, 이전 단계의 정보를 잊기 쉽습니다.
L2MAC의 해결책:
- 공유 메모리 공간에 작업 상태(progress, decisions, discoveries) 저장
- 각 에이전트 단계에서 필요한 정보만 컨텍스트에 로드
- 매우 복잡한 작업도 단계적으로 완수 가능
EvoMAC: 런타임 협업 구조 자동 개선
단일 에이전트로는 처리 불가능한 복잡한 작업도 있습니다. EvoMAC는 에이전트들 간의 협업 구조를 동적으로 최적화합니다:
- 작업 복잡도에 따라 에이전트 수 조정
- 에이전트 간 정보 흐름 자동 최적화
- 실행 중 병목 지점 자동 감지 및 개선
MAGE: 초정밀 디버깅 피드백
에이전트가 실패했을 때, 단순히 "실패"라고 알려주면 충분하지 않습니다. MAGE는 실패 원인을 정밀하게 분석하여 피드백합니다:
- 에러의 정확한 원인 (문법 오류? 로직 오류? 외부 API 실패?)
- 실패 지점의 맥락 정보
- 다음 시도를 위한 구체적 개선 방향
핵심 인사이트: 데이터와 설계의 중요성
논문의 결론은 흥미롭습니다:
"모델이 할 수 있는 것과 에이전트가 할 수 있는 것을 구분하라"
더 구체적으로:
- 고품질 데이터: 90%
- 하네스 설계: 9%
- 모델 자체: 1%
즉, 더 큰 모델을 만드는 것보다 더 나은 하네스와 데이터가 중요합니다. 이는 현재의 "모델 스케일링 경쟁"과 다른 방향을 제시합니다.
개인 관점: Harness 설계의 가치
성연이 harness 프로젝트를 진행 중인 것과 매우 관련이 깊습니다. 본 논문이 강조하는 몇 가지 핵심은:
- 강제된 루프의 중요성: 계획→실행→검증을 강제하는 구조 자체가 신뢰성을 만든다
- 인터페이스의 명확성: 에이전트가 접근할 수 있는 도구·리소스를 명확히 제한하는 것
- 피드백 루프: 단순한 에러 메시지가 아닌, 맥락 있는 상세한 피드백
이는 Claude Code의 skills, agents, hooks 아키텍처와도 일맥상통합니다.
결론
"Code as Agent Harness"는 단순한 기술 논문이 아닙니다. LLM 기반 에이전트를 신뢰할 수 있게 만들기 위한 근본적인 설계 철학을 제시합니다.
향후 AI 에이전트의 성공 여부는 더 큰 모델이 아니라, 더 나은 하네스를 만드는 능력에 달려 있을 것입니다.