최근 RAG 시스템은 단순한 검색 → 생성 구조를 넘어서,
스스로 판단하고 도구를 선택하는 Agent 기반 구조로 발전하고 있습니다.
특히 LangChain, LangGraph, LlamaIndex 같은 프레임워크에서는
Agent가 전체 RAG 흐름을 제어하는 핵심 컴포넌트 역할을 합니다.


핵심 차이:
즉,
RAG는 정보를 가져오고, Agent는 어떻게 가져올지 결정한다
Agent는 문제를 해결하기 위해
예를 들어:
사용자 질문:
"우리 회사 매출 데이터를 분석해서 다음 분기 예측해줘"
Agent는 이렇게 판단합니다.
그리고 실제로:
이 과정을 자동으로 수행합니다.
| 구분 | 기존 RAG | Agent 기반 RAG |
| 구조 | 고정된 흐름 | 동적 결정 |
| 역할 | 검색 + 생성 | 계획 + 실행 |
| 판단 | 없음 | 있음 |
| 반복 실행 | 불가능 | 가능 |
| 도구 사용 | 제한적 | 자유롭게 선택 |
핵심 요약:
Agent는 "생각하고 행동하는 RAG"라고 보면 됩니다
"2023년 매출 감소 원인 분석하고 경쟁사와 비교해줘"
이건 한 번의 검색으로 해결 불가능합니다.
필요한 단계:
Agent는 이 과정을 단계적으로 계획할 수 있습니다.
연구에서도 복잡한 multi-step 질의에서는 여러 Agent가 협력하는 구조가 더 높은 정확도를 보였습니다.
Agent는 다음과 같은 도구를 자동으로 선택할 수 있습니다.
LLM이 단순히 답변하는 것이 아니라
실제로 작업을 수행하는 시스템이 됩니다.
Agent는 필요하면 작업을 다시 수행할 수 있습니다.
이 구조는 정확도 개선에 매우 중요합니다.
실제로 Agent 기반 RAG는 계획, 도구 사용, 검증 반복을 통해 시스템 신뢰성을 높일 수 있습니다.
Agent는 보통 다음 4가지 요소로 구성됩니다.
역할:
예:
한 줄 요약:
Agent의 두뇌
Agent는 상황에 따라 도구를 선택합니다.
"현재 환율 알려줘"
Agent 행동:
→ Web Search 호출
역할:
종류:
한 줄 요약:
Agent의 기억
역할:
"논문 요약하고 주요 키워드 추출해줘"
Plan:
한 줄 요약:
Agent의 전략
여기서는 가장 대표적인 방법인
LangChain 기반 구현 흐름을 기준으로 설명합니다.
def retrieve(query):
return vector_db.search(query)
즉,
검색 기능을 Tool로 등록합니다.
from langchain.agents import create_agent
agent = create_agent(
model="gpt-4",
tools=[retrieve]
)
이렇게 생성된 Agent는 필요할 때 자동으로 검색 도구를 호출합니다.
LangChain 공식 문서에서도 Agent는 검색 도구를 실행해 RAG 흐름을 제어하는 오케스트레이터 역할을 한다고 설명합니다.
response = agent.run(
"LangChain의 Agent 구조를 설명해줘"
)
이때 내부에서는:
이 과정이 자동으로 수행됩니다.
구조:
User
→ Agent
→ Tools
특징:
구조:
User
→ Supervisor Agent
→ 여러 Agent
예:
특징:
구조:
User
→ Agent
→ 반복 검색 + 검증
특징:
Agent는 문제 해결을 위해 스스로 계획하고, 도구를 선택하고, 작업을 실행하는 시스템이다
RAG는 정보를 찾고, Agent는 문제를 해결한다
| 딥러닝 모델을 ONNX, TensorRT 등의 포맷으로 변환해야 하는 이유 (0) | 2026.06.29 |
|---|---|
| Docker 이미지와 컨테이너, Docker Compose, Kubernetes 개념 정리 (0) | 2026.06.12 |
| RAG 시스템 성능 독립 평가 vs 종단간 평가 (0) | 2026.05.02 |
| LangChain으로 RAG 시스템 구축 시 필요한 주요 구성 요소와 역할 (0) | 2026.05.02 |
| PEFT가 필요한 이유 (0) | 2026.04.25 |