반응형

Context Engineering은 Large Language Model(LLM)이 작업을 안정적으로 완료할 수 있도록 적시에 적절한 지침, 도구 및 증거를 제공하는 것을 의미해요. 많은 팀이 "질문"을 만드는 Prompt Engineering으로 시작하지만, 프롬프트만으로는 ID, 필터, 이전 결정을 추적하거나 신뢰할 수 있는 사실을 수집하거나 도구 사용을 조정하기 어렵죠. 에이전트 애플리케이션이 안정적으로 작동하려면 전체 컨텍스트가 필요하답니다.

이미 Prompt Engineering에 능숙하고 간단한 사용 사례에서 강력한 결과를 얻고 있을 거예요. 하지만 고급 애플리케이션, 특히 에이전트에는 잘 표현된 지침 그 이상이 필요해요. 명확한 작업 정의, 각 단계의 올바른 정보, 도구에 대한 액세스, ID, 제약 조건, 중간 결과를 기억하고 전달할 수 있는 안정적인 방법 등 구조화된 컨텍스트에 따라 결과가 달라지죠. 이러한 기반이 없으면 시스템은 다단계 작업을 안정적으로 조정하거나 의사 결정 전반에 걸쳐 일관성을 유지할 수 없어요. 문제는 모델이 아니에요. 프롬프트만으로는 복잡한 애플리케이션에 필요한 아키텍처를 제공할 수 없다는 점이죠.

복잡한 애플리케이션에서는 프롬프트 자체로는 더 이상 충분하지 않아요. 이제 AI 엔지니어는 모델 주변의 컨텍스트를 더욱 신중하게 설계해야 한답니다.

Context Engineering이 바로 이 역할을 수행하는 방법이에요. 이 글에서는 Context Engineering이 무엇인지, Prompt Engineering과 어떻게 함께 작동하는지 설명할 거예요. Neo4j를 사용하여 컨텍스트를 설계, 저장 및 검색하기 위한 실용적인 기술을 제공할 거니까, 에이전트가 기반을 유지하고 설명 가능하며 감사 가능하도록 만들 수 있을 거예요.

이 가이드에서 다룰 내용은 다음과 같아요:

  •  
  • LLM의 컨텍스트 창이란 무엇일까요?
  •  
  • Prompt Engineering 또는 Context Engineering? 어떻게 결정해야 할까요?
  •  
  •  
  • 최소 실행 가능 컨텍스트(MVC) 및 컨텍스트 피라미드
  •  
  • 에이전트 루프의 각 단계에서 필요한 컨텍스트
  •  
  • 상황 질문 예: 빠른 계획 체크리스트
  •  
  • 메타컨텍스트가 중요한 이유
  •  
  • 1. 하이브리드 RAG
  •  
  • 2. Knowledge Graph – 증강 컨텍스트(GraphRAG)
  •  
  • 3. 메모리 관리 및 요약
  •  
  • 4. 컨텍스트 레버로서의 도구 사용 및 함수 호출
  •  
  • 5. 컨텍스트 순서 및 형식 최적화
  •  
  • 컨텍스트 엔지니어링의 이점
  • 구조화된 컨텍스트를 위한 Knowledge Graph
  •  
  • 필수 GraphRAG
  •  

Prompt Engineering과 컨텍스트 엔지니어링: 컨텍스트가 중요한 이유

Prompt Engineering은 질문하는 방법을 다듬지만, 부족한 정보를 채워주진 않기 때문에 실제 사실 대신 그럴듯한 표현을 쓰게 만들죠. 프롬프트만으로는 봇이 추측에 의존하게 되고, 실제 프로덕션 환경에서는 모델 실패의 많은 원인이 컨텍스트 부족으로 드러나요. 에이전트가 필요한 시점에 올바른 정보, 규칙, 또는 도구를 활용하지 못하는 거죠. 단순한 Q&A에서 복잡한 상담원으로 발전하면서 컨텍스트의 중요성이 더욱 커졌어요. 컨텍스트 엔지니어링을 통해 각 단계에서 고객 정보, 티켓, SLA, 정책 등을 검색해서 답변이 관련성 있고, 설명 가능하며, 잘 관리되도록 하는 거예요.

생각해보면, 우리 인간도 어떤 상황에 놓이면 맥락이 필요하잖아요?

역할, 목표, 결과 형식에 대한 프롬프트를 사용하세요. 그래프 인식 검색 및 순회를 통해 사실을 가져오고 형성함으로써 컨텍스트 엔지니어링을 사용하여 모델 중심에서 아키텍처 중심 엔지니어링으로 전환합니다. Knowledge Graph를 활용하는 거죠.

더 큰 맥락이 반드시 더 나은 건 아니에요. 큰 컨텍스트 창은 사람들이 더 많은 텍스트를 입력하도록 유도하지만, 구조화되고 관련성이 높은 입력이 원시 크기보다 훨씬 좋답니다.

LLM의 컨텍스트 창이란 무엇일까요?

컨텍스트 창은 모델이 한 번에 읽을 수 있는 텍스트의 양이에요. 모델이 얼마나 많은 정보를 처리할 수 있는지 제한하고, 어떤 부분에 집중해야 하는지 결정하며, 토큰의 입출력이 사용량을 늘리기 때문에 비용과 대기 시간을 설정하죠. 중요한 정보만 포함하고 나머지는 압축하거나 요약하도록 파이프라인을 설계하는 게 중요해요.

Prompt Engineering 또는 컨텍스트 엔지니어링? 어떻게 결정해야 할까요?

  • Prompt Engineering을 사용하세요: 모델이 이미 사실을 알고 있는 좁고 정적인 작업의 경우에요.
  • 컨텍스트 엔지니어링을 사용하세요: 다중 소스 또는 시간 제한이 있는 질문의 경우, 데이터에 대한 액세스 제어가 필요한 경우, 또는 에이전트가 작업 내용을 명확히 보여줘야 하는 경우에 적합하죠.

AI 에이전트의 컨텍스트 구성 요소는 무엇일까요?

컨텍스트는 에이전트가 추론을 위해 참고하고 사용할 수 있는 입력들의 집합이에요. 명확한 지침, 구체적인 질문, 최근 메모, 신뢰할 수 있는 사실, 관련 도구, 다음 단계로 이동할 시기 등, 마치 직장에서 작업을 위해 준비된 키트처럼 생각하면 돼요. 누락되거나 불필요한 정보가 있으면 응답이 엉뚱하게 나오거나 검토 시간이 더 오래 걸릴 수 있어요.

이 체크리스트를 사용해서 각 실행에 필요한 항목이 있는지 확인해 보세요.

  • 시스템 지침: 모델이 어떻게 행동해야 하는지 이해할 수 있도록 역할, 목표, 제약 조건 및 안전 규칙을 구성하세요.
  • 사용자 프롬프트: 특정 질문과 기간, 지역, 고객 세그먼트 등의 제약 조건을 파악해야 해요.
  • 기억 (단기 및 장기): 연속성을 위해 최근 상태를 유지하고 재사용을 위해 중요한 사실이나 요약을 저장해두세요.
  • (검색): 신뢰할 수 있는 출처에서 사실을 추출해서 답변이 추측이 아닌 증거를 기반으로 하도록 해야겠죠.
  • 도구: 모델이 호출할 수 있는 API 또는 기능을 제공하세요. 출력을 작고 구조화된 사실로 디자인하는 것이 중요해요.
  • 출력: 도구 결과와 이전 답변을 다음 단계에서 사용할 수 있는 간결한 사실로 정규화하세요.
  • 전역 세션 상태: 여러 단계를 거쳐 이동하는 ID, 권한, 시간대 및 기타 메타데이터를 추적해야 합니다.

최소 실행 가능 컨텍스트(MVC) 및 컨텍스트 피라미드

컨텍스트를 최적으로 구성하고 적시에 제공하는 것이 정말 중요해요. 다음 기술들이 도움이 될 거예요.

  • 최소 실행 가능 컨텍스트(MVC): MVC를 모델이 현재 작업을 완료하는 데 필요한 가장 작은 입력 세트라고 생각해보세요. 일반적으로 여기에는 명확한 지침과 목표, 특정 사용자 요청, 몇 가지 대상 예, 활성화된 최소 도구 세트 및 이 요청과 관련된 핵심 사실이 포함되어 있어요. 불필요한 정보와 대형 도구 덤프를 제외하면 중요한 정보에 집중할 수 있고 모델이 관련 없는 세부 사항을 추적하는 것을 방지할 수 있답니다.
  • 컨텍스트 피라미드: 모델이 보는 것을 세 개의 레이어로 구성하는 방법이에요. 영구 기반에는 시스템 프롬프트, 안전 정책 및 표준 사실과 같은 안정적인 자료가 포함되어 있어요. 거의 변경되지 않도록 캐싱해두면 좋겠죠. 그 위에는 작업 또는 단계별로 회전하는 동적 레이어(예제, 최근 메모리 및 메타데이터)가 있어요. 맨 위에는 작고 짧은 수명을 유지하는 임시 레이어(사용자 쿼리 및 도구 출력)가 있답니다. 최상위 레이어를 새로 고치는 동안 기본 캐싱은 토큰 비용을 제어하고 모델이 중요한 사항에 주의를 기울이는 데 도움이 될 거예요.
A visual representation of the context pyramid

에이전트 루프의 각 단계에서 필요한 컨텍스트

에이전트가 루프를 실행하기 전에 각 단계에는 서로 다른 컨텍스트 조각이 필요해요. 불필요한 정보는 제거하면서 적시에 올바른 컨텍스트를 제공하려면 다음 단계를 따라보세요.

  1. 이유: 목표, 제약 조건, 관련 사실 및 사용 가능한 도구를 제공하세요. 계획에 집중할 수 있도록 간략하게 작성하는 것이 중요해요.
  2. Act: 선택한 도구 사양, 검증된 매개변수, 최소 지원 사실을 제공하세요. 출력 및 로그 소스를 제한합니다.
  3. 관찰하다: 도구 결과, 품질 체크리스트, 새로운 사실을 추출할 수 있는 공간을 제공하세요. 검증된 사실과 인용문을 그래프에 다시 작성하세요.

여러 에이전트가 동시에 실행될 때는 읽기를 병렬로 유지하고 충돌을 방지하기 위해 단일 작성자를 지정하는 게 좋아요. 다음 단계 전에 필요한 상태만 공유하고, 충돌하는 출력을 조정하세요.

실용적인 핸드오프 및 프로토콜

에이전트가 단계를 거치면서 컨텍스트를 깔끔하게 패키징하고 전달하므로 상태가 간결하고 일관되며 감사 가능하게 유지되죠.

  • 각 상담원의 역할, 입력, 출력, 허용된 도구를 정의하세요. 집중할 수 있도록 작은 역할별 메모리를 유지하는 거죠.
  • 여러 에이전트를 조정하세요. 병렬 읽기와 단일 작성기 패턴을 선호하고 무엇을 공유할지 명시적으로 결정하며, 상충되는 결정을 조정합니다.
  • 가능한 경우 컨텍스트를 격리하세요.: 단일 작성기 패턴을 선호하고, 읽기를 병렬화하고, 무엇을 공유할지 명시적으로 결정하고, 쓰기 충돌을 피하기 위해 로컬로 유지할지 결정합니다.
  • 상담원 간에 꼭 필요한 것만 공유하세요. 원시 로그 대신 압축 상태, 짧은 요약, 그래프 경로를 전달하므로 다운스트림 단계가 빠르고 명확하게 유지돼요.
  • 공유된 사실과 비공개 메모를 분리하세요. 확인된 사실과 인용을 다시 그래프에 기록하고 이를 확인할 때까지 스크래치 메모를 로컬에 보관하세요.
  • 예산 토큰 및 지연 시간: 안정적인 지침과 도구 사양을 캐시하고, 단계별 컨텍스트 크기를 제한하고, 오래된 세부 정보를 정리하여 루프의 응답성을 유지합니다.
  • 모든 핸드오프를 안전하게 보호하세요: 다음 에이전트에 대한 컨텍스트를 패키징할 때 권한 및 시간 필터를 적용하고 기본적으로 중요한 필드를 제거합니다.
  • 추적 결정: 나중에 에이전트와 검토자가 일련의 추론을 확인할 수 있도록 소스 링크와 경로 식별자를 첨부하세요.

그래프를 사용하여 여러 단계에 걸쳐 각 결과 뒤에 있는 상태와 경로를 전달하고 다음과 같은 프로토콜을 사용합니다. 모델 컨텍스트 프로토콜(MCP)은 일회용 어댑터 없이 공유 도구와 리소스를 노출해요.

상황 질문 예: 빠른 계획 체크리스트

모델이 중요한 것만 볼 수 있도록 이러한 질문을 사용하여 각 실행 전에 컨텍스트를 형성하세요.

  • 이 요청의 범위(이름, ID, 지역, 날짜)를 정의하는 엔터티, 식별자, 기간은 무엇인가요?
  • 한 문장으로 된 정확한 사용자 질문은 무엇이며, 검토 시 정답으로 간주되는 것은 무엇인가요?
  • 이 결정에 대한 표준 소스는 무엇이며 범위를 벗어난 소스는 무엇입니까?
  • 어떤 정책, 권한, 지역이 적용되며 민감한 필드를 검색하기 전에 수정해야 합니까?
  • 대답의 일관성을 유지하려면 어떤 사전 사실이나 결정이 차례대로 전달되어야 합니까?
  • 어떤 도구를 실행해야 하고, 어떤 매개변수를 사용하고, 어떤 출력 스키마를 반환해야 하는지(예: {ticket_id, component, policy_id})?
  • 검토자가 확인할 수 있도록 최종 답변에 어떤 증거가 나타나야 합니까(인용, 경로 ID, 타임스탬프)?
  • 거기에 있나요(이전 결정, 사용자 선호도 또는 그래프 사실)을 가져와야 합니까?

이러한 검사는 위의 구성 요소에 명확하게 매핑되며 워크플로를 효율적이고 감사 가능하며 검증 가능한 데이터에 기반을 두도록 유지해줘요.

메타컨텍스트가 중요한 이유

메타 컨텍스트는 작업과 함께 이동하는 공유 거버넌스 계층 역할을 하므로 각 단계는 규칙을 재정의하는 대신 동일한 규칙을 읽습니다. 상담사의 워크플로를 범위 내에서 유지하고 여러 단계에서 규정을 준수하도록 도와주죠. 다음 용도로 사용하세요:

  • 계획: 계획이 범위 내에 있도록 정책, 역할, 기간, 지역, 환경 세부 정보로 작업을 묶습니다.
  • 행동: 도구 호출 시 권한 및 매개변수 규칙을 적용하고, 입력의 유효성을 검사하고, 출력이 진행되기 전에 필터링합니다.
  • 관찰: 수정 및 인용 규칙을 적용하고, 확인된 사실과 계보를 그래프에 기록하고, 오래된 컨텍스트를 만료합니다.
An infographic showing the role of meta-context in task management in terms of planning, action, and observation

효과적인 컨텍스트 엔지니어링을 위한 상위 5가지 기술

예측 가능한 동작에 대한 고품질 컨텍스트를 조합하려면 이러한 접근 방식을 사용하세요.

1. 하이브리드 RAG

Demo

먼저 작은 데모 데이터 세트를 만들어 볼게요.

/* Example data */
CREATE (:Doc {id:'doc1', text:'SSO login troubleshooting', embedding:[0.1,0.2,0.3]});
CREATE (:Doc {id:'doc2', text:'Billing policy for refunds',   embedding:[0.9,0.9,0.9]});

Vector Index를 만들어볼까요? Doc.embedding에 대한 인덱스예요.

/* Vector index (adjust dimensions to your model) */
CREATE VECTOR INDEX docsEmbedding IF NOT EXISTS
FOR (d:Doc) ON (d.embedding)
OPTIONS {indexConfig: {`vector.dimensions`: 3, `vector.similarity_function`: 'cosine'}};

이제 하이브리드 쿼리를 만들어 봅시다. 키워드로 제한된 Vector Search 쿼리예요.

/* Hybrid query: vector + keyword constraint */
CALL db.index.vector.queryNodes('docsEmbedding', 5, [0.1,0.2,0.25])
YIELD node, score
WHERE node:Doc AND node.text CONTAINS 'SSO'
RETURN node.id AS id, node.text AS text, score;

2. Knowledge Graph – 증강 컨텍스트(GraphRAG)

GraphRAG 아키텍처를 사용해서 연결된 사실과 이를 설명하는 경로를 찾아내는 방법을 알아볼게요. 찾은 증거와 설명을 모두 모델에 입력하는 거죠.

Demo

데모 데이터 세트를 만들어 봅시다.

/* Example data */
CREATE (c1:Customer {name: 'Novo Nordisk'}),
       (c2:Customer {name: 'Intuit'});
CREATE (p1:Product {name: 'Neo4j Aura'}),
       (p2:Product {name: 'Neo4j Enterprise'});
CREATE (t1:Ticket {id:'T1', type:'SSO'}),
       (t2:Ticket {id:'T2', type:'SSO'}),
       (t3:Ticket {id:'T3', type:'Billing'});
CREATE (r1:Contract {id:'R1', quarter:'Q3-2025'}),
       (r2:Contract {id:'R2', quarter:'Q3-2025'});
CREATE (c1)-[:FILED]->(t1)-[:ABOUT]->(p1),
       (c1)-[:FILED]->(t2)-[:ABOUT]->(p2),
       (c2)-[:FILED]->(t3)-[:ABOUT]->(p1),
       (c1)-[:RENEWED]->(r1),
       (c2)-[:RENEWED]->(r2);

2025년 3분기에 갱신했고, SSO 티켓을 제출한 고객을 찾아볼까요?

MATCH (c:Customer)-[:FILED]->(t:Ticket {type:'SSO'})-[:ABOUT]->(p:Product),
      (c)-[:RENEWED]->(r:Contract)
WHERE r.quarter = 'Q3-2025'
RETURN c.name, count(t) AS ssoTickets
ORDER BY ssoTickets DESC
Knowledge graphs enhance LLM capabilities

3. 메모리 관리 및 요약

작고 의도적인 메모리는 에이전트의 연속성과 가드레일을 제공해줘요. 이런 게 없으면 단계 사이에 필터와 결정이 누출되어서 답변이 바뀔 수 있거든요.

단기 스크래치패드를 사용해서 현재 작업 전반에 걸쳐 제약 조건, ID, 부분 결과를 전달한 다음, 작업이 끝나면 이걸 지워서 블리드스루를 방지하는 거죠. 장기 요약을 인용과 함께 구조화된 사실로 저장해두면 다른 실행에서 안전하게 재사용할 수 있어요. 여러 차례의 기록을 의사 결정, 출처, 열린 질문을 포착하는 몇 개의 문장으로 압축하고요. 전체 기록을 다시 읽지 않고도 다음 단계를 실행할 수 있는지 질문해서 메모리 품질을 확인해보세요.

4. 컨텍스트 레버로서의 Tool 사용 및 Function Calls

각 Tool Call은 상황에 명확한 사실을 기록해서 이후 단계에서 이를 추론하고 감사자가 무슨 일이 일어났는지 확인할 수 있는 기회예요.

각 Tool Call을 컨텍스트를 작성하는 방법으로 생각해보세요. 작은 형식의 레코드를 반환하는 거예요 (예: {ticket_id, component, policy_id}) 원시 텍스트 대신 사용해서 모델이 단계를 예측 가능하게 연결할 수 있도록요. 엣지에서 입력을 검증하고 단위와 형식을 표준화하세요. 이후 단계와 검토자가 발생한 상황을 감사할 수 있도록 소스와 가정을 기록해두는 것도 중요해요.

5. 컨텍스트 순서 및 형식 최적화

모델은 순서대로 읽고 먼저 나타나는 내용에 더 많은 주의를 기울이니까, 레이아웃과 레이블이 결과를 직접적으로 형성하죠.

지침과 제약, 증거, 예시로 시작해서 일관된 맥락을 제시하세요. 명확한 제목으로 관련 항목을 그룹화하고 중복 항목은 제거하고요. 가장 중요한 사실을 맨 위에 놓고 목표와 결정 기준을 다시 설명하는 짧은 요약으로 마무리하면 좋아요. 형식 변경 전후의 접지성(groundedness)과 정확성을 추적해서 영향을 측정해보세요.

컨텍스트 엔지니어링의 이점

컨텍스트 엔지니어링은 특히 간단한 Q&A에서 프로덕션 에이전트로 넘어갈 때 여러 면에서 성과를 낼 수 있도록 도와줘요.

  • 신뢰성이 높아지고 환각이 줄어들어요. 프로덕션 오류의 대부분은 모델 오류가 아니라 컨텍스트 오류거든요. 각 단계에서 올바른 사실, 규칙, Tool을 선택하고 전달함으로써 컨텍스트 엔지니어링은 에이전트가 추측하는 것을 방지하고 근거 있고 일관되며 예측 가능한 답변을 제공할 수 있게 해줘요.
  • 다단계 추론. 프롬프트만으로는 ID, 제약 조건 또는 이전 결정을 기억하기 어렵죠. 컨텍스트 엔지니어링은 에이전트에게 구조화된 상태와 메모리를 제공해서 에이전트가 Tool을 조정하고 티켓과 필터를 전달하며 전체 워크플로에서 일관된 결정을 내릴 수 있도록 도와준답니다.
  • 설명 가능하고 감사 가능한 결정. Knowledge Graph와 GraphRAG에서 컨텍스트가 제공되면 모든 답변은 경로, ID, 인용으로 뒷받침되죠. 어떤 엔터티와 관계가 사용되었는지, 에이전트가 결론에 도달한 방법, 이를 뒷받침하는 증거는 무엇인지 확인할 수 있어요.
  • 비용은 낮추고 성능은 향상시켜요. 더 큰 컨텍스트 창은 사람들이 더 많은 텍스트를 삽질하도록 만들 수 있지만, 컨텍스트 엔지니어링은 그 반대에요. 최소한의 실행 가능한 컨텍스트에 초점을 맞추고 안정적인 명령을 캐싱하고 필요한 것만 검색하죠. 이는 토큰 사용량을 줄이고 대기 시간을 개선하며 동시에 품질도 향상시키는 경우가 많아요.
  • 일회성 프롬프트 대신 재사용 가능한 아키텍처. 도메인 모델링, GraphRAG로 검색, 메모리 관리 방법 등 컨텍스트 파이프라인을 설계하면 에이전트와 사용 사례 전체에서 이를 재사용할 수 있어요. 팀은 프롬프트를 끝없이 Fine-tuning하는 것을 멈추고 공유 아키텍처에서 반복을 시작할 수 있게 되는 거죠.

공통 컨텍스트 엔지니어링 과제

견고한 설계에도 불구하고 프로덕션 시스템은 예측 가능한 이유로 실패하곤 해요. 다음은 몇 가지 일반적인 컨텍스트 엔지니어링 문제와 이를 방지할 수 있는 가드레일이에요.

  • 컨텍스트 부패(Semantic Drift): 긴 컨텍스트는 작은 오류를 축적하고, 주요 사실을 묻고, 작업 초점을 흐리게 만들 수 있어요. 이를 방지하려면 기록 길이를 제한하고, 결정을 사실로 요약하고, 작업 간의 컨텍스트를 재설정하는 것이 중요해요.
  • 맥락 혼란: Tool이 너무 많거나 유사한 Tool이 있으면 선택이 더 어려워지고 결과가 저하될 수 있어요. 이를 방지하려면 Tool 이름을 명확하게 지정하고, 선택 규칙을 추가하고, 각 Tool을 언제 사용해야 하는지에 대한 예를 포함하는 것이 좋겠죠.
  • 상황 산만함: 대형 창은 새로운 단계를 계획하는 대신 최근 작업을 반복하는 쪽으로 모델을 편향시킬 수 있어요. 이를 방지하려면 반복을 잘라내고, k를 제한하고, 각 단계마다 새로운 증거를 요구해야 해요.
  • 컨텍스트 충돌: 연속적인 Tool 출력은 서로 모순되어 잘못된 답변으로 이어질 수 있어요. 이를 방지하려면 충돌을 조정하고, 우선 순위 규칙을 설정하고, 일관되지 않은 입력에 대한 루프를 중지해야 해요.
  • 컨텍스트 창 제한: 다음 단계를 진행하는 내용만 포함하고 다른 모든 내용은 압축하거나 연결하세요. 단계별 토큰 사용을 추적해서 영향이 적은 섹션을 정리하는 것도 방법이에요.
  • 관련성 결정: 하이브리드 검색 테스트 실제 질문에 대한 순위를 다시 매기고 거짓양성과 거짓음성을 모두 측정하세요. 추측이 아닌 오류를 기반으로 필터와 부스트를 강화하는 게 중요해요.
  • 지식 소스 유지 관리: 콘텐츠 버전을 관리하고 만료시키고, 동기화 일정을 설정하고, 신뢰할 수 있는 정보 소스를 표시하세요. 오래된 사실이 다시 맥락으로 돌아가는 것을 방지하기 위해 드리프트를 모니터링하는 것도 잊지 마세요.
  • 불일치 및 모순: 표준 소스를 선호하고, 충돌을 감지하고, 검토를 위해 표시하세요. 동점이 매번 일관되게 해결되도록 우선순위 규칙을 추가하는 것도 좋은 방법이에요.
  • 문맥 중독 및 오해의 소지가 있는 정보: 쓰기 경로를 제한하고, 신뢰할 수 있는 콘텐츠에 서명하거나 해시하고, 인용을 요구하세요. 감사를 위해 신뢰할 수 없는 입력 및 로그 계보를 격리하는 것도 중요하겠죠.
  • 지연 시간 및 비용: 안정적인 조각, 캡 k, 바운드 홉 수를 캐시하고 안전한 읽기를 병렬화하세요. 단계별 예산을 설정하고 느린 단계를 추적하는 것도 잊지 마세요.
  • Tool 복잡성: 인터페이스를 작게 유지하고, 형식화된 출력을 반환하고, 엣지에서 매개변수를 검증하세요. 에이전트가 루프나 막다른 골목 없이 Tool을 연결하도록 종속성을 매핑하는 것도 중요해요.
  • 보안 및 개인 정보 보호: RBAC를 통해 검색 시 필드 수준 필터를 사용하고, 기본적으로 수정하며 액세스를 감사할 수 있어요. 여러 단계에 걸쳐 시간 및 지역 제약 조건을 일관되게 적용하는 것도 가능하죠.
  • 견고성과 적응성: 검색이 부족할 때 대안을 추가하고, 신뢰도가 낮으면 사람에게 에스컬레이션하고, 정기적으로 평가하는 것이 중요해요. 시스템 성능이 점진적으로 저하되도록 엣지 케이스를 시뮬레이션해 보세요.

구조화된 컨텍스트를 위한 Knowledge Graph

Knowledge Graph는 컨텍스트 엔지니어링을 위한 구조화된 메모리와 추론 백본을 제공해요. 티켓, 로그, 문서에 중요한 사실을 묻어두는 대신, 도메인을 Node(고객, 제품, 정책, 서비스, 사건, 변경 사항 등)와 Relationship으로 모델링해서 Node가 서로 어떻게 의존하거나 영향을 미치는지 보여주는 거죠. 그래프는 에이전트가 활동하는 환경을 생생하게 표현해 준답니다.

<vector "이="" "이것은="" embedding이="" graphrag를="" graph는="" id,="" knowledge="" llm은="" p="" query와="" 거예요.="" 거죠.<="" 검색="" 경로를="" 계층으로="" 관련="" 구성="" 구절은="" 구조도="" 그래프를="" 그런="" 다음="" 답할="" 되는="" 따라야="" 또는="" 모델에="" 모두="" 무엇과="" 문서를="" 및="" 반면,="" 번호="" 보게="" 보입니다"라고="" 분리된="" 사건="" 사용하면="" 사용할="" 서로="" 서비스="" 수="" 수집하는="" 시작해서,="" 식별자(고객="" 아니라="" 알려주는="" 어떤="" 엔터티,="" 연결="" 연결되어="" 연결하는="" 유사해="" 이를="" 이름)에서="" 이벤트="" 있어요.="" 있으며="" 있죠.="" 전달하면,="" 조각뿐만="" 질문의="" 콘텐츠와="" 탐색하여="" 할까요?"라고="">

예를 들어 사고 관리 시나리오에서 에이전트는 실패한 서비스로 시작해서 관련된 업스트림 시스템에 대한 종속성 링크를 따라갈 수 있어요. 그런 다음 해당 시스템에 대한 최근 변경 사항을 가져오고 관련 런북이나 과거 사건을 가져올 수 있죠. 단일 오류 메시지를 추측하는 대신, 에이전트는 무엇이 변경되었는지, 어디에서 발생했는지, 책임자가 누구인지에 대한 간결하고 구조화된 보기에서 작업하게 돼요. 이는 인간 엔지니어가 수동으로 조립하는 것과 동일한 컨텍스트랍니다.

실제로 Knowledge Graph는 고급 에이전트에게 구조화된 컨텍스트의 몇 가지 주요 형태를 제공해요.

  • 구조화된 메모리. 상호 연결된 엔터티와 Relationship은 에이전트의 장기 기억 역할을 해요. 이는 에이전트가 필요할 때 정확하게 탐색할 수 있는 사실, 경험 및 메타데이터의 풍부한 네트워크를 캡처하여 단순한 문서 또는 벡터 저장소를 뛰어넘는 것이죠.
  • 멀티홉 GraphRAG. 그래프 순회를 통해 에이전트는 중간 Node를 통해 이동할 수 있어요. 예를 들어 고객에서 고객의 계정, 사용하는 제품, 적용되는 정책으로 이동할 수 있죠. 이는 키워드나 유사성 검색만으로는 보이지 않는 관련 정보 체인에 대한 추론을 지원한답니다.
  • 메타데이터 그래프. 소유자, 태그, 스키마 및 데이터 위치는 모두 일류 Node로 모델링될 수 있어요. 이러한 구조는 언어 모델이 자연어를 정확한 Query로 변환하고 비즈니스가 실제로 데이터를 구성하는 방식에 기반하여 검색을 유지하는 데 도움이 되죠.
  • 설명 가능한 결정 경로. 그래프 Relationship을 통해 답변을 조합하는 데 어떤 엔터티와 연결이 사용되었는지 명확하게 알 수 있으므로, 에이전트가 질문에서 증거로 어떻게 이동했는지 확인할 수 있어요.
  • 보안 및 액세스 제어. 그래프 수준 권한과 Query 시간 필터를 사용하면 에이전트가 그래프에서 탐색하거나 읽을 수 있는 부분을 제어할 수 있답니다.

이 구조화된 그래프 컨텍스트를 구조화되지 않은 검색 및 도구 호출과 결합함으로써, 컨텍스트 엔지니어링은 각 작업에 대해 "관련 텍스트 찾기"에서 "실제 세계의 올바른 조각 조립"으로 이동해요. 이를 통해 상담원은 점들을 안정적으로 연결하고, 보다 복잡한 워크플로를 처리하고, 취하는 단계를 정당화할 수 있죠.

A quote by Lisa Maria Martin from Everyday Information Architecture about organizing information to improve understanding

맥락이 전부다

컨텍스트 엔지니어링은 영리한 프롬프트에서 적절한 순간에 사실, 메모리 및 도구를 제공하는 체계적인 시스템으로 이동했어요. GraphRAG는 AI 에이전트가 환각을 줄이고, 다단계 추론을 수행하고, 설명 가능성을 제공하도록 돕는답니다.

Neo4j를 사용하면 GraphRAG 워크플로에 대한 Knowledge Graph 형식으로 컨텍스트를 모델링, 관리 및 검색하기 위한 플랫폼을 제공하여 개발자가 지능형 에이전트를 보다 쉽게 ​​구축할 수 있어요. Neo4j에서 첫 번째 에이전트 작업 공간을 생성하여 시작하세요 AuraDB, 몇 가지 문서를 Knowledge Graph로 수집합니다. LLM 지식 그래프 빌더, 검색 연결 Neo4j GraphRAG Python. 이러한 도구는 원시 콘텐츠부터 컨텍스트 엔지니어링을 통해 설명 가능한 답변까지 엔드투엔드 경로를 제공해요. 조직이 미션 크리티컬 에이전트로 전환함에 따라 상황에 따라 안정성이 결정되죠. 이제 진정한 차별화는 선택한 LLM이 아니라 컨텍스트와 오케스트레이션 레이어에 있다는 점, 정말 흥미롭죠?

GraphRAG가 프로덕션 시스템에서 Context Engineering을 구현하는 방법에 대해 더 자세히 알고 싶으시다면 이 책을 확인해 보세요. 필수 GraphRAG는 GraphRAG 시스템을 설계, 구축, 평가하는 과정을 친절하게 안내해 줄 거예요.

Context Engineering FAQ

AI에서 Context Engineering이란 무엇인가요?

AI에서의 Context Engineering은 작업의 각 단계에서 LLM이 필요로 하는 정확한 정보를 선택하고, 구조화하고, 전달하는 것을 의미해요. 도메인을 모델링하고, 요청 시 연결된 컨텍스트를 검색하고, 현재 결정을 뒷받침하는 정보만 제공하기 때문에 효과적이죠.

Context Engineering은 Prompt Engineering과 어떻게 다른가요?

Prompt Engineering은 지침을 조정하는 데 집중하는 반면, Context Engineering은 명령이 작동하는 증거를 제어하는 데 초점을 맞추죠. 여전히 좋은 프롬프트를 작성해야 하지만, 모델이 올바른 정보를 추론하도록 검색, 메모리, 정책에 의존하게 돼요.

Large Language Model에서 컨텍스트가 왜 그렇게 중요한가요?

LLM은 입력된 텍스트를 기반으로 텍스트를 예측하기 때문에, 답변은 제공하는 컨텍스트의 품질에 따라 크게 달라져요. 깔끔하고 연결된 컨텍스트는 추측을 줄이고, 이해하기 쉬운 설명을 생성하는 데 도움을 준답니다.

간단한 프롬프트로 충분할 때는 언제이고, 엔지니어링된 컨텍스트 파이프라인이 필요한 때는 언제인가요?

간단한 프롬프트는 모델이 이미 정보를 알고 있는 좁고 정적인 작업에 적합해요. 하지만 질문이 여러 소스에 걸쳐 있거나, 시간이 지남에 따라 변경되거나, 액세스 제어가 필요하거나, 증거를 인용해야 하는 경우에는 엔지니어링된 파이프라인이 필요하죠.

Context Engineering은 어떻게 정확성, 확장성, 거버넌스 및 비용 효율성을 향상시킬 수 있나요?

올바른 정보를 검색하여 정확성을 높이고, 그래프 백본을 재사용하여 확장성을 확보하고, RBAC 및 추적 가능한 경로로 거버넌스를 개선하고, 중요한 내용만 컨텍스트 창으로 전송하여 비용을 절감할 수 있어요. 또한, 팀은 검색 및 상태를 한 번 디버깅하고 에이전트 전체에서 동일한 패턴을 재사용하기 때문에 출시 속도가 훨씬 빨라진답니다.


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

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

반응형

+ Recent posts