n8n AI Agent 노드 — Claude · OpenAI · LangChain 통합
워크플로 안에 자율적으로 도구를 호출하는 에이전트를 박는다. LangChain 코드 한 줄 없이 5분 만에.
2026년 들어 n8n AI Agent 노드가 안정 단계로 들어섰다. Claude 4 Sonnet·Opus 의 tool use 가 견고해지면서 "AI 가 직접 API 호출 → 결과 관찰 → 다음 액션 결정" 하는 자율 에이전트를 프로덕션에 박는 사례가 늘었다.
19편은 챗봇 입문이 아니다. 왜 LangChain 코드 대신 n8n 인가, Claude vs OpenAI 선택 기준, 4 컴포넌트 구조, 도구 노드 함정 3가지를 짚고 5 노드 실전 워크플로로 끝낸다. 1-14편을 마친 독자의 다음 단계.
1. AI Agent 노드는 결국 "LangChain 의 시각 레이어"
n8n 공식 문서에 명시 — AI Agent 노드는 LangChain JavaScript 프레임워크 위에 얹은 시각 오케스트레이션 레이어다. Python 으로 from langchain.agents import create_tool_calling_agent 쓰는 대신, 캔버스에서 "에이전트 + LLM + 도구 + 메모리" 를 드래그로 조립.
대다수 튜토리얼은 "n8n AI Agent = 챗봇 만드는 도구" 라고 단순화하지만 입구만 본 것. 진짜 가치는 LangChain 의 tool calling loop (LLM 이 도구 선택 → 호출 → 결과 관찰 → 다음 행동 결정) 가 통째로 들어있다는 점.
2. 4개 컴포넌트 구조 — 빠뜨리면 안 됨
실제 AI Agent 워크플로 1건이 동작하려면 정확히 4개의 컴포넌트가 필요하다. 입문자가 "AI Agent 노드 1개만 박으면 되는 거 아닌가" 오해하기 쉬운데, 그 노드는 오케스트레이터일 뿐이다.
| 역할 | 예시 노드 | 없으면? |
|---|---|---|
| ① 트리거 | Webhook · Schedule · Chat Trigger · HTTP Request | 에이전트가 언제 깨어날지 모름 (실행 자체 불가) |
| ② AI Agent 노드 | AI Agent (root) — Tools Agent / Conversational Agent / ReAct | 도구 호출·관찰·다음 액션 결정 루프 부재 |
| ③ 서브노드 (3종) | Chat Model (Claude/OpenAI/Gemini), Memory (Buffer/Postgres), Tool (HTTP·Code·MCP) | 언어모델·기억·외부 액션 중 무엇이든 빠지면 에이전트가 절뚝거림 |
| ④ 출력 | Slack · Email · DB write · Respond to Webhook | 결과가 n8n 안에 갇혀서 사용자가 못 봄 |
핵심은 ③번. Chat Model 서브노드를 갈아끼는 것만으로 OpenAI ↔ Claude ↔ Gemini 전환이 끝난다. 노드 connection 만 바꾸면 모델 A/B 테스트 한 번 클릭. Python 이라면 import·retry 로직 다 다시 짜야 할 일.
3. Claude vs OpenAI — 진짜 선택 기준
"Claude 가 더 똑똑한가 OpenAI 가 더 똑똑한가" 식 비교는 무의미하다. 두 모델은 다른 일을 잘한다. n8n 안에서 Chat Model 서브노드를 고를 때 실전 기준은 이렇다.
| 상황 | Claude 우위 | OpenAI 우위 |
|---|---|---|
| 긴 문서 처리 | ★ Sonnet 4 200K 컨텍스트로 PDF·코드베이스·계약서 1패스 처리 | 128K 한계 — 큰 PR 들어가면 잘림 |
| JSON schema 강제 | tool_use 안정적이지만 strict 모드 없음 | ★ strict: true 로 schema 100% 보장 (function calling) |
| 한국어 자연도 | ★ 한국어 표현·존댓말 뉘앙스 우위 (사용자 응대) | 기능적으론 충분 |
| 이미지 생성 같이 | 별도 도구 호출 필요 | ★ DALL·E 같은 워크플로 안에서 호출 |
| 비용 (1M 토큰 출력) | Sonnet 4 ≈ $15 · Haiku 4.5 ≈ $5 | GPT-4o ≈ $10 · 4o-mini ≈ $0.6 |
실전 라우팅 패턴 한 가지 — Switch 노드 + 두 AI Agent 노드 병렬 배치. 사용자 질문을 먼저 분류 노드 (Haiku 가 빠르고 싸다) 가 보고, "긴 문서 분석" 라우트는 Claude Sonnet 4, "구조화된 데이터 추출" 라우트는 GPT-4o 로 보낸다. 한 워크플로에서 두 모델의 장점만 뽑아 쓰는 패턴이다.
4. 도구(Tool) 노드 함정 3가지
AI Agent 가 자율 행동하려면 도구 서브노드가 필요. n8n 은 4종 제공: HTTP Request Tool, Code Tool, Calculator Tool, 그리고 다른 워크플로를 도구화하는 Sub-Workflow Tool. 마지막 게 가장 강력한데 운영자들이 흔히 빠뜨린다.
함정 1 — 도구 description 을 한 줄로 끝내기
LLM 은 description 만 보고 도구 호출 여부 판단. "Search the web" 같은 추상 설명이면 엉뚱한 타이밍에 호출하거나 아예 안 부른다. "2026 년 최신 통계·이벤트·뉴스 질문일 때만 사용. 일반 지식엔 금지" 처럼 부를 조건 + 안 부를 조건 둘 다 적어야 정확도가 확 오른다.
함정 2 — Memory 노드 없이 멀티턴
Memory 서브노드 빼면 매 호출이 첫 대화. "방금 그거 한국어로" 가 뭔지 모른다. 데모는 Window Buffer Memory, 운영은 Postgres Chat Memory 로 세션별 영속 저장. session ID 는 webhook 입력에서 명시 추출 — 다른 사용자 대화 섞이는 게 가장 흔한 운영 버그.
함정 3 — 무한 루프 방지 없이 배포
AI Agent 에 Max Iterations 옵션 있음 (기본 10). 잘못하면 같은 도구 30번 호출하며 토큰 다 태움. 운영 배포 전 5 이하로 낮추고 비정상 종료 알림을 Error Workflow 로 걸어야 (17편에서 자세히).
5. 첫 AI Agent — 5노드 Webhook + Claude 워크플로
이론 끝, 실전 1건으로 마무리. Webhook 입력 → Claude Sonnet 4 답변 + 필요시 HTTP 도구 호출 → Slack 출력.
- Webhook — POST
/ai-assistant, body{"question":"...","session_id":"..."} - AI Agent (Tools Agent) — User Message
={{$json.question}}, Session ID={{$json.session_id}} - Anthropic Chat Model — Model: 최신 sonnet, Max Tokens 2048, Temperature 0.7
- HTTP Request Tool — Description 에 "환율·날씨·주가 등 실시간 데이터 필요할 때만" 명시
- Window Buffer Memory — Window Length 5, Session Key
={{$json.session_id}} - Slack 출력 — Channel 알림용, Text
={{$json.output}}
묘미는 HTTP Request Tool 의 자율성. "오늘 서울 날씨" 물으면 LLM 이 OpenWeatherMap URL 을 알아서 생성·호출·답변. if-else 불필요.
다음은 Sub-Workflow Tool — 다른 워크플로를 도구화해 멀티 에이전트 쌓기. 16·17·20편까지 끝나면 production 박을 준비 완료.
다음 글
n8n 교재 17편 — Error Workflow + 재시도 전략. AI Agent 도구 호출 실패·timeout 시 자동 복구 패턴.