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에 연결하려면:

  1. LangSmith에 로그인하고 API 키를 얻으세요.

  2. n8n을 호스팅하는 환경에 다음 환경 변수를 설정하세요.

    변수
    LANGCHAIN_ENDPOINT https://api.smith.langchain.com
    LANGCHAIN_TRACING_V2 true
    LANGCHAIN_API_KEY 본인의 LangSmith API 키
    LANGCHAIN_PROJECT 선택 항목인 프로젝트 이름. 기본값은 default
    LANGCHAIN_CALLBACKS_BACKGROUND 트레이스를 비동기로 업로드하려면 true
  3. n8n을 다시 시작하세요.

LANGCHAIN_PROJECT를 다른 이름으로 설정하지 않았다면, n8n이 첫 트레이스를 보낸 뒤 LangSmith가 default라는 이름의 프로젝트를 만듭니다. 이후 모든 트레이스는 그 프로젝트로 들어가요. LANGCHAIN_CALLBACKS_BACKGROUND가 기본적으로 트레이스를 비동기로 올리기 때문에, 트레이스가 약간 늦게 도착할 수 있어요. 디버깅 중이라면 동기 업로드를 위해 이 값을 false로 설정하세요.

LangSmith 자체 사용법은 LangSmith 문서를 참고하세요.

더 알아보기 (Learn more)

n8n을 쓰기 위해 LangChain을 알 필요는 없지만, 더 깊이 파고 싶다면 이 자료들이 도움이 돼요.