콘텐츠로 이동

Context Engineering 기초

컨텍스트 윈도우는 에이전트의 RAM이다

섹션 제목: “컨텍스트 윈도우는 에이전트의 RAM이다”

LangChain의 창업자 Harrison Chase는 에이전트 시스템을 운영체제에 비유했습니다. 이 비유에서 컨텍스트 윈도우는 RAM입니다. 아무리 강력한 CPU(모델)가 있어도 RAM 관리가 잘못되면 시스템은 느려지고, 충돌하고, 결국 실패합니다.

단순히 긴 프롬프트를 작성하는 것과 컨텍스트를 _엔지니어링_하는 것은 다릅니다. Context Engineering은 에이전트가 매 스텝에서 올바른 정보를 정확한 형식으로 받도록 시스템을 설계하는 행위입니다.

Anthropic이 정의한 컨텍스트 엔지니어링의 핵심은 다음과 같습니다:

“Context engineering is the process of dynamically assembling the right information into the context window, in the right format, at the right time.”

이를 위한 전략은 크게 네 가지로 분류됩니다.

전략핵심 질문대표 기법
Write무엇을 기록해 두는가?스크래치패드, 장기 메모리
Select무엇을 가져오는가?RAG, 메모리 검색, 도구 선택
Compress어떻게 줄이는가?요약, 트리밍, 출력 후처리
Isolate어떻게 분리하는가?멀티 에이전트, 샌드박싱

Write 전략은 에이전트가 나중에 활용할 정보를 어딘가에 저장하는 것입니다. 두 가지 형태로 나뉩니다.

스크래치패드(Scratchpad): 현재 태스크 진행 중에 에이전트가 중간 메모를 남기는 공간입니다. 추론 과정, 부분 결과, 다음 단계 계획 등을 기록합니다. Manus는 todo.md 파일을 통해 태스크 진행 상황을 실시간으로 업데이트합니다.

메모리(Memory): 세션을 넘어 지속되는 장기 저장소입니다. 사용자 선호도, 과거 결정 이력, 도메인 지식 등이 여기에 저장됩니다.

# 스크래치패드 패턴 예시
scratchpad = {
"task": "사용자 인증 모듈 구현",
"completed": ["요구사항 분석", "DB 스키마 설계"],
"in_progress": "JWT 토큰 발급 로직",
"next": ["리프레시 토큰 구현", "테스트 작성"],
"notes": "bcrypt 라운드는 12로 설정 결정"
}

Select 전략은 방대한 저장소에서 현재 태스크에 필요한 정보만 골라내는 것입니다.

  • 메모리 검색: 임베딩 유사도나 지식 그래프를 통해 관련 과거 경험을 검색
  • RAG(Retrieval-Augmented Generation): 외부 문서나 코드베이스에서 관련 청크 추출
  • 도구 선택(Tool Selection): 수백 개의 가용 도구 중 현재 단계에 적합한 도구만 컨텍스트에 포함

핵심은 관련성입니다. 관련 없는 정보를 컨텍스트에 포함시키면 모델이 혼란을 겪습니다(Context Distraction). 좋은 Select 전략은 신호 대 잡음비를 높입니다.

Compress 전략은 컨텍스트 길이를 줄이면서 핵심 정보는 보존하는 것입니다.

  • 요약(Summarization): 긴 대화 히스토리나 도구 출력을 압축. 재귀적 요약(오래된 항목부터 점진적으로 압축)과 계층적 요약(중요도에 따라 세부 수준 조정) 방식이 있습니다.
  • 트리밍(Trimming): 오래된 메시지나 중복 정보를 단순 제거. 빠르지만 정보 손실 위험이 있습니다.
  • 출력 후처리(Post-processing): 도구가 반환한 방대한 출력(예: 긴 검색 결과)에서 필요한 부분만 추출.

Isolate 전략은 컨텍스트를 분리된 공간으로 나누는 것입니다.

멀티 에이전트 아키텍처는 각 서브 에이전트가 전체 히스토리 대신 자신에게 필요한 정보만 가진 독립된 컨텍스트를 사용합니다. 오케스트레이터는 세부 실행 맥락을 알 필요가 없고, 워커는 전체 태스크 컨텍스트를 알 필요가 없습니다.

샌드박싱은 특정 도구나 서브태스크의 실행이 메인 컨텍스트를 오염시키지 않도록 격리합니다.

컨텍스트 엔지니어링은 프롬프트 작성을 넘어선 시스템 설계입니다. Write로 필요한 것을 저장하고, Select로 관련된 것만 고르고, Compress로 크기를 줄이고, Isolate로 범위를 분리하는 네 전략을 조합하면 에이전트의 성능과 안정성이 크게 향상됩니다.