에이전트의 기본 작동 방식은 LLM이 도구를 호출하고 그 결과를 다시 LLM으로 피드백하는 반복적인 루프입니다. 🔄
AI 에이전트의 작업 길이가 길어지면서 도구 호출 결과가 누적되어 컨텍스트 창이 비대해지고, 이는 비용, 지연 시간 증가 및 성능 저하(컨텍스트 로트)로 이어집니다. 📉
컨텍스트 엔지니어링은 에이전트가 다음 단계를 올바르게 수행하도록 컨텍스트 창에 적절한 정보만 채우는 섬세한 기술이자 과학입니다. 🧠
이를 위한 세 가지 핵심 원칙은 컨텍스트를 외부로 '오프로드(Offload)', 컨텍스트 크기를 '축소(Reduce)', 컨텍스트를 '격리(Isolate)'하는 것입니다. 💡
컨텍스트 오프로딩은 에이전트가 장기 실행 작업 중 정보를 저장하고 불러올 수 있도록 파일 시스템에 접근 권한을 부여하여 컨텍스트를 외부화하는 것을 포함합니다. (예: Cloud Code의 cloud.md, Manis의 샌드박스, Deep Agents의 로컬 파일 시스템) 📁
또한, 에이전트 호출 간에 정보를 기억할 수 있도록 사용자 메모리 기능을 제공합니다. (예: cloud.md, agent.md, memories 디렉토리) 💾
함수 호출 계층을 가볍게 유지하고, 특정 액션들을 파일 시스템의 스크립트로 분리하여 도구 설명으로 인한 컨텍스트 비대화와 혼란을 방지합니다. (예: Manis의 Bash 도구, Cloud Code의 소수 도구) 📜
점진적 액션 공개(스킬)는 초기에는 간략한 설명만 로드하고, 필요할 때 전체 스킬 파일을 읽어들이는 방식으로 토큰을 절약하고 많은 액션에 접근 가능하게 합니다. (예: Anthropic의 스킬, Deep Agents 개발 중) 🚀
에이전트가 적은 수의 일반적이고 원자적인 도구(예: 파일 조작, Bash)만으로 광범위한 작업을 수행하도록 설계하는 것이 중요합니다. 🛠️
컨텍스트 축소는 오래된 도구 결과를 파일에 저장하고 메시지 기록에서는 해당 파일을 참조하도록 하여 토큰 사용량을 줄이는 '압축(Compaction)' 기법을 사용합니다. (Manis) 📦
또한, 전체 메시지 기록을 더 간결한 요약으로 압축하여 컨텍스트 창을 관리하는 '요약(Summarization)' 기법도 활용됩니다. (Manis, Anthropic, Cloud Code, Deep Agents) 📝
과도하게 큰 도구 결과가 LLM에 직접 전달되는 것을 방지하기 위해 '필터링(Filtering)'을 적용하기도 합니다. (Deep Agents) ✂️
컨텍스트 격리는 특정 작업을 자체 컨텍스트 창을 가진 서브 에이전트에 할당하여 독립적으로 작업을 수행하고 결과를 부모 에이전트에 반환하는 방식입니다. 🧑💻
서브 에이전트가 부모 에이전트와 파일 시스템과 같은 일부 컨텍스트를 공유할 수 있도록 하여 협업을 용이하게 합니다. 🤝