본문 바로가기

AI 트렌드

AI 에이전트의 성능을 극대화하는 법: '컨텍스트 엔지니어링'

출처: LangChain 블로그 "Context Engineering for Agents"


최근 인공지능(AI) 분야에서 가장 주목받는 기술 중 하나는 '에이전트(Agent)'입니다. 에이전트는 언어 모델(LLM)과 다양한 도구(tool)를 반복적으로 호출하여 복잡한 작업을 수행하는 시스템인데요, 이 과정에서 핵심적인 역할을 하는 것이 바로 '컨텍스트 엔지니어링(Context Engineering)'입니다. 이번 포스팅에서는 컨텍스트 엔지니어링에 대해 자세히 알아보겠습니다.

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

Andrej Karpathy는 LLM을 일종의 운영체제(OS)에 비유했습니다. 여기서 LLM의 컨텍스트 윈도우(context window)는 컴퓨터의 RAM처럼 작동하며, 필요한 정보를 적시에 적절히 관리하는 것이 중요합니다. 이를 잘 관리하는 기술이 바로 컨텍스트 엔지니어링입니다.

즉, 컨텍스트 윈도우는 한정된 용량을 갖기 때문에 작업 수행 시 효율적인 관리가 필수적이라는 것입니다.

2. 컨텍스트 엔지니어링의 4가지 전략

컨텍스트 엔지니어링은 크게 4가지로 나눠 볼 수 있습니다.

Context Engineering은 Write, Select, Compress, Isolate 이 4가지로 정리할 수 있다.

(1) 쓰기(Write)

에이전트가 작업을 수행할 때, 나중에 활용할 수 있도록 컨텍스트 윈도우 바깥에 정보를 기록하는 방법입니다.

  • 스크래치패드(Scratchpad): 작업 중 중요한 내용을 메모 형식으로 저장하여 에이전트가 필요할 때 참고하도록 합니다. (예: Anthropic의 multi-agent 시스템)
  • 메모리(Memories): 여러 세션에서 장기적으로 유지되는 기억을 통해 성능을 향상시킵니다. (예: ChatGPT, Cursor, Windsurf)

(2) 선택(Select)

필요한 순간에 적절한 컨텍스트를 컨텍스트 윈도우 안으로 불러오는 것입니다.

  • 메모리 선택: 에이전트가 저장된 기억 중 관련 정보를 선택하여 사용하는 방식으로, 임베딩(Embedding: 의미 기반 검색을 위한 벡터화 기술)과 지식 그래프(Knowledge Graph)를 활용할 수 있습니다.
  • 툴 선택: 다양한 도구 중 작업에 꼭 필요한 도구만 선택하여 에이전트가 혼란을 겪지 않도록 합니다. RAG(Retrieval-Augmented Generation, 검색 기반 생성) 기법을 통해 정확도를 높일 수 있습니다.
  • 지식 선택: 코드 에이전트 등에서 활용하며, 코드베이스 인덱싱과 임베딩 검색, 지식 그래프 기반 검색 등을 통해 관련 지식을 효율적으로 선택합니다.

(3) 압축(Compress)

필요한 정보만 남기고 나머지 정보를 줄이는 전략입니다.

  • 요약(Summarization): 긴 작업 흐름에서 필요한 정보를 압축하여 사용합니다. (예: Claude Code의 자동 압축 기능)
  • 트리밍(Trimming): 오래된 메시지 등을 삭제하는 방식으로 단순하고 효율적입니다. (예: 일정 개수 이상의 메시지가 쌓이면 가장 오래된 메시지를 제거하는 방식)

(4) 격리(Isolate)

컨텍스트를 여러 부분으로 나누어 독립적으로 관리하는 방법입니다.

  • 다중 에이전트(Multi-agent): 작업을 여러 하위 에이전트로 나누어 각 에이전트가 특정 부분을 처리합니다. (예: OpenAI Swarm 라이브러리, Anthropic multi-agent 시스템)
  • 샌드박스(Sandbox): 별도의 환경에서 코드를 실행하고 결과만 에이전트에 전달하여 불필요한 정보를 제거합니다. (예: HuggingFace의 CodeAgent)

3. LangGraph

이러한 컨텍스트 엔지니어링 전략을 쉽게 구현하도록 지원하는 도구가 바로 LangGraph입니다.

LangGraph는 LangChain에서 개발한 에이전트 오케스트레이션 프레임워크로, LLM 기반 에이전트의 실행 과정을 그래프 형태로 설계하고 제어할 수 있게 합니다. 각 작업 단계를 '노드(node)'로 표현하며, 상태(state)를 에이전트 흐름 내에서 공유하고 업데이트할 수 있습니다. 예를 들어 이메일을 자동으로 분류하고 답장을 생성하는 에이전트를 만든다고 할 때, LangGraph를 이용하면 이 과정의 각 단계를 모듈화하여 설계하고 관리할 수 있습니다.

 

LangGraph의 주요 특징?

  • 컨텍스트 쓰기: 단기적(state 기반의 스크래치패드) 및 장기적(메모리) 기억 저장을 지원
  • 컨텍스트 선택: 노드별로 필요한 정보만 LLM에 전달 가능
  • 컨텍스트 압축: 요약/트리밍 기능을 특정 시점이나 도구 호출 이후에 삽입 가능
  • 컨텍스트 격리: 상태 객체를 이용하거나 샌드박스를 사용하여 불필요한 정보는 격리

함께 사용되는 LangSmith는 에이전트의 실행을 추적하고 성능을 평가하는 도구입니다.

  • LangSmith는 실행 흐름을 시각화하고, 각 단계에서 사용된 컨텍스트 및 토큰 사용량을 확인할 수 있어 컨텍스트 엔지니어링의 효과를 테스트하는 데 매우 유용합니다.
  • 예를 들어, 특정 전략을 도입한 후 응답 시간이 줄었는지, 정답률이 향상되었는지 확인할 수 있습니다.

 

마무리

결론적으로, 컨텍스트 엔지니어링은 LLM 기반 에이전트의 효율성과 신뢰성을 높이기 위한 필수 기술입니다. LangGraph와 LangSmith를 활용하면 이러한 전략을 설계, 구현, 평가하는 전 과정을 체계적으로 관리할 수 있으며, 이는 보다 정교하고 유연한 AI 에이전트를 구축하는 데 큰 도움이 됩니다.