LLM으로 실제로 동작하는 시스템을 설계할 때 쓰이는 6가지 핵심 패턴.
언제 어느 패턴을 써야 하는지, 어떻게 조합하는지, 무엇이 실패 모드인지.
Workflows는 미리 정의된 경로로 LLM을 오케스트레이션합니다. 예측 가능하고 디버깅하기 쉽습니다.
Agents는 LLM이 스스로 도구와 경로를 결정합니다. 유연하지만 비용과 실패 위험이 높습니다.
대부분의 문제는 단일 LLM 호출 + RAG + 잘 쓴 프롬프트로 해결됩니다. 복잡도는 측정 가능한 성능 이득이 있을 때만 추가하세요. 이 가이드는 Anthropic의 "Building effective agents" 분류를 기반으로 합니다.
에이전틱 시스템의 가장 작은 단위. LLM + Tools + Memory + Retrieval의 조합입니다. 아래 모든 패턴은 이 기본 블록을 어떻게 여러 개 엮느냐의 문제로 환원됩니다.
작업을 순차 단계로 쪼개서 이전 LLM의 출력이 다음 LLM의 입력이 됩니다. 중간에 게이트(검증)를 넣어 조건에 맞지 않으면 중단하거나 재시도할 수 있습니다.
입력을 분류해서 적절한 전문 핸들러로 라우팅합니다. 각 핸들러가 자기 작업에만 특화되어 품질이 올라갑니다.
500 error"작업을 병렬로 쪼개 실행 후 집계합니다. Sectioning은 독립 하위 작업 분할, Voting은 같은 작업을 여러 번 실행해 다수결.
중앙 Orchestrator LLM이 런타임에 하위 작업을 동적으로 분해하고 워커들에게 위임합니다. 서브태스크를 미리 정해둘 수 없는 문제에 적합합니다.
Orchestrator-Workers는 Supervisor 토폴로지의 한 형태입니다. 실무에서는 제어 구조에 따라 세 가지로 나뉩니다: Supervisor(중앙 조정) · Swarm(피어 handoff) · Hierarchical(다층 구조).
한 LLM이 생성(Generator), 다른 LLM이 피드백(Evaluator). 기준을 충족할 때까지 반복해 품질을 끌어올립니다.
async function..."LLM이 스스로 도구 사용과 경로를 결정합니다. 환경에서 피드백을 받고 계획을 수정하며 종료 조건까지 자율 실행. 유연하지만 비용과 실패 위험이 큽니다.
에이전트가 중요한 결정 직전에 일시정지하고 사람의 검토/승인/수정을 기다린 뒤 재개합니다. 자율성과 안전성의 균형을 잡는 프로덕션 1순위 패턴. LangGraph는 이를 checkpoint + interrupt로 구현합니다.
위로 갈수록 단순 · 저렴 · 예측 가능, 아래로 갈수록 복잡 · 비싸지만 강력. 항상 위쪽부터 시도하고, 한계에 부딪힐 때만 아래로 내려가세요.
| 패턴 | 복잡도 | 비용 | 레이턴시 | 예측가능성 |
|---|---|---|---|---|
| Single LLM | ⭐ | 💰 | ⚡⚡⚡ | ✅✅✅ |
| Prompt Chaining | ⭐⭐ | 💰💰 | ⚡⚡ | ✅✅✅ |
| Routing | ⭐⭐ | 💰💰 | ⚡⚡ | ✅✅ |
| Parallelization | ⭐⭐ | 💰💰💰 | ⚡⚡⚡ | ✅✅ |
| Orchestrator-Workers | ⭐⭐⭐ | 💰💰💰 | ⚡ | ✅ |
| Evaluator-Optimizer | ⭐⭐⭐ | 💰💰💰 | ⚡ | ✅✅ |
| Autonomous Agent | ⭐⭐⭐⭐ | 💰💰💰💰 | ⚡ | ❌ |
| Human-in-the-Loop | ⭐⭐⭐ | 💰💰 | 🕒 (사람 대기) | ✅✅✅ |
Orchestrator-Workers를 확장할 때 3가지 구조 중 선택 — 규모와 자율성 수준이 기준.
| 토폴로지 | 제어 구조 | 자율성 | 디버깅 | 적합한 규모 |
|---|---|---|---|---|
| 🎯 Supervisor | 중앙 집중 | 낮음 | 쉬움 | 소·중 |
| 🐝 Swarm | 피어 handoff | 높음 | 어려움 | 중 |
| 🏛️ Hierarchical | 다층 계층 | 중간 | 중간 | 대 |
실무에서는 단일 패턴보다 조합이 많습니다:
🎯 Start simple. 단일 LLM 호출로 풀 수 있으면 거기서 멈추세요. 패턴을 쌓을수록 디버깅이 어려워집니다.
📏 Measure before adding complexity. 복잡도 추가가 성능 이득을 정량적으로 만드는지 확인 후 결정.
🧱 Augmented LLM이 기본 블록. 모든 패턴은 "LLM + Tools + Memory + Retrieval"을 어떻게 조합하느냐의 문제.
🚨 Autonomous Agent는 가드레일 필수. Max steps, 비용 한도, Human check-in, 샌드박스 — 네 가지를 반드시.
💡 투명성이 곧 신뢰. 에이전트가 무엇을 왜 하는지 로깅하고 보여주세요. 블랙박스는 프로덕션에서 살아남지 못합니다.
🔄 평가 주도 개발. 에이전트를 만들기 전에 평가셋부터. 이게 없으면 개선도 회귀도 탐지할 수 없습니다.
🧠 Context Engineering. 컨텍스트 윈도우에 무엇을 넣을지가 long-horizon 에이전트의 최대 병목. 어떤 메모리를 압축·요약·폐기할지 설계하세요. (Harrison Chase, 2026)
🙋 되돌릴 수 없는 작업엔 HITL. 결제·발송·삭제·권한 변경 — 자율 실행이 유혹이지만 Pause → Approve → Resume이 프로덕션 표준. 사람이 개입할 지점을 미리 설계하세요.
💾 State persistence = 에이전트의 undo. 체크포인트(checkpoint)로 모든 스텝 상태를 저장하면 실패 시 되감기, 디버깅 시 time-travel이 가능합니다.