본문으로 건너뛰기
에이전트 빌더 코스

RAG + 지식 grounding — 임베딩 검색과 근거 인용

지식 자원을 RAG (검색 증강 생성) 도구로 끌어와 LLM 의 응답에 *근거 인용* 을 포함시키는 패턴.

9분

LLM 의 학습 데이터 만으로 답할 수 없는 질문이 있습니다. 사내 정책, 도메인별 규정, 최근 변경된 절차 — 이런 조직 고유 지식 은 LLM 학습 시점에 존재하지 않거나 들어가 있지 않습니다. RAG (Retrieval-Augmented Generation) 가 이 갭을 메웁니다.

RAG 의 한 줄 요약

RAG = 검색 + 증강 + 생성.

  1. 사용자 질문이 들어오면, 조직 지식 에서 질문과 의미적으로 가까운 단락 을 임베딩 검색으로 찾습니다.
  2. 찾은 단락을 LLM 의 추론 컨텍스트에 포함 시킵니다.
  3. LLM 은 그 컨텍스트를 근거 로 답을 생성합니다.

핵심은 근거가 LLM 의 머리에서가 아니라 검색된 단락에서 온다 는 점입니다. LLM 이 모르는 것을 모른다고 답하기도 더 쉬워집니다.

D.Hub 에서 RAG 의 두 표면

지식 (Knowledge) 자원

D.Hub 의 지식 자원이 RAG 의 검색 대상 입니다. 컬렉션 안에 만드는 자원 종류 중 하나로, 마크다운 또는 PDF 본문이 자동으로 임베딩 인덱싱 됩니다.

예시 — refund_approval 워크숍의 refund_policy 지식:

# 환불 정책 가이드

## §3.1 defective 카테고리
*defective* 사유로 분류된 환불은 ...
무조건 APPROVE 권고 — 단, 7 일 이내 신청한 경우에 한함.

## §3.2 change_of_mind 카테고리
*change_of_mind* 사유는 ...
tier 가 gold/platinum 이면 APPROVE, 그 외는 PARTIAL 권고.

지식 본문을 문단 단위 로 의미 있게 끊으면 RAG 검색의 정확도 가 자연히 올라갑니다.

search_* 도구

지식 자원을 검색하는 도구 가 RAG 의 호출 입구입니다.

def search_refund_policy(query: str, top_k: int = 3) -> list[dict]:
    results = knowledge.refund_policy.search(query, top_k=top_k)
    return [
        {
            "section": r.section_heading,
            "content": r.content,
            "score": r.similarity,
        }
        for r in results
    ]

도구 정의 (레슨 2) 의 입력 은 자연어 query 한 줄, 출력섹션 제목 + 본문 + 유사도 점수 의 리스트입니다.

응답에 근거 인용 포함

검색된 단락을 LLM 컨텍스트에 단순히 넣기 만 하면 LLM 이 그걸 자유롭게 해석 합니다. 응답이 어느 단락에서 나왔는지 를 추적할 수 없게 됩니다. 해결책은 프롬프트 한 줄:

"답할 때 반드시 검색된 단락의 섹션 번호 (§N.M) 을 인용해라. 검색 결과에 없는 정보는 근거 없음 으로 명시해라."

이 한 줄이 LLM 의 응답을 근거 인용 형태 로 강제합니다.

예시 응답:

환불 권고: APPROVE. 근거: 사유가 defective 이고 신청 시점이 구매 후 5 일째 (§3.1 의 7 일 이내 조건 충족). tier 는 standard 지만 §3.1 은 tier 와 무관하게 APPROVE.

검토자가 왜 그 권고인지어느 정책 단락에서 한 줄로 잡습니다. HITL 의 검토 시간이 짧아지고, 검토자가 권고와 다른 결정 을 내릴 때의 근거 비교 가 명확해집니다.

지식 자원의 운영 — 누가 어떻게 갱신하나

정책·규정 지식은 조직의 정책 변경 에 따라 갱신됩니다. 두 가지 운영 패턴:

  • 버전 표시 — 지식 자원의 헤더에 최종 갱신일 + 버전 번호 를 명시. 검토자가 오래된 정책에 근거한 권고 를 식별할 수 있습니다.
  • 승인 워크플로 — 지식 자원의 편집을 법무 / 정책 책임자 만 가능하게 권한 제한 (관리자 코스 레슨 4 의 FGAC 패턴 그대로).

자가 점검

  • 지식 자원 한 개를 만들고 마크다운 본문을 § 단위로 적었는가
  • search_* 도구를 정의해 유사도 점수와 함께 검색 결과를 반환하는가
  • 에이전트 응답에 §N.M 형식의 근거 인용 이 포함되는가
  • 검색 결과가 빈 경우 의 응답이 추측 없는 거부 인가

이 레슨에서 익혀야 할 것

  • RAG 의 검색 → 증강 → 생성 한 사이클
  • 지식 자원의 § 단위 본문 작성 패턴
  • 응답에 근거 인용 을 강제하는 프롬프트 한 줄
  • 빈 검색 결과의 추측 없는 거부 안전 패턴

다음 레슨

의도 분류 + 허용 목록 게이팅으로 기본 거부 안전 패턴을 적용합니다.