메인 콘텐츠로 건너뛰기
page thumbnail

2025년 n8n AI 에이전트 혁신: 지식 그래프(Graffiti MCP + Neo4j) 실전 구축부터 최적 활용까지

DODOSEE
DODOSEE
조회수 268
요약

클립으로 정리됨 (생성형 AI 활용)

출처 및 참고 : https://www.youtube.com/watch?v=NQ3vJ8iZPaQ


n8n에서 래그(RAG) 파이프라인에 지식 그래프가 처음으로 공식적으로 도입된 실제 사례와 경험을 공유합니다. 최근까지 Python과 Graffiti, Neo4j를 활용해 지식 그래프를 다뤘던 흐름에서, 드디어 n8n 환경에도 유기적으로 적용할 수 있게 되었으며, 이 과정의 상세 설정과 실제 동작 방식을 직접 구현한 경험을 기반으로 담담하게 정리합니다.

래그(RAG)와 지식 그래프의 근본적 차이 및 결합의 의의

기존 n8n RAG 템플릿은 벡터 데이터베이스(대표적으로 PostgreSQL의 PGVector, 혹은 Pinecone 등 전문 벡터DB) 기반으로 구성되어 있습니다. 이 방식은 문서 chunk를 벡터화해 저장한 뒤, 에이전트가 해당 정보 조각을 빠르게 검색할 수 있는 탁월함을 지닙니다. 다만, 벡터 데이터베이스는 엔티티 간의 정교한 관계성을 구조적으로 저장하지 못한다는 한계가 있습니다.

"벡터 DB로 문서 단편을 분산 저장하고 검색할 때, 서로 연결된 개념이나 관계 구조를 추적하기가 어렵다"는 점을 직접 체험했습니다. 이 때문에, 데이터가 복잡해질수록 에이전트가 관련 정보 흐름을 놓치기 쉬웠습니다.

이 문제를 보완하기 위해 지식 그래프를 래그 파이프라인에 병렬로 구축하게 되었으며, 동일한 데이터를 내용 기반 벡터와 관계까지 표현하는 그래프 구조에 동시에 저장하도록 설계했습니다. 예를 들면, '회사'라는 엔티티에 이어 '임원진' 등 연관 엔티티와의 관계를 그래프에서 직접 탐색할 수 있습니다. 관계성이 중시되는 질문("A와 B는 어떤 연관이 있는가?")에서는 지식 그래프가 효과적이고, 단일 개체 질의("회사 A에 대해 알려줘")일 때는 벡터 DB 검색을 권장합니다.

실제 동작 사례 및 응답 방식 비교

실제 데모 환경에서, 우선 벡터 DB를 활용해 특정 회사 정보 요약 질의를 실행해 보았습니다. 에이전트는 벡터 DB의 chunk들을 검색해 빠르게 개요를 반환합니다. 이어 "Dr. Tanaka와 Dr. Chen에 대해 알려줘(지식 그래프 활용)"라는 다중 엔티티 관계형 질의를 실행하자, Graffiti MCP 서버를 통해 지식 그래프가 직접 질의되어 두 엔티티의 관계망, 특징 등을 더 깊이 있게 추출했습니다.

지식 그래프 질의는 내부적으로 Graffiti MCP 서버를 통한 관계 추적, 노드 탐색이 이루어집니다. 시스템 프롬프트에 "언제 그래프를 검색할지 / 언제 벡터 DB를 쓸지" 기준을 명확히 지정할 수 있으며, 실제로 각 방식의 장단점에 따라 자동설정도 가능합니다.

n8n + Graffiti MCP + Neo4j 구축 경험 상세 공유

1. 필수 환경: 셀프호스티드 n8n만 가능

  • n8n의 LangChain 코드 노드, Graffiti MCP 서버 모두 자체 서버에 설치해야 하며, 클라우드형 n8n은 지원되지 않습니다.

  • 저는 Digital Ocean Droplet 환경에 n8n, Neo4j, Graffiti MCP(지식 그래프 서버)를 도커로 동시에 구동했습니다.

2. Graffiti MCP 서버 + Neo4j 설치

  • Graffiti는 LLM(OpenAI 등)을 통해 원문 텍스트에서 엔티티/관계 추출 후 Neo4j(그래프 DB)에 저장하는 핵심 라이브러리입니다.

  • .env 환경변수 파일에서 OpenAI API 키와 Neo4j 접근 정보를 설정해야 하며, 모델명도 변경 가능(주요 변수).

  • 도커 컴포즈(docker compose up -d)로 Graffiti MCP 서버와 Neo4j를 실행하고, 로그에서 'uvicorn 0.0.0.0:8000' 구동 여부 확인.

  • 컨테이너 내부에서 Neo4j 주소를 서비스명(neofj)로 변경해야 한단 세밀한 팁도 강조했습니다.

  • 도커 ps -a 명령어로 모든 컨테이너의 정상 작동 여부 확인(에러/리스타트 없음 필수).

3. n8n ↔ Graffiti MCP 네트워크 연결

  • Docker Compose 파일에 extra_hosts('host.docker.internal')를 추가하여, n8n 컨테이너 → Graffiti MCP 연결 가능.

  • n8n 컨테이너 내부의 gateway IP 확인(ip route), 해당 IP에 맞춰 방화벽(UFW)에서 MCP 포트만 선별허용(전체공개X)로 보안 유지.

4. n8n에 Community MCP Node 설치

  • 공식 MCP integration은 Graffiti MCP를 "agent tool"로 지원하지 않아 커뮤니티 MCP Node(n8n-nodes-mc 설치)가 필요합니다.

  • MCP Client 커뮤니티 노드에서 서버 이벤트(SSE) 프로토콜로 Graffiti MCP 접속, 포트 및 주소(host.docker.internal:8030) 기입.

  • 연결 테스트로 'List available tools'에서 Add memory, Search memory nodes 등 주요 기능 확인.

5. RAG 파이프라인에 지식 그래프 노드 실전 적용

  • 문서 삽입 단계: Graffiti MCP의 Add memory tool 호출, 문서 제목/본문을 episode로 넣어 LLM 기반 엔티티/관계 추출, 그래프 저장.

  • 에이전트 질의 단계: Search memory nodes tool 호출, 쿼리 내용만 넘기면 LLM이 임의로 질의 생성/응답.

활용 팁 및 한계

지식 그래프 구축 과정은 한 번 세팅하면 관리가 단순합니다. 그러나 Graffiti MCP + LLM을 통한 엔티티/관계 추출은 벡터 DB 방식보다 속도가 느리고 비용이 더 듭니다. 정말 복잡하게 얽힌 데이터나 관계성 탐색이 필수적인 경우에만 적극적으로 활용하는 것이 좋겠으며, 대용량 데이터 처리라면 벡터 DB만으로 충분할 수 있습니다.

마지막 데모에서 실제 Google Drive 파일을 업데이트, 전체 텍스트와 제목이 지식 그래프에 즉시 삽입되는 과정을 재현했습니다. 에이전트가 해당 노드, 엔티티, 관계를 즉시 활용할 수 있습니다.

2025년 기준 적용 및 향후 확장

2025년 IT, AI 에이전트 흐름에서는 관계형 데이터 탐색, 복합 엔티티 분석이 점점 중요해지고 있습니다. n8n과 Graffiti MCP, Neo4j 기반 지식 그래프 구축 경험은, 벡터 DB 환경 대비 유연하고 심도있는 질의가 가능함을 보여줍니다.

실제 구축 사례에서 드러난 세부 설정, 데이터 보안, 연결 방법, 툴 활용법을 종합하면, n8n 사용자 누구든 손쉽게 지식 그래프를 래그 파이프라인에 통합할 수 있으며, 양방향 질의/삽입/검증까지 완성도 높게 구현할 수 있습니다.

향후에는 더 다양한 LLM 모델 접속, 클라우드 환경 지원, 복잡한 노드 간 관계 탐색 툴 추가 등 계속 발전이 예상됩니다. 이번 콘텐츠를 계기로 실제 업무 혹은 프로젝트에서 지식 그래프 도입을 직접 시도해 볼 수 있습니다.


관계성 분석 중심의 RAG + 지식 그래프 시스템 구축법, 실제 n8n에서 동작하는 설정방식, 네트워크/보안 팁까지 상세히 다뤘습니다. 실전 업무환경에서 활용성, 한계 및 확장성까지 모든 관점의 경험을 직접 전달합니다.

출처 및 참고 :

이 노트는 요약·비평·학습 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.