블로그
BLOG — 가이드

AI Agent 노드로 실전 워크플로우 만들기 — 스키마 · 게이트 · 감사 로그

n8n의 AI Agent 노드가 도구 호출(tool calling)·메모리·구조화 출력을 한 노드 안에서 처리하게 되면서, 예전엔 노드 15개짜리였던 워크플로우가 3개로 줄었습니다. 이 글은 그 노드를 실제 프로덕션에 붙이기 위한 구성 요소 — 멀티 에이전트 조합, 구조화 출력 스키마, 휴먼-인-더-루프 게이트, 감사 로그 — 를 손에 잡히는 순서로 정리합니다.

AI Agent 노드를 처음 마주하면 대개 두 가지 갈래에서 헤맵니다. 하나는 '어디에 놓을까'(단일 vs 멀티), 다른 하나는 '어디까지 자동으로 처리할까'(신뢰도·승인 게이트 설계). 아래 순서는 그 두 결정을 프로덕션에서 안전하게 내리는 데 필요한 최소 세트입니다.

실전 패턴: 리서처 → 라이터 → 리뷰어

커뮤니티에서 폭발적으로 늘어난 패턴이 이겁니다. 리서처 에이전트가 소스를 긁어 요약하고, 라이터 에이전트가 초안을 쓰고, 리뷰어 에이전트가 사실 확인과 톤을 검수합니다. 한 에이전트에게 다 시키던 시절보다 결과물 품질이 눈에 띄게 좋아지는데, 이유는 단순합니다. 각 단계마다 다른 프롬프트, 다른 도구, 다른 온도값을 쓸 수 있기 때문입니다.

멀티 에이전트 콘텐츠 파이프라인LIVE
IN주제 입력R1Researcher AgentR2Writer AgentR3Reviewer Agent

구성 요소 — 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"]
}

confidenceneeds_human 필드가 핵심입니다. 이 두 값을 If 노드로 받아 신뢰도가 0.7 미만이거나 needs_human: true이면 자동 처리 대신 검토 큐로 넘깁니다.

휴먼-인-더-루프는 여전히 중요하다

AI가 잘한다고 다 맡기면 사고 납니다. 환불, 삭제, 대량 발송처럼 되돌리기 어려운 액션은 반드시 사람 승인 뒤에 실행하세요. n8n의 Wait 노드와 Slack 인터랙티브 버튼 조합이면 5분 안에 만들 수 있습니다.

  1. AI Agent가 액션 제안 → JSON으로 출력
  2. Slack 노드로 팀 채널에 '승인/거절' 버튼 카드 발송
  3. Wait 노드로 웹훅 응답 대기 (최대 24시간, 초과 시 타임아웃 분기)
  4. 승인 시 실제 API 호출, 거절 시 사유와 함께 로그
  5. 전 과정을 agent_actions 테이블에 감사 로그로 적재

실무 도입 사례에서 나온 숫자

국내 SaaS 고객지원팀에 위 패턴을 적용한 결과입니다. 1차 분류 + 자동 답변 + 사람 승인 큐 조합.

1차 응답 시간
4.2시간 → 47초
정확도 (사람 검수 기준)
91.3%
사람 개입률
37%
월 처리 티켓
3,800건 → 8,200건
에이전트 워크플로우를 안정화하는 데 가장 오래 걸린 건 프롬프트 튜닝이 아니라 스키마 확정이었습니다. 스키마가 흔들리면 그 뒤 노드가 전부 흔들립니다. 반대로 스키마가 잠기면 프롬프트를 며칠 만져도 후속 흐름은 안 깨집니다.SynAct.ai 컨설팅팀

함정 세 가지

  • 메모리 크기 방치 — Chat Trigger의 기본 메모리는 무제한처럼 커집니다. Window Buffer Memory로 최근 20턴만 유지하세요
  • 툴을 너무 많이 준다 — 에이전트에게 도구 20개 붙이면 오히려 헤맵니다. 하나의 에이전트에는 3~5개까지
  • 토큰 비용 미측정 — GPT-4 계열은 재시도 한 번에 수백원이 나갑니다. 실행마다 usage 필드를 Postgres에 로깅하세요
OpenAI뿐 아니라 Anthropic Claude, Google Gemini, 로컬 Ollama도 모두 같은 AI Agent 노드에서 자격증명만 바꾸면 됩니다. 벤더 락인이 걱정되면 모델 파라미터를 워크플로우 변수로 빼두세요.

정리

AI 에이전트 노드를 프로덕션에 붙이는 문제는 '쓸까 말까'가 아니라 '어디까지 자동화하고 어디부터 사람이 볼지'를 어떻게 그리느냐입니다. 구조화 출력, 신뢰도 임계값, 승인 게이트, 감사 로그 — 이 네 가지만 갖추면 지금 당장 프로덕션에 붙일 수 있습니다.

이 가이드는 n8n 2.29.9 self-hosted Docker 환경에서 위 노드 조합(AI Agent · Structured Output Parser · Wait · Slack)을 실제 배선해 검증했습니다. 마지막 검증: 2026-02-03.
AI 에이전트를 우리 팀 워크플로우에 어떻게 붙일지 막막하다면, 무료 상담에서 첫 번째 유스케이스를 함께 그려드립니다.

글로만 보긴
아쉽지 않나요?

읽은 걸 당신의 업무에 바로 적용해 드립니다. 무료 진단으로 시작하세요.

월 1회, 실전 자동화 한 편

n8n · AI 에이전트 · 워크플로우 케이스를 한 편씩 정리해 이메일로 보내드립니다. 홍보 메일은 없습니다.

언제든 해지 가능 · 스팸 없음