n8n의 AI Agent 노드가 도구 호출(tool calling)·메모리·구조화 출력을 한 노드 안에서 처리하게 되면서, 예전엔 노드 15개짜리였던 워크플로우가 3개로 줄었습니다. 이 글은 그 노드를 실제 프로덕션에 붙이기 위한 구성 요소 — 멀티 에이전트 조합, 구조화 출력 스키마, 휴먼-인-더-루프 게이트, 감사 로그 — 를 손에 잡히는 순서로 정리합니다.
AI Agent 노드를 처음 마주하면 대개 두 가지 갈래에서 헤맵니다. 하나는 '어디에 놓을까'(단일 vs 멀티), 다른 하나는 '어디까지 자동으로 처리할까'(신뢰도·승인 게이트 설계). 아래 순서는 그 두 결정을 프로덕션에서 안전하게 내리는 데 필요한 최소 세트입니다.
실전 패턴: 리서처 → 라이터 → 리뷰어
커뮤니티에서 폭발적으로 늘어난 패턴이 이겁니다. 리서처 에이전트가 소스를 긁어 요약하고, 라이터 에이전트가 초안을 쓰고, 리뷰어 에이전트가 사실 확인과 톤을 검수합니다. 한 에이전트에게 다 시키던 시절보다 결과물 품질이 눈에 띄게 좋아지는데, 이유는 단순합니다. 각 단계마다 다른 프롬프트, 다른 도구, 다른 온도값을 쓸 수 있기 때문입니다.
구성 요소 — Agent 주변에 붙는 노드들
AI Agent— 기본. 툴, 메모리, output parser를 붙일 수 있는 만능 컨테이너Chat Trigger— Slack/Teams/자체 웹챗에서 대화 시작을 받는 트리거. 세션 메모리 자동 관리Structured Output Parser— Zod 스키마로 응답을 강제. 파싱 실패 시 자동 재시도 내장Vector Store (Postgres pgvector)— 자체 호스팅 RAG의 사실상 표준으로 자리잡음Sub-Workflow Tool— 다른 워크플로우를 도구로 호출. 에이전트에게 '진짜 액션'을 주는 방법
구조화 출력은 옵션이 아니다
LLM이 뱉는 자유 문장은 다음 노드가 다루기 어렵습니다. 분기 조건에도, DB 저장에도 못 씁니다. 정답은 하나입니다. Structured Output Parser에 스키마를 박아 두세요.
// AI Agent → Structured Output Parser 스키마 예시
{
"type": "object",
"properties": {
"category": { "enum": ["billing", "technical", "sales", "other"] },
"urgency": { "enum": ["low", "medium", "high"] },
"confidence": { "type": "number", "minimum": 0, "maximum": 1 },
"summary": { "type": "string", "maxLength": 200 },
"needs_human": { "type": "boolean" }
},
"required": ["category", "urgency", "confidence", "needs_human"]
}confidence와 needs_human 필드가 핵심입니다. 이 두 값을 If 노드로 받아 신뢰도가 0.7 미만이거나 needs_human: true이면 자동 처리 대신 검토 큐로 넘깁니다.
휴먼-인-더-루프는 여전히 중요하다
AI가 잘한다고 다 맡기면 사고 납니다. 환불, 삭제, 대량 발송처럼 되돌리기 어려운 액션은 반드시 사람 승인 뒤에 실행하세요. n8n의 Wait 노드와 Slack 인터랙티브 버튼 조합이면 5분 안에 만들 수 있습니다.
- AI Agent가 액션 제안 → JSON으로 출력
Slack노드로 팀 채널에 '승인/거절' 버튼 카드 발송Wait노드로 웹훅 응답 대기 (최대 24시간, 초과 시 타임아웃 분기)- 승인 시 실제 API 호출, 거절 시 사유와 함께 로그
- 전 과정을
agent_actions테이블에 감사 로그로 적재
실무 도입 사례에서 나온 숫자
국내 SaaS 고객지원팀에 위 패턴을 적용한 결과입니다. 1차 분류 + 자동 답변 + 사람 승인 큐 조합.
에이전트 워크플로우를 안정화하는 데 가장 오래 걸린 건 프롬프트 튜닝이 아니라 스키마 확정이었습니다. 스키마가 흔들리면 그 뒤 노드가 전부 흔들립니다. 반대로 스키마가 잠기면 프롬프트를 며칠 만져도 후속 흐름은 안 깨집니다.— SynAct.ai 컨설팅팀
함정 세 가지
- 메모리 크기 방치 — Chat Trigger의 기본 메모리는 무제한처럼 커집니다.
Window Buffer Memory로 최근 20턴만 유지하세요 - 툴을 너무 많이 준다 — 에이전트에게 도구 20개 붙이면 오히려 헤맵니다. 하나의 에이전트에는 3~5개까지
- 토큰 비용 미측정 — GPT-4 계열은 재시도 한 번에 수백원이 나갑니다. 실행마다
usage필드를 Postgres에 로깅하세요
AI Agent 노드에서 자격증명만 바꾸면 됩니다. 벤더 락인이 걱정되면 모델 파라미터를 워크플로우 변수로 빼두세요.정리
AI 에이전트 노드를 프로덕션에 붙이는 문제는 '쓸까 말까'가 아니라 '어디까지 자동화하고 어디부터 사람이 볼지'를 어떻게 그리느냐입니다. 구조화 출력, 신뢰도 임계값, 승인 게이트, 감사 로그 — 이 네 가지만 갖추면 지금 당장 프로덕션에 붙일 수 있습니다.