OpenAI Agents SDK 실전 가이드 — 멀티스텝 에이전트 구축 5단계
2026년 4월 출시된 OpenAI Agents SDK로 멀티스텝 에이전트 만드는 5단계 실전 가이드. 단일 에이전트 → handoff → manager 패턴 → guardrails → tracing까지 코드 예시 포함.
AI 기술을 누구나 쉽게 활용할 수 있도록 실전 가이드를 작성합니다. ChatGPT, Claude, AI 자동화, SEO 분야를 전문으로 다룹니다.
n8n으로 자동화 봇 만들고 싶은데 Zapier 월 30달러 결제하기 싫으셨죠?
저도 그랬어요. n8n Cloud도 월 24달러 시작이라 부담스러웠고요. 결국 Hetzner VPS 5달러짜리에 셀프호스팅하고 Claude API 붙여서 월 8~10달러로 12개 워크플로 운영하는 구조를 만들었어요.
오늘은 n8n 셀프호스팅 + Claude Sonnet 4.6 자동화 봇을 5단계로 만드는 실전 가이드를 정리할게요. 결론부터 말씀드리면 첫 셋업 90분, 첫 봇 30분이면 끝이에요. 5월 3일 기준 n8n 1.x + Claude API 최신 호환입니다.

가장 가성비 좋은 조합은 Hetzner CPX11(월 5.41달러, 2 vCPU, 2GB RAM, Ubuntu 22.04)이에요. AWS·GCP보다 저렴하고 한국에서 핑 200ms로 충분.
Docker Compose 설치:
# 서버 접속 후
sudo apt update && sudo apt install -y docker.io docker-compose
# n8n 디렉토리 생성
mkdir -p ~/n8n && cd ~/n8n
# docker-compose.yml 작성 (다음 단계)
docker-compose.yml:
version: "3.8"
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=강한패스워드_변경필수
- N8N_HOST=n8n.yourdomain.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.yourdomain.com/
- GENERIC_TIMEZONE=Asia/Seoul
volumes:
- ~/n8n_data:/home/node/.n8n
실행:
docker compose up -d
docker compose logs -f n8n
브라우저에서 http://서버IP:5678 접속하면 n8n UI가 떠요. Basic auth 창에서 위에 설정한 admin/패스워드 입력. 첫 실행 시 회원가입 (이메일·이름·비번) 단계 1번만 진행.
HTTPS 강제 (Cloudflare Tunnel이 가장 간단):
# Cloudflare에서 도메인 구매 후
cloudflared tunnel create n8n
cloudflared tunnel route dns n8n n8n.yourdomain.com
cloudflared tunnel run n8n
이제 외부에서 https://n8n.yourdomain.com 접속 가능. 5분이면 끝나요.
API 키 발급:
n8n에 등록:
n8n 좌측 메뉴 → "Credentials" → "Add Credential" → 검색에서 "Anthropic" 선택 → API Key 붙여넣기 → Save.
중요: API 키를 워크플로 노드에 직접 박지 말고 반드시 Credentials 탭에 저장. 워크플로 export 시 키가 노출되는 사고 방지.
관련 글: Claude AI 가격 정책 — 무료/Pro/Max/API 2026 완벽 정리
기본 테스트 워크플로:
새 Workflow → "Manual Trigger" 노드 추가 → 우측 "Anthropic" 검색해서 "Anthropic Chat" 노드 추가 → Credentials에서 방금 등록한 키 선택 → Model: claude-sonnet-4.6 → Messages 입력에 테스트 메시지 → "Execute Workflow" 클릭.
응답이 떨어지면 연결 성공. 첫 호출 비용은 보통 0.001달러 미만이에요.
가장 많이 쓰는 활용 사례예요. Gmail 새 메일 도착 → Claude가 카테고리 분류 + 회신 초안 작성 → 라벨 자동 지정.
워크플로 구성:
[Gmail Trigger: New Email]
↓
[Anthropic Chat: 분류 + 초안 생성]
↓
[Gmail: Add Label]
↓
[Gmail: Create Draft]
Claude 노드 시스템 프롬프트:
당신은 이메일 비서입니다. 입력된 메일을 다음 4가지 중 하나로 분류하세요:
1. urgent: 24시간 내 답변 필요
2. business: 거래·미팅 관련
3. personal: 친구·가족
4. spam: 광고·홍보
JSON 형식으로 응답하세요:
[
"category": "urgent|business|personal|spam",
"priority": "high|medium|low",
"draft_reply": "회신 초안 (한국어)",
"summary": "한 줄 요약"
]
중요: response_format에 JSON 강제. 텍스트로 받으면 다음 노드에서 파싱 실패.
// Anthropic Chat 노드의 추가 옵션
[
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"messages": [
[
"role": "user",
"content": "{{ $json.subject }}\n\n{{ $json.body }}"
]
]
]
Gmail Add Label 노드: 위에서 받은 category 값에 따라 라벨 동적 할당.
// Label name 필드에 표현식
{{ $node["Anthropic Chat"].json.category }}
이 한 줄짜리 워크플로로 매일 받는 50통 메일이 자동 분류돼요. 시간 절약 시간당 30분. Claude 비용 일 평균 0.05달러.

자동화 돌리면 반드시 만나는 에러 4가지와 해결법.
에러 1. Rate Limit 429
Claude API는 분당 토큰 한도가 있어요(Tier 1: 50K input/min). 너무 빠르게 호출하면 429 떨어집니다.
해결: n8n 워크플로 설정 → Settings → "Execution timeout" 60초로 설정 + 워크플로에 Wait 노드 끼워넣기.
// Wait 노드 (각 호출 사이 1초)
[
"amount": 1,
"unit": "seconds"
]
에러 2. JSON 파싱 실패
Claude가 가끔 JSON 앞에 마크다운 코드 블록(```json)을 붙여서 옵니다. n8n의 JSON.parse가 실패해요.
해결: Code 노드 추가해서 코드 블록 제거.
// Code 노드
const raw = $input.first().json.completion;
const cleaned = raw
.replace(/^```json\s*/i, "")
.replace(/```\s*$/, "")
.trim();
return [json: JSON.parse(cleaned)];
에러 3. 인증 만료
Gmail OAuth 토큰이 7일 후 만료되는 사고가 있어요. n8n 1.x부터 자동 갱신되지만 가끔 실패.
해결: 매주 일요일 cron으로 OAuth 재인증 점검. n8n Settings → Credentials → 빨간 표시 있으면 재인증.
에러 4. 무한 루프
Gmail Trigger가 Draft도 New Email로 인식해서 루프 도는 사고. 반드시 Filter 노드 추가.
// Filter 노드 조건
{{ !$json.labels.includes("DRAFT") }}
비용 폭증 막는 4가지 패턴.
패턴 1. 모델 계층화
| 작업 유형 | 추천 모델 | 가격 | | 단순 분류·라벨링 | Haiku 4.5 | 1달러/1M 입력 | | 일반 텍스트 생성 | Sonnet 4.6 | 3달러/1M 입력 | | 복잡 추론·코드 | Opus 4.7 | 5달러/1M 입력 |
5/3 기준 가격이에요. 90% 자동화는 Haiku로 충분하고, Sonnet은 정말 품질 필요한 곳만.
패턴 2. max_tokens 강제
응답 길이 제한 안 하면 모델이 1500토큰까지 출력해요. 분류 작업엔 200토큰이면 충분.
"max_tokens": 200
패턴 3. 시스템 프롬프트 압축
긴 시스템 프롬프트 매번 재전송하면 입력 토큰 누적이 커요. 프롬프트 캐싱 기능 활용:
"system": [
[
"type": "text",
"text": "긴 시스템 프롬프트...",
"cache_control": ["type": "ephemeral"]
]
]
캐시 히트 시 입력 가격이 10%로 떨어집니다.
패턴 4. 일 한도 알림
Anthropic 콘솔 → Settings → Usage limits에서 일/월 한도 설정. 초과 시 자동 차단 + 이메일 알림. 폭주 사고 방지.
관련 글: n8n 셀프호스팅 0원 자동화 — 2026 최신 가이드
여기까지 5단계 정리했으니, 오늘부터 적용할 3가지 액션 정리할게요.

저도 이 3단계로 시작해서 12개 워크플로 운영 중인데 월 운영비 8.7달러로 안정화됐어요. n8n Cloud Starter(24달러) 대비 65% 절감, Zapier(30달러) 대비 70% 절감. 단, 셀프호스팅은 본인이 백업·업데이트 챙겨야 하니 그게 부담되시면 Cloud로 가시는 게 정신 건강에 좋습니다.
20개 이상 워크플로 돌리시면 셀프호스팅이 압도적으로 쌉니다. n8n Cloud Starter는 월 24달러(20K 실행 한도)인데, VPS 셀프호스팅은 월 5달러(Hetzner CPX11)에 무제한 실행이에요. 단, VPS 관리·업데이트 직접 하셔야 하니 IT 경험 어느 정도 있으셔야 적합해요. 그게 부담되시면 Cloud로 시작하시는 게 정신 건강에 좋아요.
Sonnet 4.6 기준 입력 100만 토큰당 3달러, 출력 100만 토큰당 15달러예요. 일반적인 자동화 워크플로(블로그 초안 생성·이메일 분류·요약)는 월 평균 50만 토큰 정도 쓰시면 1.5~3달러 선. Haiku 4.5(입력 1달러, 출력 5달러)로 시작하시고 품질 부족하면 Sonnet으로 올리는 게 정석. 첫 달에 풀가동해도 보통 10달러 이내.
네, 다른 제품이에요. Claude Code는 IDE에서 코딩 도와주는 CLI 도구고, Claude API는 일반 텍스트·도구 호출 API예요. n8n에서 자동화 봇 만들 땐 Claude API(콘솔에서 발급)를 씁니다. 단, 2026년 들어 n8n에서 Claude Code를 호출해 워크플로 자체를 빌드하는 메타 자동화도 가능해졌어요(MCP 서버 통해).
각 노드 우클릭 → Execute Node로 단일 노드만 테스트하시는 게 핵심이에요. 그리고 'Executions' 탭에서 과거 실행 기록 다 보입니다. Claude 응답 검사하시려면 Set 노드를 중간에 끼워넣어서 출력값을 시각화하세요. 자동화 안 돌면 90%는 JSON 파싱 실패 또는 인증 토큰 만료가 원인이에요.
최소 4가지는 필수예요. 1) Basic auth 활성화 (N8N_BASIC_AUTH_ACTIVE=true), 2) HTTPS 강제 (Caddy 또는 Cloudflare Tunnel), 3) Postgres DB 외부 접속 차단 (방화벽), 4) Claude API 키는 n8n 'Credentials' 탭에 저장(환경변수에 직접 박지 말고 암호화 저장). 추가로 자동 백업 cron 설정해서 .n8n 디렉토리 매일 백업하세요.
세 가지 옵션 — 1) Haiku 4.5로 모델 다운그레이드(2~3배 빠름), 2) max_tokens 명시해서 응답 길이 제한, 3) 스트리밍(stream=true) 켜서 첫 토큰 대기 시간 단축. n8n은 기본 동기 방식이라 스트리밍 효과 제한적이고, 가장 효과적인 건 Haiku 전환. 품질 차이 거의 없는 워크플로에선 Haiku로 충분해요.
API는 첫 가입 시 5달러 크레딧만 무료로 줘요(약 30일 사용 가능). 무료 무제한 티어는 없습니다. claude.ai 웹 인터페이스는 일정 메시지 무료지만 API 자동화엔 못 써요. 개인 학습용으로 무료 자동화 만드시려면 Gemini Flash 무료 티어(15 RPM, 1,500 RPD)가 더 나아요.