RAG + 지식 grounding — 임베딩 검색과 근거 인용
지식 자원을 RAG (검색 증강 생성) 도구로 끌어와 LLM 의 응답에 *근거 인용* 을 포함시키는 패턴.
LLM 의 학습 데이터 만으로 답할 수 없는 질문이 있습니다. 사내 정책, 도메인별 규정, 최근 변경된 절차 — 이런 조직 고유 지식 은 LLM 학습 시점에 존재하지 않거나 들어가 있지 않습니다. RAG (Retrieval-Augmented Generation) 가 이 갭을 메웁니다.
RAG 의 한 줄 요약
RAG = 검색 + 증강 + 생성.
- 사용자 질문이 들어오면, 조직 지식 에서 질문과 의미적으로 가까운 단락 을 임베딩 검색으로 찾습니다.
- 찾은 단락을 LLM 의 추론 컨텍스트에 포함 시킵니다.
- 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 의 검색 → 증강 → 생성 한 사이클
- 지식 자원의 § 단위 본문 작성 패턴
- 응답에 근거 인용 을 강제하는 프롬프트 한 줄
- 빈 검색 결과의 추측 없는 거부 안전 패턴
다음 레슨
의도 분류 + 허용 목록 게이팅으로 기본 거부 안전 패턴을 적용합니다.