AI 에이전트를 위한 앤트로픽의 효과적인 컨텍스트 엔지니어링
앤트로픽은 컨텍스트 엔지니어링(context engineering)이라는 개념을 도입했다. 이는 전통적인 프롬프트 엔지니어링에서 벗어나, 추론 중에 대규모 언어 모델(LLM)에 제공되는 토큰 전체 집합을 전략적으로 관리하고 유지하는 방향으로의 전환이다. 이 접근법은 여러 번의 대화와 장기적인 시간 범위에서 작동하는 능력 있는 AI 에이전트를 구축하는 데 필수적이다. 여기서 시스템 지침, 도구, 메시지 기록을 포함한 전반적인 상태를 관리하는 것이 단순히 프롬프트의 어휘를 다듬는 것보다 더 중요하다.
컨텍스트 엔지니어링의 필요성
컨텍스트 엔지니어링이 필요하는 이유는 LLM이 유한한 "주목 예산"을 가지며, 컨텍스트 로트(context rot)라는 현상에 노출되기 때문이다. 이는 컨텍스트 창 내 토큰 수가 증가할수록 모델이 정보를 정확히 기억하는 능력이 감소하는 현상이다.
이 감소는 트랜스포머 아키텍처의 토큰 간 $n^2$ 쌍별 관계에서 비롯되며, 컨텍스트가 커질수록 주목이 희석된다. 또한, 훈련 데이터는 일반적으로 짧은 시퀀스로 구성되어 있어, 모델이 컨텍스트 전반의 종속성에 특화된 파라미터를 적게 가진다. 따라서 컨텍스트는 한계가 있는 자원으로 간주되어야 하며, 한계 수익 감소의 특성을 가지며, 목표는 최소한의 고신호 토큰 집합을 찾아 원하는 결과의 가능성을 극대화하는 것이다.
효과적인 컨텍스트의 구성 요소
주목 예산의 효용을 극대화하기 위해 앤트로픽은 컨텍스트의 세 가지 주요 구성 요소를 최적화할 것을 권장한다.
시스템 프롬프트
시스템 프롬프트는 "적절한 고도"를 목표로 해야 한다. 즉, 부서지기 쉬운 하드코딩된 논리와 지나치게 모호한 지침 사이의 균형을 이뤄야 한다. 행동을 효과적으로 안내할 수 있도록 충분히 구체적이면서도 강력한 힌트를 제공할 수 있도록 유연해야 한다. 앤트로픽은 XML 태그나 마크다운 헤더를 사용해 <background_information>, <instructions>와 같은 구분된 섹션으로 프롬프트를 구성하는 것을 제안한다.
도구
도구는 자가 포함되며, 강건하고 토큰 효율적이어야 한다. 흔한 실패 요인은 "부풀어 오른 도구 세트"를 사용하는 것으로, 이는 에이전트에게 모호성을 초래한다. 최소한의 핵심 도구 세트를 관리함으로써 장기적인 상호작용에서 더 신뢰할 수 있는 유지보수와 컨텍스트 정리가 가능해진다.
예시
모든 예외 케이스를 완전히 나열하는 대신, 개발자는 다양한 대표적인 예시(소수의 예시 프롬프팅)를 선별하여 에이전트의 예상 행동을 잘 보여주도록 해야 한다.
컨텍스트 검색 및 에이전트 기반 검색
앤트로픽은 임베딩 기반의 사전 추론 검색에서 "즉시" 컨텍스트 전략으로의 전환을 관찰했다.
- 즉시 검색: 에이전트는 가벼운 식별자(예: 파일 경로 또는 웹 링크)를 유지하고, 도구를 사용해 런타임에 데이터를 동적으로 컨텍스트에 로드한다. 예를 들어, Claude Code는 타겟된 쿼리를 작성하고
head및tail과 같은 바시 명령어를 사용해 전체 데이터 객체를 로드하지 않고 대규모 데이터베이스를 분석하는 이 접근법을 사용한다. - 진행적 공개: 이는 에이전트가 탐색을 통해 점진적으로 관련 컨텍스트를 발견할 수 있게 하며, 메타데이터(예: 폴더 계층 구조 및 타임스탬프)를 사용해 이후 결정을 안내한다.
- 하이브리드 전략: 일부 에이전트는 속도를 위해 사전 계산된 데이터 검색과 깊이를 위해 자율적 탐색을 결합한다. Claude Code는 이 전략을 활용하여
CLAUDE.md파일을 미리 로드하면서glob과grep을 사용해 즉시 탐색을 수행한다.
장기적 과제 관리
시간이 수시간에 걸치거나 컨텍스트 창을 초과하는 토큰 수를 요구하는 과제의 경우, 앤트로픽은 컨텍스트 오염을 방지하기 위해 세 가지 주요 기술을 제시한다.
압축
압축은 컨텍스트 한계에 가까워질 때 대화를 요약하고, 그 요약을 사용해 새로운 창을 다시 시작하는 것이다. Claude Code에서는 아키텍처 결정과 해결되지 않은 버그를 보존하면서 중복된 도구 출력은 버린다. 이 방법의 "경량 버전"은 도구 결과 정리로, 과거 도구 호출의 원시 결과를 기록에서 제거하는 것이다.
구조화된 노트 작성
에이전트 메모리라고도 불리는 이 방법은 에이전트가 지속 가능한 외부 메모리(예: NOTES.md 파일)에 노트를 작성하고 필요할 때 다시 컨텍스트로 가져오는 것이다. 이는 리셋 후에도 상태를 유지할 수 있게 해주며, Claude가 포켓몬을 플레이할 때 목표와 전술을 추적하는 데 사용된다.
하위 에이전트 아키텍처
이 아키텍처는 리더 에이전트가 고수준 계획을 조율하고, 전문화된 하위 에이전트가 깨끗한 컨텍스트 창을 가진 집중적인 작업을 수행한다. 하위 에이전트는 깊이 있는 작업을 수행한 후 리더 에이전트에게 단순화된 요약(일반적으로 1,000~2,000 토큰)만 반환하여 책임의 명확한 분리를 보장한다.
| 전략 | 최적의 사용 사례 |
|---|---|
| 압축 | 광범위한 대화 흐름이 필요한 과제 |
| 노트 작성 | 명확한 마일스톤이 있는 반복적 개발 |
| 다중 에이전트 | 병렬 탐색이 필요한 복잡한 연구 및 분석 |
Sources
관련
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch