[AI Agent] RAG에서 AI 에이전트로: LangGraph와 n8n 활용법
단순히 문서를 찾아 답변을 생성하는 시대는 지났다. 이제는 AI가 스스로 생각하고, 부족한 정보를 다시 찾으며, 도구를 사용하는 ‘에이전틱 RAG(Agentic RAG)’의 시대다. 오늘 공부한 핵심 내용을 정리해 본다.
1. 왜 ‘RAG 에이전트’인가? (Naive vs Agentic)
기존의 RAG는 질문이 들어오면 [검색 → 생성]이라는 일직선(Linear) 구조로 작동했다. 하지만 질문이 복잡하거나 검색 결과가 나쁘면 답변의 질이 급격히 떨어지는 한계가 있었다.
에이전틱 RAG는 여기에 ‘판단’과 ‘루프(Loop)’를 추가한다.
- 자기 비판: “내가 찾은 정보가 이 질문에 정말 답이 되는가?”
- 재시도: “정보가 부족하면 검색 쿼리를 수정해서 다시 찾아보자.”
- 도구 활용: “내부 문서에 답이 없다면 구글 검색을 돌려보자.”
2. 구현 방법 1: LangGraph (코드 기반의 정교한 제어)
LangGraph는 LangChain에서 나온 프레임워크로, AI의 사고 과정을 그래프(Graph)로 설계한다.
핵심 개념
- Nodes (노드): 특정 작업 단위 (예: 검색하기, 답변 평가하기, 질문 수정하기)
- Edges (엣지): 노드 간의 연결 통로. ‘조건부 엣지’를 통해 다음 단계로 갈지, 이전으로 돌아갈지 결정한다.
- State (상태): 전체 과정에서 공유되는 데이터 바구니다.
워크플로우 예시 (Self-RAG)
- Retrieve: 벡터 DB에서 관련 문서를 가져온다.
- Grade: LLM이 문서의 관련성을 채점한다.
- 점수 낮음: 질문을 다시 쓰고(Rewrite) 1번으로 회귀.
- 점수 높음: 다음 단계 진행.
- Generate: 답변 생성 후 ‘환각(Hallucination)’ 여부를 스스로 검증한다.
한 줄 요약: 복잡한 논리 구조와 미세한 커스터마이징이 필요할 때 Python/JS 코드로 구현하는 방식.
3. 구현 방법 2: n8n (워크플로우 기반의 빠른 자동화)
n8n은 노코드/로코드 툴로, 시각적인 노드 연결을 통해 에이전트를 만든다.
핵심 구성 요소
- AI Agent Node: 두뇌 역할. 어떤 모델(GPT-4, Claude 등)을 쓸지 정한다.
- Tools (도구): 에이전트가 손발처럼 쓸 도구들이다.
- Vector Store Tool: 내부 문서 검색.
- Google Search Tool: 실시간 웹 정보 검색.
- Memory: 이전 대화를 기억하게 해주는 노드다.
장점
- 시각화: AI가 어떤 경로로 사고하는지 눈으로 직접 볼 수 있다.
- 확장성: API 연동이 매우 쉬워, 답변을 바로 디스코드나 슬랙으로 쏘는 기능을 순식간에 붙일 수 있다.
4. 한눈에 비교하는 도구 선택 기준
| 구분 | LangGraph | n8n |
|---|---|---|
| 난이도 | 높음 (코딩 숙련도 필요) | 낮음 (드래그 앤 드롭) |
| 제어력 | 세밀한 로직 제어 가능 | 제공되는 노드 기능 중심 |
| 배포 속도 | 환경 구축에 시간이 걸림 | 워크플로우 구성 후 즉시 사용 |
| 추천 상황 | 고도화된 AI 서비스 개발 시 | 빠른 프로토타이핑, 서비스 자동화 |
5. 결론 및 향후 계획
단순한 챗봇을 넘어 ‘스스로 교정하는 RAG’를 만들기 위해서는 흐름(Flow)을 제어하는 능력이 필수적이다.
- 정교한 설계가 필요하다면 LangGraph를 깊게 파볼 것.
- 빠르게 기능을 구현하고 다른 서비스와 연동하려면 n8n의 AI Agent 노드를 적극 활용할 것.
다음에 해볼 실습:
- n8n에서 “문서에 답이 없을 때만 구글링하기” 조건부 로직 짜보기
- LangGraph의
State를 활용해 대화 맥락 유지하기
[오늘의 한 줄 요약]
Naive RAG는 ‘일직선’, Agentic RAG는 ‘판단과 루프가 있는 그래프’다. LangGraph는 코드로 정교하게, n8n은 노코드로 빠르게 구현할 수 있다.
댓글남기기