Anthropic의 장기 실행 에이전트를 위한 효과적인 하네스
Anthropic은 AI 에이전트가 여러 개의 개별 세션에 걸쳐 작업할 때 발생하는 "메모리 손실" 및 일관성 없는 진행 상황의 문제를 해결하기 위해 특화된 에이전트 하네스를 개발했습니다. 워크플로우를 initializer agent와 coding agent로 분리함으로써, 개발자는 Opus 4.5와 같은 모델이 단일 컨텍스트 창의 한계를 초과하는 복잡하고 프로덕션 품질의 프로젝트를 완료할 수 있도록 할 수 있습니다.
장기 실행 에이전트의 과제
표준 에이전트 하네스는 각 새로운 세션이 이전 작업에 대한 기억 없이 시작되기 때문에 복잡한 다중 세션 작업에서 종종 실패합니다. Anthropic은 장기적인 과업을 위해 Claude Agent SDK를 사용할 때 발생하는 두 가지 주요 실패 모드를 식별했습니다:
- 과도한 야망 (One-shotting): 에이전트가 한 번에 너무 많은 기능을 구현하려고 시도하여 컨텍스트 창을 소진시키고 프로젝트를 반쯤 구현된, 문서화되지 않은 상태로 남겨둡니다.
- 조기 완료: 나중에 실행되는 에이전트 인스턴스가 기존의 진행 상황을 보고 모든 요구 사항이 충족되기 전에 전체 프로젝트가 완료되었다고 잘못 선언할 수 있습니다.
컨텍스트 압축이 도움이 되기는 하지만, 후속 에이전트가 추측하거나 복구에 토큰을 낭비하지 않고 작업을 재개하는 데 필요한 명확하고 구조화된 지침을 제공하기에는 종종 불충분합니다.
2-에이전트 솔루션
세션 간의 간극을 메우기 위해 Anthropic은 두 부분으로 구성된 프롬프팅 전략을 채택합니다. 기본 시스템 프롬프트와 도구는 동일하지만, 초기 사용자 프롬프트가 달라져 두 개의 별도 역할을 생성합니다:
1. The Initializer Agent
initializer agent는 첫 번째 세션에서만 사용됩니다. 주요 목표는 모든 미래의 에이전트들을 안내할 토대를 마련하는 것입니다. 주요 출력물은 다음과 같습니다:
- Feature List: 사용자의 상위 수준 프롬프트를 상세한 요구 사항으로 확장한 포괄적인 JSON 파일 (예: claude.ai 클론을 위한 200개 이상의 기능). 각 기능은 처음에
"passes": false로 표시됩니다. - Environment Setup: 개발 서버를 시작하고 기본적인 엔드 투 엔드 테스트를 자동화하기 위한
init.sh스크립트. - Tracking Infrastructure: 진행 상황을 기록하기 위한
claude-progress.txt파일과 코드베이스 상태를 설정하기 위한 초기 git commit.
2. The Coding Agent
후속 세션은 점진적인 진행을 수행하는 임무를 맡은 coding agent를 사용합니다. 위에서 언급한 실패 모드를 방지하기 위해 coding agent는 엄격한 운영 루프를 따릅니다:
- Orientation: 모든 세션은
pwd를 실행하고,claude-progress.txt를 읽고, git log를 검토하고,feature_list.json파일을 읽는 것으로 시작합니다. - Incremental Implementation: 에이전트는 한 번에 하나의 기능만 작업하여 컨텍스트 소진을 방지합니다.
- Verification: 에이전트는 유닛 테스트나 코드 검사에만 의존하는 대신, 브라우저 자동화 도구 (예: Puppeteer MCP server)를 사용하여 인간 사용자가 하는 것처럼 기능을 엔드 투 엔드 방식으로 검증합니다.
- Clean Handoff: 세션을 종료하기 전에 에이전트는 설명적인 메시지와 함께 진행 상황을 git에 commit하고 진행 상황 파일을 업데이트하여, 환경이 다음 에이전트를 위해 "merge-ready" 상태가 되도록 보장합니다.
실패 모드 및 완화 방법 요약
| Problem | Initializer Agent Action | Coding Agent Action |
| :--- | :--- | :--- | :--- |
| 조기 프로젝트 완료 | 구조화된 JSON 기능 리스트를 생성합니다 | 기능 리스트를 읽고, 한 번에 하나의 기능에만 작업합니다 |
| 버그가 있거나 문서화되지 않은 상태 | git repo와 진행 상황 파일을 설정합니다 | 로그/진행 상황을 읽고, 세션 시작 시 기본 테스트를 실행하며, 종료 시 commit/업데이트를 수행합니다 |
| 기능의 조기 완료 | 기능 리스트를 생성합니다 | "passing"으로 표시하기 전에 엔드 투 엔드 테스트를 통해 스스로 검증합니다 |
| 설정 마찰 | init.sh 스크립트를 작성합니다 | init.sh를 실행하여 서버를 시작하고 상태를 Verifiy합니다 |
기술적 한계 및 향후 방향
개선 사항에도 불구하고, Anthropic은 현재 브라우저 자동화의 특정 한계를 언급했습니다. 예를 들어, Claude는 Puppeteer MCP를 통해 브라우저 네이티브 알림 모달을 볼 수 없으며, 이는 해당 모달에 의하는 기능들에 버그를 유생할 수 있습니다.
향후 연구는 테스트, QA, 코드 정리 작업을 위한 특화된 에이전트들을 활용하는 멀티 에이전트 아키텍처가 단일 범용용 코딩 에이전트보다 성능이 우수할지 여부를 탐구할지 것입니다. 또한, Anthropic은 이러한 하네스 패턴을 웹 개발을 넘어 금융 모델링 및 과학 연구와 같은 분야로 일반화하는 것을 목표로 합니다.
Sources
관련
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch