Strands Workflow
의존성 기반 파이프라인, 병렬 실행, 상태 영속화
Strands Workflow
의존성 기반 파이프라인, 병렬 실행, 상태 영속화
에이전트가 에이전트를 부른다
4가지 멀티에이전트 패턴 — 위임에서 오케스트레이션까지
Workflow
의존성 파이프라인 · 상태 저장 · 추적
Workflow
실행 순서를 보장하고 상태를 디스크에 남기는 프로덕션 지향 패턴
Workflow
의존성 기반 태스크 파이프라인으로 실행 순서를 보장하고 상태를 디스크에 남깁니다
- workflow 도구 — strands-agents-tools 제공
- 의존성 정의 — 실행 순서 보장
- 태스크 상태를 디스크에 저장
- create · start · list · status · delete
상태가 디스크에 남으니 진행 추적과 장애 지점 파악이 가능합니다 — 프로덕션 신뢰성이 필요할 때의 선택입니다.
Workflow 구조도
고정 순서의 파이프라인 — 각 태스크 결과가 저장되어 실패 지점을 정확히 파악
-
1
수집
태스크 1 — 결과를 상태 저장소에 기록
-
2
분석
태스크 2 — 이전 태스크 결과를 입력으로 사용
-
3
작성
태스크 3 — 실패하면 이 지점이 상태에 기록
-
4
발행
태스크 4 — 완료 상태 기록으로 종료
태스크마다 결과가 상태 저장소에 남으니 어디까지 성공했고 어디서 실패했는지를 정확히 파악할 수 있습니다.
Workflow 파이프라인 구현
strands-agents-tools의 workflow 도구로 의존성 기반 태스크 파이프라인 실행
핵심 포인트
- workflow
- strands-agents-tools가 제공하는 태스크 파이프라인 도구
- tools=[workflow]
- 오케스트레이터에 장착 — 자연어 요청을 도구 호출로 수행
- create / start / list / status / delete
- workflow 도구가 지원하는 5가지 액션
- workflow_id
- status 액션으로 파이프라인별 진행 상태 확인
코드
from strands import Agent
from strands_tools import workflow
orchestrator = Agent(
system_prompt="""You manage data pipelines.
Use the workflow tool to create and run task pipelines.
Define tasks with dependencies for execution order.""",
tools=[workflow],
)
# 워크플로우 생성·실행 — 에이전트가 도구 호출로 수행
result = orchestrator("""
다음 데이터 파이프라인을 실행해줘:
1. ingest → 2. validate → 3. transform → 4. load
각 단계는 이전 단계에 의존합니다.
""")
# 태스크 상태는 디스크에 저장 — status로 workflow_id별 진행 확인
태스크 상태 저장과 추적
태스크 상태를 디스크에 기록해 장애 발생 지점을 파악하는 구조
-
1
태스크 실행
의존성이 해소된 태스크부터 순차 실행
-
2
상태 저장
태스크 완료 시마다 상태를 로컬 디스크에 기록
-
3
장애 감지
타임아웃·예외·외부 실패 시 실행 중단
-
4
상태 조회
status 액션으로 workflow_id별 완료·실패 태스크 확인 후 대응
상태가 디스크에 남으므로 어느 태스크에서 멈췄는지 status 조회 한 번으로 파악합니다.
컨텍스트는 어떻게 넘어가는가 — 패턴별 상태 전달
멀티에이전트 설계의 핵심 질문 — 각 패턴이 컨텍스트와 상태를 넘기는 방식
언제 멈추는가 — 패턴별 종료와 폭주 방지
상한 없는 자율이 부르는 비용 사고 — 패턴마다 다른 종료 조건과 폭주 상한
| 패턴 | 정상 종료 | 폭주 방지 상한 |
|---|---|---|
| Agents-as-Tools | Supervisor가 도구 호출 없이 최종 응답 | Supervisor의 에이전틱 루프 제어 (Hooks) |
| Swarm | 에이전트가 핸드오프 없이 최종 응답 | max_handoffs · max_iterations |
| Graph | 모든 경로가 종단 노드에 도달 | set_max_node_executions · set_execution_timeout |
| Workflow | 마지막 태스크 완료 상태 기록 | 타임아웃 · 예외 시 실행 중단 — status로 지점 파악 |
컨텍스트 전달이 1순위라면 종료 설계가 2순위 — 모든 패턴에서 상한을 명시하는 것이 프로덕션의 최소 조건입니다.
프로덕션 준비도 비교
장애 복원력·관측 가능성·재현성·수평 확장·디버깅 — 상태를 저장하는 Workflow가 복원력·재현성 우위
| 항목 | Agents-as-Tools | Swarm | Graph | Workflow |
|---|---|---|---|---|
| 장애 복원력 | 낮음 | 중간 | 중간 | 높음 (상태 저장) |
| 관측 가능성 | 중간 | 낮음 | 높음 (노드별) | 높음 (Step별) |
| 재현성 | 높음 | 낮음 | 중간 | 높음 (결정적) |
| 수평 확장 | 제한적 | 우수 | 우수 | 우수 |
| 디버깅 용이성 | 높음 | 낮음 | 중간 | 높음 (로그) |
복원력·재현성이 최우선이면 Workflow입니다 — 태스크 상태 저장이 프로덕션 신뢰성의 기반입니다.
Agents-as-Tools · Swarm · Graph · Workflow — 협업의 4가지 패턴