워크플로 시리즈 (01): 기초 — 세 가지 실행 모델과 Anthropic의 다섯 가지 패턴
요약
에이전트 워크플로의 세 가지 실행 모델(DAG, 상태 머신, 이벤트 기반)과 Anthropic이 제시하는 핵심 패턴을 설명합니다. 전통적인 결정론적 워크플로와 달리 AI 에이전트 워크플로의 구조적 차이점을 다룹니다.
핵심 포인트
- 에이전트 워크플로는 결정론적이지 않은 실행 모델을 가짐
- DAG, 상태 머신, 이벤트 기반의 세 가지 실행 모델 구분
- 대부분의 AI 에이전트는 상태 머신 모델을 활용함
- Anthropic의 5가지 패턴을 통한 시스템 아키텍처 소통
워크플로는 플로우차트(Flowcharts)가 아니다
전통적인 워크플로(Workflows)는 결정론적(deterministic)입니다. 각 노드(node)는 코드이며, 분기 조건(branch conditions)은 불리언 표현식(boolean expressions)이고, 실패는 미리 정의된 예외 유형(exception types)입니다. 동일한 입력에 대해 매번 동일한 출력이 나옵니다.
에이전트 워크플로(Agent Workflows)는 이 세 가지 가정을 깨뜨립니다:
전통적인 워크플로 (Airflow / n8n):
노드 (Node) = Python 함수 / API 호출 (결정론적)
분기 조건 (Branch condition) = x > 0 (불리언 표현식)
...
에이전트 워크플로는 업그레이드된 플로우차트가 아니라, 근본적으로 다른 세 가지 실행 모델 중 하나입니다.
세 가지 실행 모델
DAG (Directed Acyclic Graph, 유향 비순환 그래프)
제어 흐름(Control flow)이 실행이 시작되기 전에 완전히 결정됩니다. 노드는 앞으로만 이동하며 루프(loops)는 없습니다.
예시: Airflow, n8n, GitHub Actions
사용 사례: 데이터 파이프라인 (data pipelines), ETL, 예약된 작업 (scheduled jobs)
...
상태 머신 (State Machine)
시스템은 유한한 상태(states) 집합을 가집니다. 이벤트(Events)가 상태 전이(state transitions)를 트리거합니다: 현재 상태 + 이벤트 → 다음 상태.
예시: LangGraph, JSON 상태 파일을 사용하는 커스텀 워크플로
사용 사례: 분기(branching), 재시도(retries), 그리고 인간의 승인 게이트(human approval gates)가 포함된 비즈니스 프로세스
...
상태 머신으로서의 버그 수정(Bug fix) 워크플로:
상태 (States): 분석 중 (analyzing) / 수정 중 (fixing) / 검토 중 (reviewing) / 인간 대기 중 (waiting_human) / 완료 (done) / 실패 (failed)
이벤트 (Events): 분석 완료 (analyze_done) / 수정 통과 (fix_passed) / 인간 승인 (human_approved) / 타임아웃 (timeout)
전이 (Transitions):
...
이벤트 기반 (Event-Driven)
예시: Temporal, AWS Step Functions, Apache Kafka Streams
사용 사례: 장시간 실행되는 워크플로 (> 1시간), 엔터프라이즈급 트랜잭션 (enterprise-grade transactions)
...
어떤 모델을 사용할 것인가
데이터 파이프라인, 결정론적 노드 → DAG
분기 / 재시도 / 승인 게이트 → 상태 머신 (State Machine)
런타임 > 1시간, 강력한 일관성 → 이벤트 기반 (Event-Driven)
대부분의 AI 에이전트 워크플로는 상태 머신 (state machine) 모델을 사용합니다. 이는 재시도 루프(retry loops), 직렬화 가능한 상태(serializable state), 그리고 중단 및 재개(interrupt-and-resume)를 지원하며, 이들은 모두 AI 워크플로에 필수적인 속성입니다.
Anthropic의 다섯 가지 핵심 패턴
모든 에이전트 워크플로 (Agent Workflow)는 이 다섯 가지 패턴을 사용하여 설명할 수 있습니다. 이러한 어휘를 사용하면 엔지니어나 이해관계자(stakeholder)와 시스템 아키텍처를 명확하게 소통할 수 있습니다.
패턴 1: 프롬프트 체이닝 (Prompt Chaining)
A → B → C
각 단계의 출력이 다음 단계의 입력이 됨
사용 시점: 작업이 순차적인 단계로 분해되며, 각 단계의 품질이 다음에 이어지는 단계에 직접적인 영향을 미치는 경우에 사용합니다.
예시: 버그 수정 워크플로 메인 체인
1단계 (정보 수집) → 2단계 (로그 분석) → 3단계 (근본 원인 파악)
→ 4단계 (코드 수정) → 5단계 (제출) → 7단계 (알림)
주요 제약 사항: 한 단계라도 실패하면 전체 체인이 중단됩니다. 모든 단계에는 정의된 on_failure 동작이 필요합니다.
패턴 2: 라우팅 (Routing)
입력 → 분류기 (Classifier) → [유형 A] → 에이전트 A
→ [유형 B] → 에이전트 B
→ [기본값] → 에이전트 C
사용 시점: 서로 다른 입력 유형에 대해 서로 다른 처리 경로가 필요한 경우에 사용합니다.
## 라우팅 설계 예시 (워크플로 마크다운 형식)
3단계 이후, 근본 원인 신뢰도(confidence)를 기반으로 라우팅합니다:
...
주요 설계 요구 사항: 라우터는 자유 형식의 텍스트가 아닌 **열거형 타입 (enumerated type)**을 출력해야 합니다. confidence < 60%는 계산 가능하지만, "분석이 충분히 깊지 않음"은 계산할 수 없습니다.
패턴 3: 병렬화 (Parallelization)
→ B1 →
A → 분할 (split) → B2 → 병합 (merge) → C
→ B3 →
사용 시점: 하위 작업들이 독립적이어서 동시에 실행될 수 있거나, 최선의 결과를 비교하고 선택하기 위해 여러 관점이 필요한 경우에 사용합니다.
# Fan-out: 3개의 수정 후보를 동시에 실행
from concurrent.futures import ThreadPoolExecutor, as_completed
...
중요한 주의 사항: 병렬화에 따른 속도 향상은 암달의 법칙 (Amdahl's Law)에 의해 제한됩니다. 세 개의 병렬 브랜치와 하나의 순차적 병합 단계가 결합되면 일반적으로 약 1.5배의 속도 향상을 가져오며, 3배가 되지는 않습니다. (측정된 데이터는 Skill Series Article 05를 참조하십시오.)
패턴 4: 오케스트레이터-하위 에이전트 (Orchestrator-Subagents)
오케스트레이터 (메인 에이전트)
├── 하위 에이전트 A 생성 (격리된 세션)
├── 하위 에이전트 B 생성 (격리된 세션)
...
사용 시점: 작업이 독립적인 하위 작업으로 분해되며, 각 작업이 메인 에이전트(Agent)의 전체 히스토리에 접근할 필요 없이 집중된 컨텍스트(Context)만을 필요로 할 때 사용합니다.
하위 에이전트(Subagents)를 위한 세 가지 설계 원칙:
원칙 1: 입력의 완전성 (Input completeness)
작업 프롬프트(Prompt)는 하위 에이전트가 필요로 하는 모든 것을 포함해야 합니다.
1. **에이전트 워크플로 (Agent Workflows)는 상태 머신 (state machines)입니다**: 비결정론적 노드 (non-deterministic nodes), 의미론적 분기 (semantic branching), 의미론적 폴백 (semantic fallback) — 기존 DAG (Directed Acyclic Graph, 유향 비순환 그래프)의 세 가지 가정이 모두 실패합니다.
2. **다섯 가지 패턴은 공유된 어휘입니다**: 프롬프트 체이닝 (Prompt Chaining), 라우팅 (Routing), 병렬화 (Parallelization), 오케스트레이터-하위 에이전트 (Orchestrator-Subagents), 평가자-최적화 도구 (Evaluator-Optimizer) — 어떤 워크플로든 이 다섯 가지로 설명할 수 있습니다.
3. **실제 워크플로는 패턴을 결합합니다**: 시스템의 어느 부분이 어떤 패턴에 매핑되는지 식별하는 것이 실제 시스템 설계 능력이 발휘되는 지점입니다.
## 참고 문헌 (References)
- [Anthropic — Building Effective Agents](https://www.anthropic.com/research/building-effective-agents)
- [OpenAI — A Practical Guide to Building Agents](https://cdn.openai.com/business-guides-and-resources/a-practical-guide-to-building-agents.pdf)
_실제 기업급 워크플로에서 검증된 AI 에이전트와 기술을 큐레이션하여 제공하는 마켓플레이스 [PrimeSkills](https://primeskills.store)를 확인해 보세요. 불필요한 내용은 빼고, 실제로 작동하는 것들만 모았습니다._
_제 [홈페이지](https://home.wonlab.top/en)에서 더 유용한 지식과 흥미로운 제품들을 찾아보세요._
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기