RAG Series (17): Agentic RAG — Giving the Agent Control Over Retrieval

개요

Agentic RAG는 기존 Pipeline RAG의 고정된 순차적 처리 방식을 넘어, Agent가 검색 전략을 스스로 선택하고 평가하며 필요시 수정하는 능동적인 검색 증강 생성(RAG) 방식입니다.

주요 내용

* Pipeline RAG의 문제점: Pipeline RAG는 질문 → 벡터 검색 → 상위 문서 → LLM 생성의 고정된 파이프라인을 따르며, 검색된 정보가 질문에 충분하지 않아도 LLM에게 전달되어 환각(hallucination)이나 답변 불가 등의 오류를 발생시키는 "고요한 실패(silent failure)" 모드가 존재합니다.
* Agentic RAG의 세 가지 변화:
1. 검색을 도구로 활용: 벡터 검색, 그래프 탐색, 웹 검색 등 다양한 검색 도구를 질문 유형에 따라 Agent가 선택합니다.
2. 평가를 통한 성찰: 검색 후, Agent는 검색된 맥락이 질문을 얼마나 잘 다루는지를 평가하며, 기준치 미만일 경우 검색 실패로 간주합니다.
3. 실패 시 수정 및 재시도: 낮은 품질의 검색 결과에 대해 다른 검색 전략으로 전환하여 재시도하며, 무한 루프를 방지하기 위해 최대 시도 횟수(구현에서는 2회)가 있습니다.
* LangGraph 아키텍처: 질문 분류(classify) → 검색 실행(retrieve) → 품질 평가(evaluate) → 답변 생성(generate) 또는 재경로(re_route) → 재검색(retrieve)의 피드백 루프를 통해 작동합니다.
* 핵심 노드 구현:
* AgenticRAGState: Agent의 상태를 관리하며, 실행 추적을 위한 path 필드를 포함합니다.
* classify_node: 질문 유형(사실, 관계, 시간 민감, 직접)을 분석하여 최적의 검색 전략을 선택합니다.
* evaluate_node: 검색된 맥락의 품질을 0.0에서 1.0 사이의 점수로 평가합니다.
* route_after_evaluate: 평가 점수와 시도 횟수를 기반으로 생성 단계로 갈지, 재경로할지를 결정합니다.
* re_route_node: 아직 시도하지 않은 다른 검색 전략으로 전환합니다.
* 실험 결과:
* 관계형 질문은 그래프 탐색으로, 일반 지식 질문은 검색 없이 직접 생성으로 올바르게 라우팅되었습니다.
* "2025년 최신 RAG 논문"과 같은 질문이 벡터 검색으로 잘못 분류된 사례가 있었으나, 이는 프롬프트 엔지니어링 개선으로 해결 가능합니다.
* 67%의 검색 질문에서 재경로가 트리거되어, 평가 노드가 실제 품질 관리를 수행함을 보여줍니다.
* RAGAS 메트릭에서 context_precision이 0.042 증가했으나, 이는 테스트 데이터베이스가 질문을 잘 다루고 있었기 때문이며, Agentic RAG의 진정한 가치는 지식 베이스가 부족할 때 나타납니다.
* Pipeline RAG vs Agentic RAG 비교: Agentic RAG는 동적인 피드백 루프, 질문 유형별 동적 검색 전략, 품질 점수 기반 실패 처리 및 재시도 기능을 제공하며, 이는 포괄적인 지식 베이스가 부족하거나 복합적인 질문 의도를 가진 경우 Pipeline RAG 대비 강점을 보입니다. 하지만 추가 LLM 호출로 인한 비용 증가가 발생합니다.

시사점

Agentic RAG는 검색 과정에 대한 능동적인 제어와 자체 수정 능력을 부여함으로써, 지식 베이스의 불완전성이나 질문의 다양성에 대한 견고성을 향상시키고, LLM이 더욱 신뢰할 수 있는 답변을 생성하도록 지원하는 중요한 발전 방향을 제시합니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions