
단순하게 시작하고 조급한 인프라를 피한다. 다음이면 컨텍스트 레이어는 아마 불필요하다:
전용 컨텍스트 레이어가 필요한 경우:
비구조화 HTML은 기계에 노이즈다. 컨텍스트 레이어는 절차, 엔티티, 제약, 비즈니스 규칙을 구조화 Know‑How로 변환한다: 명확한 스키마를 가진 JSON 문서와 그래프:
{
"entity": "PurchaseOrder",
"id": "PO-2026-1783",
"vendor": {"name": "Acme", "id": "V-882"},
"line_items": [
{"sku": "X12", "qty": 5, "unit_price": 49.00}
],
"approval_policy": {
"threshold": 10000,
"requires_dual_signoff": true,
"exceptions": ["emergency"]
},
"provenance": {"source": "ERP", "version": "v14.2", "ingested_at": "2026-02-06"}
}
이 스키마화된 컨텍스트는 에이전트에게 부서지기 쉬운 텍스트 스팬 대신 기계 가독 로직과 감사 용이성을 위한 출처를 제공한다.
함께 결정론적 검색을 가능하게 한다: 클러스터 또는 그래프 이웃으로 라우팅한 뒤, 최소·관련 컨텍스트를 stitch. Weaviate best practices for hybrid search 참조.

에이전트는 원시·노이즈 많은 덤프를 "생각"하려 할 때 실패한다. 런타임은 이렇게 보여야 한다:
# 하이브리드 검색 + 스티칭 의사코드
plan = planner.make_plan(user_query)
results = []
for hop in plan.hops:
dense = dense_index.search(hop.query, k=10)
sparse = sparse_index.search(hop.query, k=10, filter=plan.filters)
graph_ctx = graph.walk(hop.entities, depth=2)
gated = gate.by_provenance(dense + sparse + graph_ctx)
stitched = stitch.compact(gated, budget_tokens=1200)
results.append(stitched)
final = synthesize(results, tools=plan.tools)
return final

이 설계로 세 가지 검색 패턴을 비교할 수 있다. 작고 재현 가능하게 유지한다.
가정: 5만 문서(정책, 티켓, 제품 스펙); 75개 평가 쿼리, 40개에 ground truth; 동일 LLM; 하드웨어 동등; 해당 시 리랭커. p50/p90 중앙값 지연 시간과 EM/F1 또는 문서화 LLM 판사로 품질 보고.
| 패턴 | 검색 스택 | 예상 특성 |
|---|---|---|
| 순수 RAG | Dense만 | 빠름, 글로벌 일관성 낮음; 교차 문서 질문에서 어려움 |
| 튜닝 RAG | Dense + sparse + 리랭커 | 중간 지연, ID·정책 용어에서 정밀도 향상 |
| 컨텍스트 레이어 | Hybrid + graph + 스티칭 + 요약 | p50 지연 약간 높지만 p90은 타이트; 더 안정적인 글로벌 답변 |
해석: 튜닝 RAG는 많은 쉬운 놓침을 고친다; 컨텍스트 레이어는 교차 문서·다단계 태스크에서 빛나며, 라우팅과 캐시로 테일 지연이 더 예측 가능해진다.
구매 에이전트를 구축하며 공급업체 견적을 조립하는 동시에 승인 정책을 적용한다고 가정한다. ERP 내보내기, 계약 PDF, Slack 승인, 이메일 요약을 수집한다. 수집 파이프라인은 공통 스키마(PurchaseOrder, Vendor, Policy, Exception)에 매핑한다. 엔티티 링크로 풍부화해 각 PurchaseOrder가 Vendor와 해당 Policy 노드를 알도록 한다. 밀집 인덱스로 의미적 회상, 희소 인덱스로 ID와 법적 용어, 그래프 인덱스로 Policy→Exception→Approver 경로를 탐색한다.
이 설정에서 오케스트레이션 루프는 "PO‑2026‑1783을 오늘 승인할 수 있는가?" 쿼리를: PO ID 희소 조회, 해당 PO에서 Policy와 예외로의 그래프 순회, 최신 승인자 메모 밀집 검색으로 라우팅한다. 스티처가 1.2K 토큰 번들로 압축하고, 에이전트는 승인 결정과 출처 링크가 있는 간결한 인용 답변을 생성한다.
Puppyone 같은 플랫폼은 지식을 구조화 Know‑How(JSON/그래프)로 저장하고 텍스트와 구조에 대한 하이브리드 인덱싱을 지원해 도움이 된다. 이 조합으로 부서지기 쉬운 텍스트 스크래핑에 의존하지 않고 결정론적 검색 패턴과 감사 가능한 트레이스를 가능하게 한다.
컨텍스트를 코드처럼 취급한다. 모든 변경에 출처, 리뷰, 테스트를. 버전 관리된 스키마, 접근 정책, 평가 스위트 유지. 롤아웃 전 검색 충실도 검사와 태스크 수준 테스트 실행; 설명 가능 트레이스 캡처 및 롤백 준비. 에이전트가 규제·민감 데이터를 다루면 NIST AI Risk Management Framework의 GOVERN에 맞춘다. 상호운용: Model Context Protocol.
문제가 로컬이고 위험이 낮으면 튜닝 RAG로 시작한다. 교차 문서 질문, 거버넌스 요구, 변동 코퍼스가 보이면 한 워크플로에 초점을 둔 컨텍스트 레이어 파일럿을 계획한다. 먼저 구조화 Know‑How를 구축한다; 스키마가 안정되면 하이브리드 인덱싱과 오케스트레이션이 훨씬 간단해진다. 평가를 꽉 짜고 사람답게: 실제 태스크 테스트, 트레이스 로깅, 개선을 비즈니스 SLO에 연결한다.
A: 아니오. 먼저 dense + sparse; 교차 문서 추론이나 글로벌 요약 격차가 생기면 그래프를 추가한다.
A: 스키마에 묶인 의미 단위(엔티티, 절차)로 청크. 고정 토큰 수가 아니다. 리랭커와 요약에 나머지를 맡긴다.
A: 할 수 있지만 대가를 치른다. 평가와 롤백이 가능하도록 첫날부터 가벼운 출처와 접근 제어를 추가한다.