n8n의 LangChain
n8n의 LangChain (LangChain in n8n)
n8n의 AI 노드가 LangChain의 JavaScript 프레임워크를 어떻게 구현하는지 살펴보고, 자체 호스팅한 n8n 인스턴스를 LangSmith에 연결해 추적(tracing)하는 방법까지 다뤄볼게요.
n8n의 AI 노드는 LangChain의 JavaScript 프레임워크를 구현해요. 각 노드는 자유롭게 설정할 수 있어서, 원하는 에이전트(agent)·LLM·메모리·그 밖의 구성 요소를 직접 골라 붙일 수 있죠. 또 LangChain 노드에는 다른 n8n 노드를 일반 노드처럼 이어 붙일 수 있어서, LangChain 로직을 n8n이 지원하는 어떤 데이터 소스나 서비스와도 조합할 수 있어요.
이 페이지는 이미 LangChain을 알고 계신 분들이 "LangChain의 개념이 n8n에서는 어떻게 매핑되지?"를 확인하는 용도예요. AI 개념이 처음이시라면 AI 컴포넌트 이해하기부터 시작하는 걸 권해요.
출처: 공식문서
LangChain 개념이 n8n 노드로 매핑되는 방식
n8n은 대부분의 LangChain 개념을 클러스터 노드로 표현해요. 클러스터의 핵심 기능을 정의하는 루트 노드 하나에, 기능을 확장하는 서브 노드 하나 이상을 붙이는 구조죠.
| LangChain 개념 | 노드 분류 | 예시 노드 | 자세히 보기 |
|---|---|---|---|
| 체인(Chain) | 루트 노드 | Basic LLM Chain, Question and Answer Chain, Summarization Chain | AI에서 체인이란? |
| 에이전트(Agent) | 루트 노드 | AI Agent | AI에서 에이전트란? |
| 언어 모델 | 서브 노드 | Anthropic Chat Model, OpenAI Chat Model, Ollama Chat Model | 서브 노드 |
| 벡터 스토어 | 루트 노드 | Pinecone Vector Store, Qdrant Vector Store, Simple Vector Store | 벡터로 데이터 저장·검색하기 |
| 메모리 | 서브 노드 | Postgres Chat Memory, Redis Chat Memory, Simple Memory | 메모리가 작동하는 방식 |
| 도구(Tool) | 서브 노드 | Call n8n Workflow Tool, Custom Code Tool, Wikipedia | AI에서 도구란? |
| 리트리버 | 서브 노드 | Vector Store Retriever, Workflow Retriever | 관련 컨텍스트 검색 |
| 임베딩 | 서브 노드 | Embeddings OpenAI, Embeddings Cohere | 관련 컨텍스트 검색 |
| 문서 로더 | 서브 노드 | Default Data Loader, GitHub Document Loader | 서브 노드 |
| 출력 파서 | 서브 노드 | Structured Output Parser, Auto-fixing Output Parser | 서브 노드 |
| 텍스트 분할기 | 서브 노드 | Recursive Character Text Splitter, Token Splitter | 서브 노드 |
메모리 서브 노드는 AI Agent 루트 노드에만 붙을 수 있어요. LangChain과 달리 n8n의 체인 노드들은 메모리를 지원하지 않아서, 대화에서 이전 메시지를 참조할 수 없어요. 워크플로가 그런 걸 필요로 한다면 체인 대신 에이전트를 쓰세요.
위 예시가 전부는 아니에요. 각 분류별 최신 전체 노드 목록은 루트 노드와 서브 노드 라이브러리에서 확인할 수 있어요. n8n은 또 채팅 메시지로 워크플로를 시작하는 Chat Trigger 노드와, 아직 전용 n8n 노드가 없는 기능을 위해 LangChain JavaScript 코드를 직접 작성할 수 있는 LangChain Code 노드도 제공해요.
자체 호스팅 n8n에서 LangSmith 사용하기
LangSmith는 LangChain 팀이 만든 개발자 플랫폼이에요. 자체 호스팅한 n8n 인스턴스를 LangSmith에 연결하면, LangChain 애플리케이션을 추적하듯이 n8n 실행(execution)을 기록하고 모니터링할 수 있어요.
{% hint style="info" %} 기능 제공 범위
LangSmith 추적은 다음에서 사용할 수 있어요.
- 자체 호스팅: 모든 에디션
n8n Cloud에서는 사용할 수 없어요. {% endhint %}
n8n을 LangSmith에 연결하려면:
-
LangSmith에 로그인하고 API 키를 얻으세요.
-
n8n을 호스팅하는 환경에 다음 환경 변수를 설정하세요.
변수 값 LANGCHAIN_ENDPOINThttps://api.smith.langchain.comLANGCHAIN_TRACING_V2trueLANGCHAIN_API_KEY본인의 LangSmith API 키 LANGCHAIN_PROJECT선택 항목인 프로젝트 이름. 기본값은 defaultLANGCHAIN_CALLBACKS_BACKGROUND트레이스를 비동기로 업로드하려면 true -
n8n을 다시 시작하세요.
LANGCHAIN_PROJECT를 다른 이름으로 설정하지 않았다면, n8n이 첫 트레이스를 보낸 뒤 LangSmith가 default라는 이름의 프로젝트를 만듭니다. 이후 모든 트레이스는 그 프로젝트로 들어가요. LANGCHAIN_CALLBACKS_BACKGROUND가 기본적으로 트레이스를 비동기로 올리기 때문에, 트레이스가 약간 늦게 도착할 수 있어요. 디버깅 중이라면 동기 업로드를 위해 이 값을 false로 설정하세요.
LangSmith 자체 사용법은 LangSmith 문서를 참고하세요.
더 알아보기 (Learn more)
n8n을 쓰기 위해 LangChain을 알 필요는 없지만, 더 깊이 파고 싶다면 이 자료들이 도움이 돼요.
- LangChain 문서는 핵심 개념과 사용 사례를 다뤄요. LangChain | Python이나 LangChain | JavaScript에서 퀵스타트, 코드 예시, API 문서를 확인하세요. LangChain은 또 Python과 JavaScript용 코드 템플릿도 제공해요.
- What's LangChain?은 일반 독자를 위해 LangChain 용어를 쉽게 설명해요.
- Greg Kamradt의 YouTube 시리즈는 코드 예시와 함께 LangChain 문서를 훑어줘요.
- n8n Discord에 참여해 LangChain을 논의하고 프로젝트를 공유하세요.