

n8n은 노코드/로우코드 기반의 워크플로우 자동화 플랫폼이다. 다양한 앱과 AI 모델들을 연결해서 AI Agent를 만들 수 있다.

Github 공식 사이트를 들어가보면 위와 같은 n8n Web UI 사진을 볼 수 있는데, 이렇게 코딩 없이도 워크플로우를 설계하고, 여러 노드들을 연결해서 실행하는 것 만으로도 Agent를 간편히 구현해 볼 수 있다.
공식 깃허브에서는 node.js가 설치되어 있을 때, npx로 즉시 실행할 수 있다고 한다.
하지만 본 포스팅에서는 Docker 실행을 기준으로 작성한다. (도커 사전 설치 필요!)
# docker run으로 빠르게 실행
docker volume create n8n_data
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
위 공식 깃허브의 커맨드를 따르면 빠르게 실행할 수 있다. 도커 컨테이너를 띄우고 n8n 서버 http://localhost:5678/ 로 접속하면 된다.
하지만, 깔끔한 관리를 위해 전용 폴더에서 docker-compose.yml을 통해 실행해보자.
mkdir -p ~/n8n-agent
cd ~/n8n-agent
docker-compose.yml 파일을 생성하고 아래 내용을 삽입한다.
version: '3.8'
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "5678:5678" # 웹 접속 포트
environment:
- N8N_HOST=localhost
- N8N_PORT=5678
- N8N_PROTOCOL=http
- NODE_ENV=production
- WEBHOOK_URL=http://localhost:5678/
- GENERIC_TIMEZONE=Asia/Seoul
volumes:
- n8n_data:/home/node/.n8n #
volumes:
n8n_data:
해당 위치에서 아래 명령어로 실행
docker compose up -d
# - `d`: 백그라운드 실행
컨테이너 작동 여부는 docker ps 명령어를 통해 확인할 수 있다.

# docker 관련 명령어
docker compose pull # 도커 허브에서 최신 이미지 다운로드
docker compose down # 기존 컨테이너 중지
docker compose up -d # 새 이미지 재시작
http://localhost:5678/ 사이트에 들어가보면 이제 이런 ui 화면이 뜬다. 처음 입장이라면 workflow는 비어 있을 것이다.

우측 상단에 "create workflow" 버튼을 눌러 아래 화면으로 넘어가면, 코드 없이 나만의 agent 구축을 시작할 수 있다!

아무것도 없는 빈 base 화면에서 시작해서, pdf 파일을 RAG 하여 질의 응답 하는 간단한 챗봇을 만들어 보기로 했다. 노드들을 이것저것 추가하여 연결해 보았다.

위와 같이 나만의 워크플로우를 완성하고 execute workflow를 누르면, 워크플로우가 순서대로 실행되고 하단에 채팅창을 통해 agent와 대화해볼 수 있다.
각 노드는 더블 클릭 하면 상세한 옵션이나 파라미터 조정이 가능하다.


에이전트 구축에 앞서, credentials 탭에서 openai API KEY를 등록해줘야 한다. (타사 API Key를 쓸 경우, 해당 API KEY를 사전에 입력해둘 것)





OpenAI Chat Model : 실제 대화 능력을 가진 언어 모델(GPT api를 사용). api 버전을 선택하여 사용할 수 있다.
Vector Store Tool
역할: Agent가 벡터 저장소를 도구처럼 사용할 수 있게 해줍니다.
설명: Agent에게 부여하는 검색 도구입니다. Agent가 PDF 관련 질문일 경우 이 도구를 사용하도록 판단하게 한다.
In-Memory Vector Store (Retrieve)
역할: 실제 저장소에서 데이터를 검색(Retrieve)
설명: Vector Store Tool에서 요청이 들어오면, 벡터 스토어에 저장해둔 데이터 중에서 가장 비슷한 내용을 찾아서 돌려준다.




워크플로우를 실행하고 채팅을 치면 이제 실행 로그와 아웃풋을 볼 수 있는데, 처음에는 멀티턴이 안돼서 왜 그런가 했더니 memory를 넣지 않아서였다. AI Agent에 Simple memory를 삽입 해주니, 이전 대화 맥락을 이해할 수 있게 되었다.
이렇게 구현한 워크플로우는 save로 저장할 수 있지만, json 형식으로 export해서 다른 n8n 서버에 사용할 수도 있다. (Save 버튼 우측에 ... 에서 Download 를 누르면 json 형식으로 export된다.)

이렇게 간단하게 코딩 없이 AI Agent 구축할 수 있다는 게 재밌고 흥미로웠다. 찍먹만 해봤지만 시간이 된다면 n8n을 통해 좀 더 똑똑한 에이전트 구현을 해보고 싶다.