AutoAgent 완벽 가이드
AI가 스스로 에이전트를 설계하는 자율 하네스 엔지니어링
2026년 4월 8일 · by hoin · GitHub ⭐ 3,800+ · MIT License
📑 목차
1. AutoAgent란 무엇인가
인공지능 에이전트 개발의 패러다임이 근본적으로 변하고 있습니다. 기존에는 개발자가 직접 시스템 프롬프트를 작성하고 도구를 정의하며 오케스트레이션 로직을 설계하는 수동적인 방식이 주류였습니다. 하지만 이제 에이전트가 스스로 자신의 하네스를 수정하고 최적화하는 시대가 도래했습니다. 케빈 구(kevinrgu)가 개발한 AutoAgent는 바로 이러한 자율 에이전트 엔지니어링의 핵심 프레임워크입니다.
AutoAgent의 핵심 아이디어는 놀라울 정도로 단순합니다. 메타 에이전트에게 작업을 부여하면 밤새도록 에이전트 하네스를 자동으로 구축하고 반복적으로 개선합니다. 시스템 프롬프트 수정, 도구 추가 및 변경, 에이전트 구성 최적화, 오케스트레이션 개선 등 모든 과정이 자동화됩니다. 벤치마크를 실행하고 점수를 확인한 후 개선이면 유지하고 퇴보면 폐기하는 힐 클라이밍(Hill-Climbing) 방식으로 반복 최적화를 수행합니다.
program.md 마크다운 파일에 목표만 기술하면 됩니다.
이 프레임워크는 GitHub에서 3,800개 이상의 스타와 433개의 포크를 기록하며 큰 주목을 받고 있습니다. SpreadsheetBench에서 96.5%, TerminalBench에서 55.1%의 GPT-5 최고 점수를 달성했으며 MIT 라이선스로 공개되어 누구나 자유롭게 사용할 수 있습니다.
▲ AutoAgent vs 전통적 에이전트 개발 방식 비교
2. 핵심 아키텍처와 구성 요소
AutoAgent의 아키텍처는 세 가지 핵심 구성 요소를 중심으로 설계되었습니다. 각 구성 요소의 역할과 상호작용을 이해하면 프레임워크 전체의 동작 방식을 파악할 수 있습니다.
📄 agent.py — 단일 파일 하네스
에이전트의 모든 구성 요소를 포함하는 핵심 파일입니다. 설정값, 도구 정의와 레지스트리, 에이전트 오케스트레이션 로직, 그리고 하버(Harbor) 어댑터 경계가 포함되어 있습니다. 중요한 점은 하버 어댑터 경계 아래의 코드는 변경 불가능하며, 메타 에이전트가 수정할 수 있는 영역은 경계 위쪽으로 한정된다는 것입니다. 이러한 설계는 안전한 실험과 일관된 실행 환경을 보장합니다.
📝 program.md — 메타 에이전트 지시문
사람이 편집하는 유일한 파일입니다. 메타 에이전트에 대한 지시사항과 실험 목표를 담고 있으며, 에이전트 엔지니어링 루프의 방향을 결정합니다. 구축할 에이전트의 목표, 수정 가능한 구성 요소의 범위, 도구 설계 철학, 성공 지표, 실험 루프 프로세스, 유지 및 폐기 규칙이 포함됩니다.
📁 tasks/ — 벤치마크 작업 디렉토리
하버 프레임워크 형식의 평가 벤치마크 작업들이 저장됩니다. 각 작업은 task.toml, instruction.md, 테스트 스크립트, 도커 환경 설정, 참조 파일들로 구성됩니다. 테스트는 0.0에서 1.0 사이의 점수를 생성하며, 메타 에이전트는 이 총합 점수를 기준으로 힐 클라이밍을 수행합니다.
▲ AutoAgent 전체 아키텍처 다이어그램 — 개발자, 메타 에이전트, 작업 에이전트의 상호작용
작업(Task) 디렉토리 구조
각 벤치마크 작업은 명확한 디렉토리 구조를 따릅니다. task.toml 파일은 메타데이터와 타임아웃 설정을, instruction.md는 에이전트에게 전달되는 프롬프트를 포함합니다. 테스트 디렉토리의 test.sh는 보상 점수를 기록하고, test.py는 결정론적 검증 또는 대규모 언어 모델 기반 판정을 수행합니다.
tasks/my-task/
├── task.toml # 메타데이터, 타임아웃 설정
├── instruction.md # 에이전트에게 전달되는 프롬프트
├── tests/
│ ├── test.sh # 진입점 → /logs/reward.txt에 점수 기록
│ └── test.py # 검증 로직 (결정론적 or LLM 판정)
├── environment/
│ └── Dockerfile # FROM autoagent-base
└── files/ # 참조 파일 (컨테이너에 마운트)
3. 설치 및 환경 설정
AutoAgent를 설치하고 실행하기 위해서는 Docker, Python 3.10 이상, uv 패키지 매니저, 그리고 사용하려는 모델 제공자의 API 키가 필요합니다. 설치 과정은 비교적 간단하지만, 각 단계를 정확하게 따라야 합니다.
▲ 레포지토리 클론 및 핵심 파일 구조 확인
Step 1: uv 패키지 매니저 및 의존성 설치
# uv 패키지 매니저 설치
curl -LsSf https://astral.sh/uv/install.sh | sh
# 레포지토리 클론 및 의존성 설치
git clone https://github.com/kevinrgu/autoagent.git
cd autoagent
uv sync
▲ uv 패키지 매니저 설치 및 의존성 동기화 과정
Step 2: 환경 변수 및 Docker 설정
사용하려는 모델에 맞는 API 키를 환경 변수 파일에 설정합니다. OpenAI 모델을 사용할 경우 OPENAI_API_KEY를, Claude 모델을 사용할 경우 ANTHROPIC_API_KEY를 설정합니다.
# 환경 변수 설정
cat > .env << 'EOF'
OPENAI_API_KEY=sk-your-key-here
ANTHROPIC_API_KEY=sk-ant-your-key-here
EOF
# Docker 베이스 이미지 빌드
docker build -f Dockerfile.base -t autoagent-base .
▲ Docker 베이스 이미지 빌드 — 모든 작업 컨테이너의 기반이 되는 이미지
.env 파일은 절대 Git에 커밋하지 마세요.
4. 실전 사용법: 메타 에이전트 활성화
AutoAgent의 실전 사용은 크게 세 단계로 나뉩니다. 프로그램 지시문 작성, 메타 에이전트 활성화, 그리고 결과 분석입니다. 가장 중요한 것은 program.md를 통해 메타 에이전트에게 명확한 방향을 제시하는 것입니다.
▲ program.md 편집 화면 — 메타 에이전트에게 전달되는 핵심 지시문
메타 에이전트 활성화 프로세스
메타 에이전트를 활성화하려면 코딩 에이전트를 레포지토리로 지향시키고 다음과 같이 프롬프트를 입력합니다. 그러면 메타 에이전트가 자동으로 현재 하네스를 분석하고, 벤치마크를 실행하며, 실패를 진단하고, 코드를 수정하는 자율 루프를 시작합니다.
# 메타 에이전트에게 실험 시작 지시
"Read program.md and let's kick off a new experiment!"
▲ 메타 에이전트 활성화 — 하네스 분석, 벤치마크 실행, 실패 진단 과정
메타 에이전트가 활성화되면 다음과 같은 자율 실험 루프가 시작됩니다. 현재 브랜치와 커밋 상태를 확인하고, 최신 실행 로그와 작업 결과를 분석합니다. 실패 패턴과 근본 원인을 진단하고 실패를 카테고리별로 분류한 후, 하나의 범용적인 하네스 개선을 구현합니다. 변경을 커밋하고 전체 작업 스위트를 재빌드하여 실행한 뒤 결과를 results.tsv에 기록합니다. 이 과정은 사람이 중단하기 전까지 무한히 반복됩니다.
5. 벤치마크 실행과 결과 분석
단일 작업 실행
# 단일 작업 평가
rm -rf jobs; mkdir -p jobs && uv run harbor run -p tasks/ \
--task-name "spreadsheet-formula" -l 1 -n 1 \
--agent-import-path agent:AutoAgent -o jobs --job-name latest \
> run.log 2>&1
▲ 단일 작업 실행 결과 — 스프레드시트 공식 작업 완료 (Score: 1.0)
병렬 벤치마크 실행
# 전체 작업 병렬 실행 (100 workers)
rm -rf jobs; mkdir -p jobs && uv run harbor run -p tasks/ -n 100 \
--agent-import-path agent:AutoAgent -o jobs --job-name latest \
> run.log 2>&1
▲ 병렬 벤치마크 실행 결과 — 6개 작업 중 4개 통과, 평균 점수 0.80
힐 클라이밍 최적화 추적
AutoAgent는 모든 실험 결과를 results.tsv에 체계적으로 기록합니다. 각 반복에서 커밋 해시, 평균 점수, 통과한 작업 수, 작업별 개별 점수, 비용, 상태, 변경 설명이 저장됩니다. 통과한 작업 수가 증가하면 변경을 유지하고, 퇴보하면 폐기합니다. 폐기된 실행도 다음 반복을 위한 학습 신호를 제공합니다.
▲ 힐 클라이밍 최적화 추적 — 5회 반복 후 0.63에서 0.85로 34.9% 성능 향상
AutoAgent는 SpreadsheetBench에서 96.5%, TerminalBench GPT-5 슬롯에서 55.1%를 달성했다고 보고되었습니다. 다만 이 결과는 아직 공식 리더보드에 등재되지 않았으며, SpreadsheetBench의 기존 검증된 1위는 Claude Opus 4.6의 34.89%, TerminalBench 1위는 ForgeCode의 81.8%입니다. 자율 최적화의 가능성을 보여주는 중요한 지표로 참고하되, 독립적 검증을 기다리는 것이 좋습니다.
6. Claude 에이전트 통합
AutoAgent는 모델에 구애받지 않는 설계를 지향하며, OpenAI 모델뿐만 아니라 Claude 모델도 지원합니다. agent-claude.py 파일은 Claude Agent SDK를 활용한 구현체를 제공합니다.
▲ agent-claude.py 코드 구조 — ClaudeSDKClient 기반 비동기 에이전트 구현
Claude 에이전트 구현은 ClaudeSDKClient를 사용하여 Claude 모델과 통신합니다. 비동기 컨텍스트 매니저 패턴으로 클라이언트를 초기화하고, 질의를 전송한 뒤 응답을 스트리밍 방식으로 수신합니다. 도구 프리셋으로 claude_code를 사용하여 코드 실행 기능을 활성화하며, 커스텀 도구와 MCP 서버 통합도 지원합니다.
# agent-claude.py 핵심 구성
MODEL = "haiku" # 비용 효율적 기본값
TOOLS_PRESET = "claude_code" # 코드 실행 활성화
CUSTOM_TOOLS = [] # 확장 가능한 커스텀 도구
EXTERNAL_MCP_SERVERS = {} # MCP 서버 통합
async with ClaudeSDKClient(options=opts) as client:
await client.query(instruction)
async for msg in client.receive_response():
trajectory.append(msg) # ATIF 형식 변환
7. 도구 설계 철학과 최적화 전략
AutoAgent의 프로그램 지시문에서 특히 주목할 만한 부분은 도구 설계 철학입니다. 단순히 프롬프트 튜닝에만 의존하는 것이 아니라, 전문화된 도구를 제공하는 것이 높은 레버리지의 개선을 가져온다고 명시하고 있습니다.
run_shell 도구는 토큰을 낭비합니다. 원시 출력을 파싱해야 하고, 에러 메시지가 불명확하며, 모델이 패턴을 학습하기 어렵습니다.
최적화의 핵심 원칙은 통과한 작업 수를 최대화하는 것입니다. 성능이 동일한 경우에는 더 단순한 구현이 우선됩니다. 더 적은 구성 요소, 덜 취약한 로직, 줄어든 특수 케이스 처리, 더 깔끔한 인터페이스, 전체적으로 줄어든 코드량이 단순화의 예시입니다.
8. 도커 격리와 안전한 실험
AutoAgent의 모든 작업 실행은 Docker 컨테이너 내부에서 이루어집니다. 생성된 도구가 충돌이나 무한 프로세스를 일으키더라도 호스트 시스템에 영향을 미칠 수 없습니다. 이러한 격리 환경은 메타 에이전트가 대담한 변경을 시도할 수 있게 해주며, 실패하더라도 시스템에 손상을 주지 않습니다.
▲ 메타 에이전트의 에러 진단 및 자동 수정 과정 — 실패 원인 분석 후 개선 적용
Docker 유지보수 명령어
# Harbor 캐시 정리
uv run harbor cache clean -f
# 전체 Docker 시스템 정리
docker system prune -a -f
# 죽은 컨테이너 제거
docker container prune -f
# Docker 데몬 재시작 (응답 없을 시)
killall Docker && open -a Docker
밤새 반복 실행 시 Docker 이미지와 컨테이너가 디스크 공간을 많이 차지할 수 있으므로, 주기적인 정리가 필요합니다. 특히 docker system prune -a -f 명령은 사용하지 않는 모든 이미지와 컨테이너를 제거하므로 주의해서 사용하세요.
9. 한계점과 활용 시나리오
알려진 한계점
추천 활용 시나리오
🖥️ 코딩 에이전트 최적화
터미널 기반 작업 자동화, 스프레드시트 처리, 파일 시스템 조작, 코드 생성 및 수정 등 정량적으로 평가할 수 있는 작업에 가장 적합합니다.
🔬 에이전트 연구
다양한 프롬프트 전략과 도구 설계의 효과를 자동으로 비교 실험하고, 에이전트 아키텍처의 최적 구성을 탐색하는 데 활용할 수 있습니다.
🏢 기업 자동화
반복적인 자동화 작업의 에이전트를 최적화하여 비용을 절감하고 성능을 향상시킬 수 있습니다. Third Layer가 자체 구성 에이전트 제품 출시를 계획 중입니다.
성능을 더욱 향상시키기 위해 Agent Skills for Context Engineering 라이브러리와 Context7 프레임워크를 통합할 수 있습니다. 이러한 외부 리소스를 도구 레지스트리에 통합하면 메타 에이전트가 이를 활용하여 더 나은 하네스를 구축할 수 있습니다.
10. 자주 묻는 질문 (FAQ)
일반 에이전트 프레임워크는 개발자가 직접 에이전트를 구성하고 최적화하지만, AutoAgent는 메타 에이전트가 자동으로 에이전트 하네스를 수정하고 벤치마크 점수를 기반으로 최적화합니다. 개발자는 program.md에 목표만 설정하면 되므로, 추상화 수준이 한 단계 높습니다. AutoML이 모델 하이퍼파라미터를 자동 최적화하듯, AutoAgent는 에이전트의 전체 구성을 자동으로 최적화합니다.
AutoAgent 자체는 높은 하드웨어 사양을 요구하지 않습니다. Docker가 실행 가능한 환경, Python 3.10 이상, uv 패키지 매니저가 설치되어 있으면 됩니다. 실제 연산은 API 호출을 통해 클라우드에서 이루어지므로 로컬 GPU는 필요하지 않습니다. 다만 밤새 실행할 경우 안정적인 인터넷 연결이 필요합니다.
프로젝트는 두 모델 모두를 지원합니다. agent.py는 OpenAI 모델용, agent-claude.py는 Claude 모델용입니다. 외부 분석에 따르면 Claude 메타 에이전트가 Claude 에이전트를 튜닝할 때 더 효과적인 경향이 있어, 같은 모델 계열 내에서의 일관성을 고려하여 선택하는 것이 좋습니다. 비용 측면에서는 Haiku 모델이 기본값으로 설정되어 있어 효율적입니다.
SpreadsheetBench 96.5%와 TerminalBench 55.1%는 인상적이지만 아직 공식 리더보드에 등재되지 않았습니다. SpreadsheetBench의 기존 검증 1위는 Claude Opus 4.6의 34.89%, TerminalBench 1위는 ForgeCode의 81.8%입니다. 자율 최적화의 가능성을 보여주는 중요한 지표로 참고하되, 독립적 검증을 기다리는 것이 바람직합니다.
AutoAgent는 MIT 라이선스로 공개되어 있어 상업적 사용을 포함한 거의 모든 용도로 자유롭게 사용할 수 있습니다. 다만 사용하는 API 모델(OpenAI, Anthropic 등)의 이용 약관은 별도로 확인해야 합니다. 소스 코드를 수정하여 자체 프로젝트에 통합하는 것도 가능하며, 포크하여 독자적인 버전을 운영하는 것도 허용됩니다.
📊 실험 결과 추적 방법
모든 실험 결과는 results.tsv 파일에 체계적으로 기록됩니다. 각 실행마다 커밋 해시, 평균 점수, 통과한 작업 수, 개별 작업 점수, 누적 비용, 상태 정보, 변경 사항 설명이 저장되어 실험 이력을 완벽하게 추적할 수 있습니다. 이 파일은 깃이그노어에 포함되어 레포지토리에는 푸시되지 않으므로 로컬에서만 관리됩니다.
실패 패턴 분석은 메타 에이전트의 핵심 역량 중 하나입니다. 실패한 작업들을 카테고리별로 분류하여 공통적인 문제점을 파악하고 이를 해결하는 범용적인 개선을 구현합니다. 특정 작업에만 적용되는 특수한 해결책보다는 여러 작업에 걸쳐 효과가 있는 일반적인 개선을 우선시하는 것이 중요합니다.
자율 에이전트 엔지니어링은 앞으로 더욱 중요해질 분야입니다. 대규모 언어 모델의 능력이 지속적으로 향상됨에 따라 메타 에이전트의 최적화 능력도 함께 발전할 것입니다. 에이전트가 스스로 도구를 설계하고 프롬프트를 최적화하는 능력이 발전하면 개발자의 역할은 더욱 전략적이고 고수준의 방향 설정에 집중하게 될 것입니다. 깃허브에서 433개의 포크가 이루어져 활발한 커뮤니티가 형성되고 있으며, 새로운 벤치마크 작업 추가와 문서화 보강 등 다양한 방식으로 기여할 수 있습니다.
이 글은 kevinrgu/autoagent GitHub 레포지토리를 기반으로 작성되었습니다.
© 2026 hoin · 티스토리 블로그
'AI > Claude' 카테고리의 다른 글
| Claude Advisor 전략: Opus를 조언자로 활용해 Sonnet의 지능을 끌어올리기 (0) | 2026.04.13 |
|---|---|
| Claude Managed Agents 완벽 가이드 - 클라우드 AI 에이전트의 새로운 패러다임 (0) | 2026.04.09 |
| Claude Pro, Max, Team추가 사용량 크레딧 무료 지급! (0) | 2026.04.05 |
| Agent Skills with Anthropic 스킬 시스템으로 AI 에이전트를 전문가로 만드는 방법 (0) | 2026.04.02 |
| Claude Code Auto mode 리뷰 : 승인 팝업 없이 Claude Code 쓰는 법 (0) | 2026.03.26 |
