
"AI 에이전트가 필요해"라는 생각에서 "작동하는 AI 에이전트를 갖췄다"는 상태 사이에는 보통 수백 줄의 파이썬 접착제 코드가 있습니다. n8n AI 에이전트는 드래그 앤드 드롭 방식의 시각적 워크플로우 에디터로 이 간격을 좁혀줍니다. 여기서는 실제로 웹을 검색하고, 데이터베이스를 조회하고, 이메일을 보내고, 스프레드시트를 업데이트하는 LLM 기반의 에이전트를 연결할 수 있습니다. 프레임워크의 보일러플레이트 코드 대신 시스템 프롬프트만 작성하면 됩니다.
이 튜토리얼에서는 처음부터 두 가지 실제 에이전트 워크플로우를 구축합니다: 웹 리서치 에이전트와 메모리가 있는 고객 지원 봇입니다. 마치면 필요한 모든 노드 유형과 그것들이 어떻게 함께 작동하는지를 이해할 수 있습니다.
n8n이란 무엇이며 AI 에이전트에 왜 사용하는가?
n8n은 오픈소스 워크플로우 자동화 플랫폼입니다. Zapier와 비슷하지만 자체 호스팅이 가능하고 필요할 때만 코드를 작성하는 철학을 가지고 있습니다. 노드 기반의 시각적 에디터를 통해 500개 이상의 서비스를 연결할 수 있습니다.
n8n이 AI 에이전트에 특별히 흥미로운 이유는 네이티브 LangChain 통합입니다. LangChain 파이썬 코드를 작성하는 대신, 동일한 개념들(에이전트, 도구, 메모리, 모델)을 시각적 노드로 구성할 수 있습니다. AI 에이전트 노드가 추론 루프를 처리하므로, 에이전트가 어떤 것으로 생각해야 하고 무엇을 할 수 있는지만 연결하면 됩니다.
순수 코드 대신 n8n을 선택해야 하는 이유는 무엇일까요?
- 시각적 디버깅: 에이전트의 추론 체인이 어디서 끊기는지 정확히 볼 수 있습니다
- 500개 이상의 통합이 즉시 에이전트 도구가 됩니다(Slack, Gmail, Google Sheets, 데이터베이스)
- 무료로 자체 호스팅할 수 있습니다(커뮤니티 에디션) 또는 n8n Cloud 사용($20/월부터)
- MCP 지원으로 n8n 워크플로우가 외부 AI 에이전트의 도구가 될 수 있고, 반대도 마찬가지입니다
LangGraph, CrewAI, 또는 OpenAI Agents SDK 같은 다양한 에이전트 프레임워크를 평가하고 있다면, n8n은 다른 카테고리에 속합니다. Python 런타임을 관리하지 않고도 프로덕션급 에이전트를 원하는 사람들을 위한 것입니다.
n8n AI 에이전트 노드는 어떻게 작동하는가?
n8n의 모든 AI 에이전트 워크플로우는 계층적 구조를 가지고 있습니다. 에이전트 노드가 중앙에 있고, 아래의 서브 노드들이 기능을 제공하도록 연결됩니다.
구조는 다음과 같습니다:
Tools Agent는 90%의 시간 동안 사용할 에이전트입니다. 가장 유연한 에이전트 유형입니다. 프롬프트를 받아서 어떤 도구를 호출할지 추론하고, 이를 실행한 후 답을 얻을 때까지 반복합니다. 내부적으로는 ReAct(Reason + Act) 루프를 실행합니다: 생각하기, 행동하기, 관찰하기, 반복.
n8n은 또한 특화된 에이전트들을 제공합니다. 데이터베이스 쿼리용 SQL Agent, 작업을 하위 단계로 나누는 Plan and Execute Agent, 단순 채팅 흐름용 Conversational Agent가 있습니다. 하지만 Tools Agent가 대부분의 사용 사례를 커버합니다.
시작하기 전에 필요한 것
무엇을 구축하기 전에 다음 세 가지를 준비해야 합니다:
- n8n 인스턴스 -- n8n Cloud에 가입($20/월 Starter) 또는 Docker로 자체 호스팅:
- LLM API 키 -- OpenAI, Anthropic, 또는 Google Gemini. 무료 로컬 모델을 위해 Ollama를 사용할 수도 있지만, 도구 호출 성능은 달라질 수 있습니다.
- 도구 API 키(선택사항) -- 웹 검색용 SerpAPI($50/월) 또는 Brave Search API(무료 티어). 검색 없이도 에이전트를 구축할 수 있지만, 가장 흔한 첫 번째 도구입니다.
n8n이 실행되면 http://localhost:5678 (자체 호스팅) 또는 클라우드 대시보드를 엽니다. 새 워크플로우를 만들고 준비가 완료됩니다.
에이전트 1 구축: 웹 리서치 에이전트
이 에이전트는 주제를 받아 웹을 검색하고, 결과를 읽고, 구조화된 요약을 작성합니다. 이는 n8n AI 에이전트의 "Hello World"이며 콘텐츠 리서치에 진정으로 유용합니다.
1단계: Manual Trigger 추가
- 버튼을 클릭하고 "Manual Trigger"를 검색합니다. 캔버스에 드롭합니다. 이를 통해 "Test Workflow"를 클릭하여 워크플로우를 테스트할 수 있습니다. 나중에 이를 웹훅이나 채팅 트리거로 바꾸게 됩니다.
2단계: Edit Fields 노드 추가
트리거 후에 Edit Fields 노드를 추가합니다. "Latest developments in Model Context Protocol" 같은 문자열 값으로 topic이라는 필드를 설정합니다. 이는 사용자 입력을 시뮬레이션합니다.
3단계: AI 에이전트 노드 추가
"AI Agent"를 검색하여 추가합니다. 에이전트 유형으로 Tools Agent를 선택합니다.
System Message 필드에 동작을 정의하는 프롬프트를 작성합니다:
Prompt 아래에 표현식을 설정합니다: {{ $json.topic }} -- 이는 Edit Fields 노드에서 topic을 가져옵니다.
4단계: Chat Model 연결
Agent 노드 아래의 +를 클릭하여 서브 노드를 추가합니다. OpenAI Chat Model을 선택합니다(또는 사용 중인 LLM을 선택합니다).
다음과 같이 구성합니다:
- Model: gpt-4o (또는 비용을 줄이기 위해 gpt-4o-mini)
- Temperature: 0.3 (낮을수록 더 사실적이고 덜 창의적입니다)
자격증명 섹션에 API 키를 붙여넣습니다.
5단계: Search Tool 추가
다시 +를 클릭하여 도구 서브 노드를 추가합니다. SerpAPI를 선택합니다(또는 사용자 정의 검색 API를 원하면 HTTP Request Tool을 선택합니다).
SerpAPI의 경우:
- API 키를 자격증명으로 추가합니다
- 에이전트는 검색이 필요하다고 판단할 때마다 이 도구를 호출합니다
무료 대안으로, HTTP Request Tool을 Brave Search API에 맞춰 구성하세요:
$fromAI() 표현식이 마법입니다 -- "여기에 어떤 값을 넘길지는 당신이 결정해"라고 에이전트에게 말합니다.
6단계: 테스트
Test Workflow를 클릭합니다. 오른쪽의 실행 패널을 지켜봅니다. 다음을 볼 수 있습니다:
- 에이전트가 주제를 받습니다
- 검색하기로 결정합니다(도구 호출)
- SerpAPI가 결과를 반환합니다
- 에이전트가 결과에 대해 추론합니다
- 더 자세한 정보를 위해 다시 검색할 수 있습니다
- 최종 요약을 생성합니다
에이전트가 수렴하지 않고 반복하면, 시스템 프롬프트가 더 명확한 지시가 필요할 것입니다. 정확히 언제 검색을 중단할지 알려주세요.
에이전트 2 구축: 메모리가 있는 고객 지원 봇
리서치 에이전트는 상태가 없었습니다 -- 각 실행 후 모든 것을 잊었습니다. 고객 지원 봇은 대화를 기억해야 합니다. 이것이 에이전트 메모리가 나오는 지점입니다.
1단계: Chat Trigger 사용
이번에는 Manual Trigger 대신 Chat Trigger 노드로 시작합니다. 이는 테스트 대화를 위한 n8n의 내장 채팅 위젯을 제공합니다.
2단계: 에이전트 구성
Tools Agent 노드를 추가합니다. 시스템 프롬프트:
3단계: 메모리 추가
Agent의 +를 클릭하여 서브 노드를 추가하고 Window Buffer Memory를 선택합니다.
- Context Window Length: 10 (최근 10개의 메시지 쌍을 기억합니다)
- Session ID: {{ $json.sessionId }} (채팅 트리거에서)
이는 가장 단순한 메모리 옵션입니다 -- 최근 메시지를 슬라이딩 윈도우로 유지합니다. 세션 간 영속적인 메모리가 필요한 프로덕션 봇의 경우, 대신 Postgres Chat Memory 또는 Redis Chat Memory를 사용합니다. 최고의 AI 에이전트 메모리 도구에 대한 우리의 가이드에서는 이 옵션들 간의 장단점을 다룹니다.
4단계: 도구 추가
두 개의 도구 서브 노드를 추가합니다:
도구 1 -- Knowledge Base (Vector Store QA): 벡터 스토어(Pinecone, Qdrant, Supabase)에 제품 문서가 있으면, Vector Store Question Answer Tool을 사용합니다. 이는 본질적으로 한 개의 노드에서 RAG(Retrieval-Augmented Generation)입니다.
도구 2 -- Ticket Creation (HTTP Request): 티켓팅 API에 POST하도록 구성된 HTTP Request Tool을 추가합니다:
5단계: 대화 테스트
Test Workflow를 클릭하고 채팅 패널을 엽니다. 여러 턴의 대화를 시도해보세요:
- "Hi, I'm Alex. How do I export my tasks to CSV?"
- "What about PDF export?"
- "Actually, PDF export is broken for me -- can you file a bug?"
에이전트가 첫 두 질문에 대해 지식 베이스를 검색하고 세 번째 질문에 대해 티켓을 생성하는 방식을 살펴보세요. 메모리 노드는 Alex의 이름과 PDF 이슈의 맥락을 기억하도록 보장합니다.
MCP를 사용하여 에이전트 확장하기
n8n은 이제 양방향으로 Model Context Protocol(MCP)을 지원합니다 -- 그리고 이것이 강력해지는 지점입니다.
MCP 서버 소비: 에이전트에 MCP Client Tool 서브 노드를 추가합니다. 모든 MCP 서버 URL을 가리키면 에이전트가 자동으로 해당 서버가 노출하는 모든 도구를 발견하고 호출할 수 있습니다. 한 개의 노드, 수십 개의 도구입니다.
워크플로우를 MCP 도구로 노출: MCP Server Trigger 노드를 사용하여 모든 n8n 워크플로우를 MCP 호환 도구로 바꿉니다. Claude Desktop, Cursor, 또는 VS Code에서 실행 중인 외부 에이전트가 n8n 워크플로우를 발견하고 호출할 수 있습니다. "Slack 알림 보내기" 워크플로우를 한 번 구축하면, 스택의 모든 MCP 호환 에이전트가 이를 사용할 수 있습니다.
...