728x90
반응형

Context Engineering은 상담원(agent)이 필요한 순간에 필요한 정보와 도구를 선택, 구성 및 전달하는 것을 의미해요. Agent AI 시스템은 다단계 계획이 사실, 제약 조건 및 상태가 한 작업에서 다음 작업까지 일관되게 유지될 때만 제대로 작동하기 때문에 Context Engineering에 의존하죠.

문제가 생기는 건 정말 순식간이에요. Agent가 오래된 가격 데이터를 가져오거나 (환각, hallucination), 관련 없는 문서를 포함하거나 (토큰 비효율성, token inefficiency), 워크플로 도중에 이전 도구의 출력을 추적하지 못할 수도 있어요 (컨텍스트 부패, context corruption). 실제 시스템에서는 이런 문제가 잘못된 환불 처리, 규정 준수 규칙 위반, 또는 잘못된 다운스트림 작업 실행으로 이어질 수 있다는 거죠.

이번 가이드에서는 오케스트레이션, 메모리, 도구 통합을 포함해서 이러한 실패를 방지하는 데 필요한 주요 Context Engineering 계층과 도구를 다룰 거예요. Context를 간결하게 유지하고 품질을 평가하는 기술도 함께 살펴보고요.

이 가이드에서 다룰 내용:

  •  
  • LangChain
  •  
  • LlamaIndex
  •  
  •  
  • 단기 기억 (Short-Term Memory)
  •  
  • 장기 기억을 위한 Knowledge Graph
  •  
  • 추론 메모리를 위한 컨텍스트 그래프
  •  
  • 모델 컨텍스트 프로토콜을 사용하여 도구에 연결
  • Agent 작업을 안전하고 검증 가능하게 만들기
  • 컨텍스트 엔지니어링에 적합한 도구를 선택하는 방법
  • 신뢰할 수 있는 컨텍스트로 에이전트 시스템 구축

에이전트 워크플로를 위한 오케스트레이션 계층

오케스트레이션은 에이전트 시스템에서 정말 중요한 계층 중 하나에요. 어떤 컨텍스트를 Agentic AI가 활용할지 결정하거든요. 오케스트레이션 프레임워크는 에이전트를 조정하고 워크플로가 순조롭게 진행되도록 도와주죠. 검색할 데이터, 호출할 도구, 전달할 상태, 적용할 출력 형식을 결정하는 방식으로요. 가장 인기 있는 오픈 소스 오케스트레이션 프레임워크로는 LangChain과 LlamaIndex가 있답니다.

랭체인

LangChain은 에이전트 워크플로 및 도구 통합을 지원하는 에이전트 애플리케이션 구축을 위한 포괄적인 생태계에요. LangChain 프레임워크는 체인, 에이전트, 도구 및 메모리를 포함한 에이전트 시스템을 위한 빌딩 블록을 제공해서, 에이전트가 도구를 계획하고, 호출하고, 다단계 작업을 완료할 수 있게 도와줘요.

LangChain 생태계는 팀이 일반적으로 프로덕션 환경에서 필요로 하는 부분들을 추가해줘요.

  • LangChain Core: 체인, 에이전트 및 도구를 제공해요.
  • LangGraph: 분기, 오류 처리 및 인간 참여 단계를 통해 상태 저장 워크플로를 모델링할 수 있어요.
  • LangSmith: 관찰 가능성, 디버깅 및 평가를 지원하죠.
  • LangServe: 워크플로를 REST API로 배포하는 데 도움을 줘요.
  • : 도구 통합, 대화 메모리 및 상태 관리를 위한 것들이 준비되어 있어요.

LangChain은 일반적으로 도구 통합, 상태 관리 및 복잡한 작업 흐름이 필요할 때 가장 적합한 선택이 될 수 있어요.

라마인덱스

LlamaIndex는 강력한 수집, 인덱싱 및 검색 기능을 갖춘 LLM 애플리케이션을 위한 데이터 중심 프레임워크에요. 다양한 데이터 소스에서 검색 가능한 인덱스를 생성하고 검색 품질을 조정하는 데 특화되어 있죠.

LlamaIndex의 강점은 다음과 같아요:

  • 복잡한 인덱스 구조: Vector, 트리 기반, 그래프 기반 및 목록 기반 인덱스를 포함한 다양한 검색 전략을 지원해요.
  • : PDF, 데이터베이스, API 및 기타 구조화된 형식을 위한 커넥터가 포함되어 있어요.
  • : 파이프라인은 청크 분할, 정리 및 최적화 워크플로를 제공하죠.
  • 복잡한 쿼리 처리: 쿼리 라우팅 및 더 작은 하위 질문으로의 자동 분해와 같은 기술을 활용해요.
  • : 메모리 블록, 평가 도구 및 기타 생산 기능을 위한 것들이 준비되어 있답니다.

LlamaIndex는 검색 품질이 중요한 성공 지표이고, 인덱싱 전략에 대한 세밀한 제어가 필요한 문서 중심 애플리케이션에 가장 적합해요.

기반 컨텍스트를 위한 메모리 계층

컨텍스트 창은 한정적이에요. 모든 정보를 다 보내면 대기 시간과 비용이 증가하고, 세션 전반에 걸쳐 지속적인 메모리를 제공하기도 어렵죠. 컨텍스트 엔지니어링에는 다음과 같은 다양한 메모리 계층이 존재해요:

  • 단기 기억 (Short-term memory): 대화 기록, 세션 상태 및 현재 작업에 대한 즉각적인 작업 컨텍스트를 의미해요.
  • 장기 기억 (Long-term memory): 엔터티, 관계 및 선호도에 대한 지속적인 사실적 도메인 지식을 말하죠.
  • 추론 기억 (Inference memory): 계획, 도구 호출, 중간 단계 및 사용된 증거를 포함한 의사결정 추적을 의미해요.

단기 기억

단기 기억은 에이전트에게 즉시 필요한 정보(활성 대화, 최근 도구 출력, 중간 변수, 현재 작업에 대한 세션 상태)를 저장하는 역할을 해요. 이는 한 작업에서 다음 작업으로 다단계 작업 흐름을 일관되게 유지하는 데 중요하죠.

대부분의 프레임워크에는 에이전트 런타임 상태의 일부로 단기 메모리가 포함되어 있어요. 예를 들어 LangChain은 단기 기억 에이전트 상태 내에서 제공하고, LlamaIndex도 비슷한 기능을 제공하는 메모리 컴포넌트가 있어서 세션 중에 작업 컨텍스트를 유지할 수 있죠.

단기 메모리는 대화의 연속성을 유지하고, 도구 결과를 전달하며, 에이전트가 작업 흐름 중에 사용자 의도를 추적하는 데 유용해요. 이런 기능이 없다면 에이전트는 동일한 정보를 반복적으로 요청하거나, 중요한 제약 조건을 잊어버리거나, 작업을 제대로 완료하지 못할 수도 있겠죠.

장기 기억을 위한 Knowledge Graph

장기 기억은 현재 세션 이후에도 지속되는 정보(도메인 지식, 엔터티 지식, 사용자 선호도, 이전 결정 등 지속 가능한 컨텍스트)를 저장하는 것을 말해요.

많은 에이전트 시스템에서 이 메모리는 Knowledge Graph 형태로 표현될 때 가장 효과적인데요. 단순히 벡터만 사용하는 게 아니라 엔터티와 관계를 통합하는 방식이죠. 벡터는 의미론적 유사성을 포착하고, Knowledge Graph는 의미와 구조를 모두 포착하기 때문에 에이전트는 유사한 텍스트뿐만 아니라 관계를 탐색하면서 연결된 컨텍스트를 발견할 수 있어요. 이렇게 하면 환각 위험을 크게 줄일 수 있답니다.

는 내장된 벡터 인덱스 기능과 LangChain과의 통합을 통해 장기 기억을 위한 최고의 Knowledge Graph를 제공해요. 에이전트는 GraphRAG를 사용해서 Knowledge Graph에서 정보를 검색하고, 그래프를 탐색해서 더 풍부하고 연결된 사실과 관계를 얻어낼 수 있죠. 또는 하이브리드 검색을 통해 GraphRAG와 벡터 RAG를 결합하여 의미상 유사하고 문맥상 관련된 정보를 모두 검색할 수도 있고요.

How GraphRAG improves context retrieval for agentic reasoning.

Neo4j Knowledge Graph를 기반으로 구축된 다른 장기 기억 도구들도 많이 있어요.

  • Zep은 사용자, 세션, 사실을 연결하는 Knowledge Graph를 사용해서 AI 보조를 위한 장기 기억을 구축해요.
  • Zep은 시간이 지남에 따라 정보가 어떻게 진화하는지 추적하는 시간적 Knowledge Graph를 만들죠.
  • 는 그래프를 사용해서 에이전트가 추론할 수 있는 구조화된 메모리 계층을 구축하고요.
  • Mem0는 그래프 기반 엔터티 관계로 개인화된 AI 메모리를 제공해요.
  • LangMem LangChain의 에이전트 경험은 연결된 메모리 그래프로 저장된답니다.

메모리 추론을 위한 컨텍스트 그래프

추론 메모리는 에이전트의 결정 추적과 에이전트가 결론에 도달한 방법(계획한 단계, 호출한 도구, 사용한 증거, 결과 성공 여부)을 캡처하는 것을 의미해요.

결정 추적은 Neo4j 그래프, 특히 컨텍스트 그래프에 유용한데요. 이는 행위적 추론과 의사결정을 구조화하고 쿼리 가능하며 재사용 가능하게 만들어주죠. 단일 결과를 기록하는 대신 컨텍스트 그래프는 요청, 추론 단계, 도구 호출 및 데이터 소스를 단일 추적에 연결해요. 이를 통해 처음부터 끝까지 결정을 따라가고 무엇이 결정에 영향을 미쳤는지 정확히 확인할 수 있어요. 덕분에 에이전트 시스템은 단순히 엄격한 규칙을 따르는 것이 아니라 더 스마트하고 상황에 맞는 결정을 내릴 수 있게 된답니다.

갱신 담당자가 20% 할인을 제안한다고 상상해보세요. 하지만 정책상 예외 승인이 없는 한 최대 10%까지만 할인이 가능해요. 이때 갱신 담당자는 이탈 위험이 있는 최근 사례를 검색하고, 유사한 예외가 승인되었던 이전 사례들을 찾아볼 수 있겠죠. 그런 다음 예외 요청을 재무팀으로 보내 승인받을 수 있을 거예요.

컨텍스트 그래프는 의사 결정 과정을 보존해서 유사한 사례에 대해 설명, 감사, 재사용이 가능하도록 만들어줘요.

모델 컨텍스트 프로토콜을 사용하여 도구에 연결

모델 컨텍스트 프로토콜(MCP, Model Context Protocol)은 에이전트가 외부 도구에 연결하는 데 도움이 되는 표준 프로토콜이에요. 모호성을 줄이기 위한 도구 정의 및 지침을 제공하죠. Anthropic은 MCP를 표준으로 도입했고, MCP 호스트가 MCP 클라이언트를 통해 MCP 서버에 연결하는 클라이언트-서버 모델을 사용해요. 이를 통해 에이전트에게 도구와 필요한 컨텍스트를 지속적으로 전달할 수 있어서, 에이전트는 지침과 기능을 이해하고 도구를 올바르게 사용할 수 있게 돼요.

MCP는 에이전트 안정성을 향상시키기 때문에 컨텍스트 엔지니어링에 중요해요.

  • 에이전트는 어떤 도구가 존재하는지, 그리고 각 도구가 무엇을 기대하는지 "확인"할 수 있어요.
  • 각 도구에는 입력 및 출력에 대한 명확한 지침이 있어서 모호한 호출이 줄어들어요.
  • 도구 구현을 교체해도 전체 에이전트를 다시 작성할 필요가 없어요.

MCP는 에이전트 AI 시스템이 실제로 작동하는 방식과 일치해요. 즉, 단계 간에 컨텍스트를 전달하면서 다단계 도구 사용을 계획하고 실행하죠. 이는 일관되고 안정적인 도구 액세스에 의존하는 에이전트 시스템의 실용적인 기반이 돼요.

Neo4j는 에이전트 시스템이 그래프를 읽고 쓸 수 있도록 하는 도구, 리소스 및 프롬프트를 포함한 MCP 통합을 제안해요.

에이전트 작업을 안전하고 검증 가능하게 만들기

모델은 하루 종일 텍스트를 생성할 수 있지만, 에이전트 시스템은 외부 환경과 상호 작용할 때 안전하게 작동해야 해요. 도구에는 안전 장치가 내장되어 있어야 하죠.

  • 함수 호출(Function Calling): 구조화된 도구 호출은 모호성을 줄여줘요. 명시적인 입력 및 출력이 포함된 사전 정의된 기능은 환각적인 도구 사용을 방지하고 예측 가능하고 결정적인 워크플로를 지원하는 데 도움이 돼요.
  • API 호출(API Calling): 실시간 데이터는 응답이 올바른지 여부를 결정하는 경우가 많아요. API 통합을 통해 에이전트는 실시간 데이터를 가져오고 현재 정보를 기반으로 조치를 취할 수 있어요.
  • 구조화된 출력(Structured Output): JSON과 같은 스키마 제한 형식은 다운스트림 시스템을 예측 가능하게 유지해줘요. 구조화된 응답은 자유 형식 텍스트보다 유효성을 검사하고 구문 분석하기가 더 쉽죠.
  • 에이전트 기술(Agent Skills): 재사용 가능한 기술은 워크플로의 일관성을 유지해줘요. 스킬 번들에는 에이전트가 동일한 조건에서 일관되게 작업을 실행할 수 있도록 지침, 스크립트 및 리소스가 포함되어 있어요.

컨텍스트를 간결하게 유지하기 위한 컨텍스트 최적화

토큰 비효율성은 에이전트 속도 저하, 비용 증가, 관련성 저하로 나타나요. 컨텍스트가 모델의 컨텍스트 창에 맞지 않으면 성능과 정확도가 저하되어 컨텍스트 부패로 이어지죠. 현재 모델의 성능 상한선은 약 백만 개의 토큰이에요. 이 창에 맞추기 위해 압축이나 청킹과 같은 컨텍스트 최적화 기술을 사용해서 모델에 필요한 세부 정보를 희생하지 않고 토큰 낭비를 줄일 수 있어요.

압축

압축은 토큰 사용량을 줄이면서 의미를 보존하는 것을 목표로 해요.

요약은 긴 구절을 더 짧고 의미가 보존된 요약으로 압축하기 위해 변환기를 통해 수행되는 경우가 많아요. 이는 다음과 같은 라이브러리를 사용하여 수행할 수 있어요. load_summarize_chain (LangChain) 또는 페가수스(Pegasus) (Google).

주요 세부 정보를 잃지 않고 토큰 낭비를 줄이려면 다음 지침을 따르세요.

  • 적절한 경우 삽입하기 전에 요약하거나 압축하세요.
  • 긴 말뭉치에는 다단계 요약을 사용하세요.
  • 정책, 매뉴얼, 런북 등 장기간 사용되는 참조 콘텐츠를 압축하세요.
  • 에이전트가 반복적으로 재사용하지 않는 한 최신 티켓 업데이트나 최근 도구 출력과 같은 단기 트랜잭션 컨텍스트를 압축하지 마세요.

청킹

청킹은 컨텍스트를 더 작고 관리 가능한 조각으로 나누는 거예요. 청킹은 컨텍스트 창에 맞는 별도의 임베딩으로 변환하려는 경우 유용해요. 이는 RAG 파이프라인의 회상을 향상시키고 환각을 감소시키죠. LangChain 및 LlamaIndex와 같은 대부분의 에이전트 프레임워크에는 텍스트 분할 통합이 포함되어 있어서 청킹을 쉽게 할 수 있어요.

콘텐츠를 분할할 때 다음 규칙을 사용하세요.

  • 소스가 구조화되지 않은 경우 고정 크기로 청크(단어 수, 문자 수, 토큰 크기)
  • 소스에 구조(제목, 섹션, 표)가 있는 경우 구조별로 청크
  • 소스가 의미를 기반으로 하는 경우 의미론별 청크(다른 의미가 있는 단락)

컨텍스트 품질 평가

측정할 수 없는 것은 개선할 수 없어요. 안정적인 에이전트 동작에는 제한된 실행, 검증된 입력 및 출력, 감사 가능한 도구 사용이 필요해요. 프롬프트, 도구 및 데이터가 발전함에 따라 에이전트 동작이 변경되고 검색이 표류할 수 있고 도구 호출이 실패할 수 있으며 작은 편집으로 인해 환각이 증가하거나 구조화된 출력이 중단될 수 있어요.

평가를 통해 이러한 문제를 조기에 포착할 수 있어요. 목표는 시스템이 올바른 컨텍스트를 검색하고, 적절한 단계를 따르고, 출력을 증거에 근거하는지 여부를 확인하여 관련성, 충실성 및 안전성을 측정하는 것이죠.

대부분의 프레임워크에는 에이전트 시스템의 성능을 평가하는 도구가 내장되어 있어요. 예를 들어 LangChain 생태계에서는 LangSmith 평가를 사용해서, 사용자가 직접 하기 전에 데이터 세트에 대한 평가를 실행해 에이전트 버전, 벤치마크 성능을 비교하고 회귀를 잡아낼 수 있죠. LlamaIndex도 비슷한 평가 프레임워크를 제공하고요.

평가 도구는 종종 LLM 평가 점수를 사용하는데, 특히 루프에 내장된 인간 피드백을 통해 성과 지표를 정량화하는 데 도움이 돼요. 평가 지표에는 정확성, 관련성, 관찰 가능성 및 기타 도메인별 지표와 같은 요소들이 포함될 수 있고요.

Context Engineering에 적합한 도구를 선택하는 방법

요구 사항이 불분명할 때 프로덕션 에이전트는 예측 불가능하게 작동을 멈출 수 있어요. 여러분이 Context Engineering 도구 및 프레임워크를 선택할 때, 메모리, 오케스트레이션, 실행, 최적화 및 평가 전반에 걸쳐 명확한 시스템 목표와 제약 조건에 집중해야 해요.

  1. 시스템 요구 사항을 정의하세요. 시스템이 단일 턴 어시스턴트인지, 아니면 다단계 에이전트인지 확인한 다음, 대기 시간, 비용, 안전, 감사 요구 사항 및 데이터 최신성에 대한 목표를 설정하세요. 실시간 데이터 액세스 또는 엄격한 규정 준수 제약과 같은 요구 사항에 따라 도구 선택이 결정될 거예요.
  2. 오케스트레이션 프레임워크를 선택하세요. 워크플로 복잡성을 기반으로 오케스트레이션 프레임워크를 선택하는 게 좋아요. 상태 저장 제어 흐름과 많은 통합을 갖춘 도구 기반 에이전트는 LangChain 스타일 접근 방식에 잘 맞는 경향이 있죠. 정교한 indexing 및 query pipeline을 갖춘 검색 중심 애플리케이션은 종종 LlamaIndex 스타일 접근 방식에 잘 맞고요.
  3. 메모리 및 검색 아키텍처를 선택하세요. 애플리케이션에 필요한 추론 종류에 메모리 계층을 연결하세요. 그래프는 관계, 출처, 설명 가능성이 중요한 복잡한 기업 지식에 적합해요. Knowledge Graph는 에이전트에게 도메인에 대한 구조화된 이해를 제공하고, 컨텍스트 그래프는 에이전트에게 추론 능력을 향상시키기 위한 결정 추적을 제공하죠.
  4. 실행 기능을 추가하세요. 에이전트가 어떻게 안전하게 행동할지 정의하는 것이 중요해요. MCP는 에이전트와의 도구 통합을 표준화하는 데 도움이 되고, 함수 호출은 명시적인 schema와 예측 가능한 입력 및 출력을 통해 도구 사용을 제한하는 데 도움이 되죠. 구조화된 출력은 쉽게 검증하고 구문 분석할 수 있는 응답을 생성하여 다운스트림 시스템을 돕고요.
  5. 상황 효율성 최적화: 콘텐츠 및 query 패턴에 맞게 조정된 chunking 및 압축을 통해 토큰 낭비를 줄여보세요. 효과적인 chunking은 환각 위험을 낮추면서 회상을 향상시키고, 압축을 사용하면 주요 사실과 제약 조건을 잃지 않고 prompt를 작게 유지하는 데 도움이 돼요.
  6. 평가 및 모니터링: 평가 및 관찰 가능성을 프로덕션 요구 사항으로 생각하고 접근하세요. 회귀 테스트, 접지 확인 및 추적은 드리프트를 조기에 파악하고 시스템 변경 시 오류를 설명하는 데 도움이 될 거예요.

신뢰할 수 있는 컨텍스트로 에이전트 시스템 구축

Context Engineering은 에이전트 AI 시스템의 기초라고 할 수 있어요. 모든 단계는 적절한 사실, 제약 조건 및 상태를 적절한 순간에 제공하는 시스템에 달려 있기 때문이죠. 이것이 없으면 애플리케이션이 발전함에 따라 도구 사용이 불안정해지고 검색 표류가 발생하며 품질이 저하될 수 있어요.

신뢰할 수 있는 에이전트 시스템은 메모리와 도구 사용을 조정하여 다단계 추론 및 워크플로 전반에 걸쳐 일관된 컨텍스트를 유지하는 신뢰할 수 있는 프레임워크를 기반으로 구축되었어요. 여기에는 적시에 올바른 데이터를 선택하고, 작업 간 상태를 보존하고, 모든 결정이 증거에 근거하도록 보장하는 것이 포함되죠. 압축과 chunking을 통해 맥락을 간결하게 유지하고 성능과 환각을 평가하는 것도 중요하고요.

는 컨텍스트의 신뢰성을 높이기 위해 Knowledge Graph와 컨텍스트 그래프를 제공해요. 엔터티와 관계를 명시적으로 저장함으로써 엔터프라이즈 도메인 지식의 구조를 보존하고 신뢰할 수 있는 에이전트 AI 시스템에 대한 추적 가능한 결정을 가능하게 하죠.


에이치시스템즈LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.

👉 에이치시스템즈 홈페이지

728x90
반응형

+ Recent posts