Anthropic Managed Agents: Decoupling the Brain from the Hands
TL;DR
Anthropic은 추론 엔진("brain")을 실행 환경("hands") 및 세션 로그와 분리하여 장기적인 작업을 수행하는 에이전트를 실행하도록 설계된 호스팅 서비스인 Managed Agents를 출시했습니다. 이러한 아키텍처는 인프라 장애가 에이전트 상태를 파괴하는 것을 방지하며, 에이전트 하네스(harness)를 완전히 재설계하지 않고도 모델 기능이 향상됨에 따라 시스템이 진화할 수 있도록 합니다.
The Architecture of Managed Agents
Managed Agents는 AI 에이전트의 핵심 구성 요소를 세 가지 독립적인 인터페이스로 가상화하여, 하나를 구현할 때 다른 것에 영향을 주지 않고 교체할 수 있도록 보장합니다:
- The Session: 에이전트 작동 중에 발생하는 모든 이벤트의 추가 전용(append-only) 로그입니다.
- The Harness: 모델을 호출하고 도구 호출을 적절한 인프라로 라우팅하는 오케스트레이션 루프입니다.
- The Sandbox: 모델이 코드를 실행하고 파일을 편집하는 실행 환경입니다.
이러한 요소들을 단일 결합된 단위가 아닌 가상화된 추상화로 취급함으로써, Anthropic은 기본 모델과 하드웨어가 변경되더라도 시스템이 안정적으로 유지되도록 보장합니다.
Decoupling the "Brain" from the "Hands"
이전에는 Anthropic은 모든 에이전트 구성 요소를 단일 컨테이너에 배치했습니다. 이는 단일 컨테이너 장애가 전체 세션 손실로 이어지는 "pet" 인프라 문제를 야기했으며, 사용자 데이터와 시스템 로그가 같은 위치에 있어 디버깅을 어렵게 만들었습니다.
Transitioning to "Cattle" Infrastructure
이를 해결하기 위해 Anthropic은 harness(brain)를 sandbox(hands) 및 세션 로그와 분리했습니다. 이러한 전환은 다음과 같은 몇 가지 주요 이점을 제공합니다:
- Resilience to Sandbox Failure: harness는 이제 sandbox를 도구로 호출합니다 (
execute(name, input) → string). 만약 sandbox가 실패하면, harness는 오류를 포착하고 표준 레시피(provision({resources}))를 사용하여 새로운 컨테이너를 재초기화할 수 있습니다. - Harness Recovery: 세션 로그가 외부에 있기 때문에 harness는 이제 상태가 없습니다(stateless). 만약 harness가 충돌하면,
wake(sessionId)를 통해 새로운 harness를 재부팅하고,getSession(id)를 통해 이벤트 로그를 가져와 마지막으로 기록된 이벤트부터 재개할 수 있습니다. - Enhanced Security: brain과 hands를 분리함으로써, 신뢰할 수 없는 모델 생성 코드가 실행되는 sandbox 내에 자격 증명(tokens)을 보관하지 않게 됩니다. Git 작업의 경우, 초기화 중에 tokens가 로컬 git remote에 연결됩니다. 커스텀 도구의 경우, OAuth tokens는 보안 금고(secure vault)에 저장되고 전용 프록시를 통해 액세스되므로, harness와 sandbox가 원시 자격 증명을 다루지 않도록 보장합니다.
Managing Long-Horizon Context
장기적인 작업은 종종 모델의 컨텍스트 창(context window)을 초과합니다. 압축(요약)이나 트리밍(오래된 토큰 제거)과 같은 기술이 일반적이지만, 이들은 무엇을 버릴지에 대한 되돌릴 수 없는 결정을 포함합니다.
Managed Agents는 session log를 모델의 컨텍스트 창 외부에 존재하는 내구성 있는 컨텍스트 객체로 취급합니다. getEvents() 인터페이스를 통해 모델은 이벤트 스트림을 프로그래밍 방식으로 질의하여, 위치 슬라이스(positional slices)를 선택하거나 특정 시점으로 되돌아가 컨텍스트를 다시 확보할 수 있습니다. 이는 컨텍스트의 내구성 있는 저장(session)과 컨텍스트의 능동적 관리(harness)를 분리하여, harness가 원래 데이터를 잃지 않고 컨텍스트 엔지니어링이나 프롬프트 캐싱 전략을 적용할 수 있도록 합니다.
Performance and Scalability Gains
brain과 hands를 분리함으로써 지연 시간(latency)과 유연성 측면에서 상당한 개선이 이루어졌습니다:
Reduced Latency (TTFT)
결합된 설계에서는 sandbox가 실제로 필요한지 여부에 관계없이 모든 세션에 추론이 시작되기 전에 컨테이너를 프로팅해야 했습니다. harness를 컨테이너 외부로 이동함으로써, 오케스트레이션 레이어가 세션 로그에서 이벤트를 가져오는 즉시 추론를 시작할 수 있습니다. 그 결과:
- p50 Time-to-First-Token (TTFT): 약 60% 감소했습니다.
- p95 TTFT: Dropped by over 90%.
Support for "Many Brains, Many Hands"
분리된 아키텍처는 단일 brain이 여러 실행 환경(hands)과 동시에 상호작용할 수 있게 합니다. 각 hand는 도구로 취급되므로 (execute(name, input) → string), harness는 sandbox가 컨테이너, 모바일 기기 또는 에뮬레이터인지 여부에 관계없이 무관합니다. 이 유연성 덕분에 brain은 서로에게 "hands"를를 전달할 수 있어, 더 복잡한 멀티 에이전트 조정이 가능해집니다.
Sources
관련
- Dispatch
- 프로젝트
- Dispatch
- Dispatch
- Dispatch