금일은 n8n을 활용해 웹 검색이 가능한 간단한 Chat AI 에이전트를 구축하는 과정을 기록한다.
n8n은 복잡한 워크플로우를 시각화하여 업무 자동화 및 AI 에이전트 파이프라인을 효율적으로 설계할 수 있는 노코드(No-code) 자동화 플랫폼이다. 특히 LangChain 기능이 통합되면서, 별도의 복잡한 코딩 없이도 LLM 기반의 애플리케이션을 빠르게 프로토타이핑할 수 있다는 점이 강력하다.
1. 환경 구성 (Self-hosting)
n8n은 Cloud(SaaS) 버전과 Self-hosted 버전을 모두 지원한다. SaaS는 편리하지만 비용이 발생하므로, 개인적인 학습 및 테스트 목적에는 Docker를 활용한 Self-hosting이 합리적이다.
Docker 컨테이너가 구동되면 http://localhost:5678/을 통해 대시보드에 접근할 수 있다.
2. 워크플로우 설계 (Architecture)
로그인 후 제공되는 기본 템플릿은 삭제하고, 백지상태(Blank Workflow)에서 설계를 시작했다. 단순한 챗봇을 넘어, 실시간 정보를 반영할 수 있는 '검색형 에이전트'를 목표로 하여 아래 3가지 핵심 모듈을 구성했다.
나는 일단 간단한 Chat AI 에이전트를 만들기 위해 아래 3가지를 사용했다.
- AI Model (두뇌)
- 사용 모델: Google AI API (Gemini)
- 역할 : 자연어 처리 및 추론, 최종 답변 생성
- Memory (기억)
- 방식 : Simple Memory
- 설정 : 최근 5개의 대화만 기억하도록 제한
- 이유 : 무한정 기억할 경우 토큰 비용이 과다하게 발생, 문맥 유지에 필요한 최소한의 범위로 설정
- Tools (확장성)
- 사용 툴 : SerpApi
- 제한 : 월 250회 무료
- 도입 배경 : LLM은 사전 학습된 데이터에 갇혀 있다는 본질적 한계가 있다. 이를 극복하고 실시간성 데이터(뉴스, 예매율 등)를 반영하기 위해 검색 도구(Tool)를 에이전트에 바인딩했다.
3. 테스트 및 결과
구축된 에이전트의 성능을 검증하기 위해 실시간 데이터가 필요한 질문을 던졌다.
Prompt: "요즘 인기 있는 영화는 무엇이 있는지 예매율 기준으로 top 3 알려줘"
[처리 과정]
- User Input: 사용자의 질문을 에이전트가 수신
- Reasoning: LLM이 자체 지식으로는 '현재 예매율'을 알 수 없음을 인지하고, SerpApi 도구 호출을 결정
- Action: 검색 엔진을 통해 최신 영화 예매율 데이터를 수집
- Output: 수집된 데이터를 바탕으로 LLM이 답변을 생성하여 사용자에게 반환
0 댓글