Agentic RAG

단방향 검색-생성 파이프라인(RAG)에 자기평가(self-evaluation) 루프를 추가해, 에이전트가 스스로 검색 품질과 답변 품질을 검증하고 개선하는 패턴.

핵심 개념

기본 RAG는 질문 → 검색 → 답변 단방향 흐름이다. Agentic RAG는 여기에 4가지 판단 지점을 추가한다:

단계기능설명
1. 검색 필요성 판단Should Retrieve?일상 질문은 DB 조회 없이 바로 답변 (비용 절감)
2. 쿼리 재작성Transform Query모호한 질문을 벡터 검색에 최적화된 형태로 변환
3. 관련성 평가Decide to Generate검색 결과가 질문과 관련 있는지 binary score 평가
**4. [[wiki/concepts/Hallucination환각]] 검사**Check Hallucination

LangGraph 구현 패턴

# State 정의 — 에이전트 내부 흐름 추적
class AgentState(MessagesState):
    question: str
    context: str
    answer: str
    retry_num: int  # 무한 루프 방지
 
# 워크플로우
chatbot → retrieve → context_organizer → [decide_to_generate] 
  → generate → [check_hallucination] → END

핵심 구성요소:

  • chatbot: 도구 바인딩 LLM. 리트리버를 tool로 받아 검색 필요성 자율 판단
  • context_organizer: 날것의 검색 결과를 LLM으로 정제
  • decide_to_generate: with_structured_output + binary score로 관련성 판정
  • check_hallucination: 생성 답변의 사실 근거 검증
  • transform_query: 검색 최적화 쿼리 재작성
  • retry_num: 3회 초과 시 “관련 문서 없음” 안내로 fallback

기본 RAG와 비교

항목기본 RAGAgentic RAG
흐름단방향피드백 루프
검색 제어항상 검색필요 시만 검색
품질 보증없음관련성·환각 이중 검사
무한루프 방지N/Aretry_num
복잡도낮음높음

관련 도구

  • LangGraph: 상태 기반 에이전트 워크플로우 구성
  • LangChain: 리트리버 도구 래핑(create_retriever_tool)
  • ChromaDB: 로컬 벡터 데이터베이스
  • RAG: 기반 패턴
  • Agentic-AI: 상위 개념

참고