Anthropic 효과적인 컨텍스트 엔지니어링 for AI 에이전트

TL;DR

Anthropic은 컨텍스트 엔지니어링을 발표했습니다. 이는 추론 중에 대형 언어 모델에 공급되는 토큰을 선택하고 관리하는 일련의 기법으로, AI 에이전트의 신뢰성과 확장성을 향상시키는 방법을 보여주었습니다.


컨텍스트 엔지니어링이란?

컨텍스트 엔지니어링은 각 추론 단계에서 언어 모델이 보는 정확한 토큰 집합(시스템 프롬프트, 도구 정의, 예시, 메시지 기록 등)을 선별하는 방법입니다. 이는 모델의 제한된 주의 예산을 효율적으로 할당해야 하는 희소 자원으로 취급함으로써 프롬프트 엔지니어링을 확장합니다.

핵심 사항:

  • 컨텍스트 = 모델이 응답을 샘플링할 때 존재하는 모든 토큰.
  • 엔지니어링 = 모델의 컨텍스트 창 한계를 존중하면서 원하는 동작의 확률을 최대화하도록 해당 토큰을 최적화하는 것.
  • 이 프로세스는 반복적입니다. 토큰 집합은 모든 모델 호출 전에 재평가됩니다.

컨텍스트 엔지니어링이 중요한 이유

LLM은 컨텍스트 부패를 겪습니다: 토큰 수가 증가함에 따라 회상 정확도가 저하됩니다. 이는 인간의 작업 기억 한계를 반영하며, 트랜스포머 아키텍처의 O(n²) 주의 비용과 짧은 시퀀스에 대한 훈련 편향에서 비롯됩니다.

결과:

  • 추가 토큰마다 모델의 "주의 예산"의 일부를 소비합니다.
  • 더 긴 컨텍스트는 정보 검색 및 장거리 추론의 정밀도 저하로 이어집니다.
  • 확장된 창을 가진 모델조차도 급격한 컷오프가 아닌 점진적인 성능 저하를 보입니다.

따라서 컨텍스트를 유한한 자원으로 취급하고 저신호 토큰을 최소화하는 것은 유능한 에이전트를 구축하는 데 필수적입니다.

효과적인 컨텍스트의 핵심 구성 요소

시스템 프롬프트

  • 명확하고, 간결하며, 적절한 수준으로 작성되어야 합니다: 동작을 안내할 만큼 구체적이지만 취약한 논리를 피할 만큼 유연해야 합니다.
  • 권장 구조: XML 태그 또는 마크다운 헤더를 사용하여 별도의 섹션(예: <background_information>, <instructions>, ## 도구 지침, ## 출력 설명)으로 구분합니다.
  • 최소한의 프롬프트로 시작하고, 실패 모드를 식별한 후에만 지침이나 예시를 추가합니다.

도구

  • 도구는 에이전트와 환경 간의 계약 역할을 합니다. 토큰 효율적이고 모호하지 않아야 합니다.
  • 도구는 자족적이고 견고하며 설명적인 입력 매개변수를 갖도록 설계하세요.
  • 비대한 도구 세트를 피하세요. 최소 실행 가능한 도구 세트는 결정 모호성과 컨텍스트 오버헤드를 줄입니다.

예시(퓨샷 프롬프팅)

  • 모든 엣지 케이스를 나열하기보다 다양하고 표준적인 집합을 제공하세요.
  • 예시는 LLM에게 "천 마디 말보다 한 장의 그림"과 같아서 기대되는 동작을 효율적으로 전달합니다.

메시지 기록 및 검색

  • 높은 신호를 가진 교환을 유지하면서 중복된 도구 호출과 결과를 버리도록 기록을 선별하세요.
  • 적시 검색을 사용하세요: 가벼운 식별자(파일 경로, URL)를 유지하고 필요할 때만 도구를 통해 데이터를 로드합니다.

동적 컨텍스트 검색 및 에이전트 검색

Anthropic의 에이전트는 이제 추론 전 임베딩 검색과 런타임 "적시" 로딩을 결합합니다. 에이전트는 참조(예: 파일 경로)를 유지하고 도구를 사용하여 필요할 때 콘텐츠를 가져오며, 이는 인간의 인지를 반영합니다.

이점:

  • 저장 효율성 – 대규모 데이터 세트가 컨텍스트 창에 완전히 로드되지 않습니다.
  • 메타데이터 신호 – 파일 이름, 타임스탬프, 계층 구조가 관련성 판단을 안내합니다.
  • 점진적 공개 – 에이전트가 컨텍스트를 점진적으로 발견하고 통합하여 집중된 작업 기억을 유지합니다.

절충점:

  • 런타임 검색은 지연 시간을 추가합니다.
  • 막다른 길에 컨텍스트를 낭비하지 않도록 신중한 도구 설계가 필요합니다.

하이브리드 전략(사전 로드된 필수 데이터 + 적시 탐색)은 법률이나 금융과 같은 비교적 정적인 도메인에서 잘 작동합니다.


장기 작업을 위한 기법

작업이 모델의 컨텍스트 창을 초과할 때, Anthropic은 세 가지 보완 전략을 권장합니다.

1. 압축

  • 한계에 가까운 대화 기록을 고충실도 요약으로 요약합니다.
  • 요약과 가장 최근의 중요한 토큰으로 컨텍스트 창을 다시 초기화합니다.
  • 예: Claude Code는 오래된 도구 결과를 지우고 간결한 요약을 주입하여 아키텍처 결정은 보존하면서 노이즈는 제거합니다.

2. 구조화된 메모 작성 (에이전트 메모리)

  • 에이전트는 컨텍스트 창 외부에 영구 메모(예: NOTES.md)를 작성합니다.
  • 메모는 필요할 때 다시 가져와 가벼운 메모리 계층을 제공합니다.
  • Claude가 Pokémon을 플레이하면서 외부 메모리를 통해 수천 단계를 추적한 사례에서 입증되었습니다.
  • Anthropic은 이 워크플로를 간소화하기 위해 Claude Developer Platform(공개 베타)에서 메모리 도구를 출시했습니다.

3. 하위 에이전트 아키텍처

  • 큰 문제를 각각 고유한 초점을 가진 전문 하위 에이전트로 분해합니다.
  • 하위 에이전트는 심층 탐색을 수행하고 요약된 결과(1-2k 토큰)를 조정 리드 에이전트에게 반환합니다.
  • 이 패턴은 복잡한 연구 작업에서 상당한 이점을 제공했습니다(Anthropic의 다중 에이전트 연구 시스템 참조).

기법 선택은 작업에 따라 달라집니다:

  • 압축은 대화형 왕복 작업에 적합합니다.
  • 메모 작성은 명확한 이정표가 있는 반복 개발에 적합합니다.
  • 하위 에이전트는 병렬적이고 연구 집약적인 작업에 적합합니다.

엔지니어를 위한 실용 지침

  1. 컨텍스트를 예산으로 취급하세요 – 가장 작은 고신호 토큰 집합을 목표로 하세요.
  2. 반복하세요 – 각 실패 후, 더 많은 토큰을 추가하기 전에 프롬프트, 도구 정의 또는 검색 로직을 개선하세요.
  3. 최소한으로 시작하세요 – 가장 좋은 모델로 기본 프롬프트를 테스트한 후 필요에 따라 보강하세요.
  4. 도구를 선별하세요 – 도구 세트를 간결하게 유지하고 각 도구의 출력이 토큰 효율적인지 확인하세요.
  5. 메모리 도구 활용 – 컨텍스트 창 외부에 요약, 메모, 메타데이터를 저장하여 오염을 방지하세요.
  6. 하이브리드 검색 – 사전 계산된 임베딩과 적시 로딩을 결합하여 속도와 관련성의 균형을 유지하세요.

AI 에이전트의 미래에 대한 시사점

  • 모델이 더 강력해짐에 따라 프롬프트 중심에서 컨텍스트 중심 엔지니어링으로 전환.
  • 에이전트 자율성이 증가할 것입니다; 더 똑똑한 모델은 덜 규정적인 프롬프팅이 필요하지만 여전히 효율적인 컨텍스트 큐레이션에 의존할 것입니다.
  • 도구 및 메모리 생태계는 확장 가능한 에이전트의 핵심 인프라가 될 것입니다.
  • "고신호 토큰의 가장 작은 집합 찾기" 원칙은 컨텍스트 창이 커지더라도 초석으로 남을 것입니다.

시작하기

Anthropic은 개발자들이 Claude Developer Platform에서 컨텍스트 엔지니어링을 실험하도록 초대합니다. 리소스는 다음과 같습니다:

위의 기법을 적용함으로써 팀은 장기간 작업에서 집중력, 신뢰성, 확장성을 유지하는 에이전트를 구축할 수 있습니다.

Sources