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와 비교
| 항목 | 기본 RAG | Agentic RAG |
|---|---|---|
| 흐름 | 단방향 | 피드백 루프 |
| 검색 제어 | 항상 검색 | 필요 시만 검색 |
| 품질 보증 | 없음 | 관련성·환각 이중 검사 |
| 무한루프 방지 | N/A | retry_num |
| 복잡도 | 낮음 | 높음 |
관련 도구
- LangGraph: 상태 기반 에이전트 워크플로우 구성
- LangChain: 리트리버 도구 래핑(
create_retriever_tool) - ChromaDB: 로컬 벡터 데이터베이스
- RAG: 기반 패턴
- Agentic-AI: 상위 개념
참고
- yt-Zhih4rOoAmg-Agentic-RAG-구현하기 — 실습 코드 및 워크플로우 상세