Context Engineering
컨텍스트 엔지니어링은 각 단계에서 지침, 검색된 데이터, 도구 결과, 메모리 등 모델의 컨텍스트 창에 들어갈 내용을 결정합니다.
컨텍스트 엔지니어링은 AI 애플리케이션의 각 단계에서 모델의 컨텍스트 윈도우에 어떤 정보를 넣을지 결정하는 작업입니다. 여기에는 지침, 예시, 검색된 문서, 도구 정의, 도구 결과, 메모리, 대화 기록뿐 아니라 각 항목을 얼마나 포함할지, 어떤 순서로 배치할지, 무엇을 제외할지도 포함됩니다. 이 용어는 AI 에이전트가 수십 또는 수백 단계로 이루어진 작업을 수행하기 시작한 2025년 중반에 널리 퍼졌습니다. Andrej Karpathy는 이를 "다음 단계를 위해 꼭 필요한 정보만 컨텍스트 윈도우에 채우는 섬세한 기술이자 과학"이라고 표현했으며, Anthropic의 AI 에이전트를 위한 효과적인 컨텍스트 엔지니어링은 추론 중에 "최적의 토큰 집합"을 선별하는 작업으로 설명합니다. 지침 자체를 작성하는 프롬프트 엔지니어링은 그 일부입니다.
컨텍스트에 엔지니어링이 필요한 이유#
대규모 언어 모델(LLM)은 학습 데이터와 컨텍스트에 포함된 정보만 알고 있으므로, 컨텍스트가 부족하면 일반적인 답변을 내놓거나 환각을 일으킵니다. 컨텍스트가 지나치게 많아도 문제가 됩니다. 입력이 길어질수록 정확도가 떨어지는 현상을 컨텍스트 로트라고 하며, Lost in the Middle 연구에서는 모델이 긴 입력의 시작이나 끝에 있는 정보를 가장 잘 활용하고 중간에 있는 정보는 가장 잘 활용하지 못한다는 사실을 밝혔습니다. Anthropic은 컨텍스트를 추가할수록 효용이 감소하는 어텐션 예산으로 설명하며, 토큰을 추가할 때마다 그 예산이 줄어든다고 합니다. 모든 토큰은 비용과 추론 지연 시간도 증가시킵니다. 에이전트에서는 각 단계마다 도구 호출과 그 결과가 추가되므로 이 문제가 더욱 심각해지며, 새로 추가된 내용이 여전히 중요한지와 관계없이 모든 동작마다 컨텍스트가 커집니다.
핵심 전략#
LangChain의 컨텍스트 엔지니어링 개요는 기법을 네 가지 전략으로 분류하며, 이는 Anthropic이 설명하는 장기 작업 방법과도 연결됩니다.
- 기록하기: 정보가 대화가 진행된 후에도 유지되도록 스크래치패드, 메모 파일 또는 장기 메모리 등 컨텍스트 윈도우 밖에 저장합니다. Anthropic은 이를 구조화된 메모 작성이라고 합니다.
- 선택하기: 관련 구절, 메모리 또는 도구 설명처럼 현재 단계에 필요한 내용만 가져옵니다. Anthropic은 에이전트가 파일 경로나 쿼리와 같은 간단한 참조 정보를 유지하고, 필요할 때 콘텐츠를 불러오는 방식을 설명합니다.
- 압축하기: 요약하거나 다듬어 작업에 필요한 토큰만 남깁니다. 컨텍스트가 거의 가득 차면 압축을 통해 내용을 요약하고, 새 윈도우에서 그 요약을 바탕으로 작업을 이어갑니다.
- 분리하기: 작업을 깨끗한 컨텍스트 윈도우를 사용하는 하위 에이전트들에게 분배하고, 이들이 압축된 결과를 주 에이전트에 전달하도록 합니다. 또는 대용량 데이터를 컨텍스트 대신 샌드박스나 상태 객체에 보관합니다.
콘텐츠뿐 아니라 순서와 안정성도 중요합니다. 프롬프트 캐싱은 동일한 접두부만 재사용하므로, 컨텍스트는 보통 고정된 지침과 도구 정의를 앞에 배치하고 변경되는 내용을 뒤에 둡니다. Lingrui Mei와 동료들이 수행한 1,400편 이상의 논문에 대한 조사는 이 분야를 컨텍스트 검색 및 생성, 컨텍스트 처리, 컨텍스트 관리로 분류하고, 검색 증강 생성, 메모리 시스템, 도구 통합 추론, 멀티 에이전트 시스템에서 이러한 기법이 구현되는 방식을 정리합니다.
도구, 프로토콜, 스킬#
에이전트 컨텍스트의 상당 부분은 도구에서 비롯됩니다. Anthropic이 2024년 11월에 도입한 모델 컨텍스트 프로토콜(MCP)은 이후 Linux Foundation 산하 재단에 기증되었으며, 애플리케이션이 모델에 도구와 데이터를 제공하는 방식을 표준화합니다. 도구 정의도 컨텍스트에 포함됩니다. 에이전트가 호출할 수 있는 모든 도구는 모든 요청에서 토큰을 차지하므로, 일부 에이전트는 작업에 필요할 때만 도구 정의를 불러옵니다. 에이전트 스킬은 이와 동일한 아이디어를 지침에 적용하여, 에이전트가 작업에 필요할 때만 불러오는 폴더에 가이드와 참조 파일을 묶습니다.
Ultralytics Agent Skills은 Ultralytics YOLO를 사용하는 코딩 에이전트에 이 설계를 적용합니다. 관련 작업을 요청할 때만 스킬이 로드되며, yolo 라우터 스킬은 각 요청을 데이터셋, 학습, 내보내기 등의 수명 주기 단계에 연결합니다. 가중치 이름, 학습 인수, 내보내기 형식처럼 버전에 따라 달라지는 정보는 고정된 ultralytics 릴리스를 기준으로 검증한 카탈로그에 보관하며, 두 정보가 다를 때는 설치된 패키지를 신뢰하도록 각 스킬에서 에이전트에 지시합니다.
컨텍스트 엔지니어링과 관련 용어 비교#
- 프롬프트 엔지니어링: 지침과 예시를 어떻게 표현할지 다룹니다. 컨텍스트 엔지니어링은 애플리케이션의 모든 단계에서 모델에 전달되는 나머지 모든 요소까지 관리합니다.
- 프롬프트 보강: 모델에 전달하기 전에 단일 요청에 데이터를 추가하는 작업이며, 컨텍스트 엔지니어링의 선택 작업 중 하나입니다.
- 컨텍스트 윈도우: 모델의 최대 입력 길이로, 예산을 결정합니다. 컨텍스트 엔지니어링은 이 예산을 어떻게 사용할지 결정하며, 윈도우가 커져도 윈도우가 가득 차면서 정확도가 낮아지므로 컨텍스트 엔지니어링은 여전히 필요합니다.
- 파인튜닝: 가중치를 업데이트하여 모델이 아는 내용을 바꿉니다. 컨텍스트 엔지니어링은 추론 시점에 모델이 접하는 내용을 바꾸고 가중치는 그대로 둡니다.










