Note

Strands Workflow

의존성 기반 파이프라인, 병렬 실행, 상태 영속화

⏱ 35분 113 / 189

Strands Workflow

의존성 기반 파이프라인, 병렬 실행, 상태 영속화

에이전트가 에이전트를 부른다

4가지 멀티에이전트 패턴 — 위임에서 오케스트레이션까지

Workflow

의존성 파이프라인 · 상태 저장 · 추적

PART 5 · Workflow

Workflow

실행 순서를 보장하고 상태를 디스크에 남기는 프로덕션 지향 패턴

Workflow

의존성 기반 태스크 파이프라인으로 실행 순서를 보장하고 상태를 디스크에 남깁니다

  • workflow 도구 — strands-agents-tools 제공
  • 의존성 정의 — 실행 순서 보장
  • 태스크 상태를 디스크에 저장
  • create · start · list · status · delete
takeaway

상태가 디스크에 남으니 진행 추적과 장애 지점 파악이 가능합니다 — 프로덕션 신뢰성이 필요할 때의 선택입니다.

PART 5 · Workflow

Workflow 구조도

고정 순서의 파이프라인 — 각 태스크 결과가 저장되어 실패 지점을 정확히 파악

  1. 1
    수집

    태스크 1 — 결과를 상태 저장소에 기록

  2. 2
    분석

    태스크 2 — 이전 태스크 결과를 입력으로 사용

  3. 3
    작성

    태스크 3 — 실패하면 이 지점이 상태에 기록

  4. 4
    발행

    태스크 4 — 완료 상태 기록으로 종료

takeaway

태스크마다 결과가 상태 저장소에 남으니 어디까지 성공했고 어디서 실패했는지를 정확히 파악할 수 있습니다.

PART 5 · Workflow

Workflow 파이프라인 구현

strands-agents-tools의 workflow 도구로 의존성 기반 태스크 파이프라인 실행

핵심 포인트

workflow
strands-agents-tools가 제공하는 태스크 파이프라인 도구
tools=[workflow]
오케스트레이터에 장착 — 자연어 요청을 도구 호출로 수행
create / start / list / status / delete
workflow 도구가 지원하는 5가지 액션
workflow_id
status 액션으로 파이프라인별 진행 상태 확인

코드

python
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별 진행 확인
PART 5 · Workflow

태스크 상태 저장과 추적

태스크 상태를 디스크에 기록해 장애 발생 지점을 파악하는 구조

  1. 1
    태스크 실행

    의존성이 해소된 태스크부터 순차 실행

  2. 2
    상태 저장

    태스크 완료 시마다 상태를 로컬 디스크에 기록

  3. 3
    장애 감지

    타임아웃·예외·외부 실패 시 실행 중단

  4. 4
    상태 조회

    status 액션으로 workflow_id별 완료·실패 태스크 확인 후 대응

takeaway

상태가 디스크에 남으므로 어느 태스크에서 멈췄는지 status 조회 한 번으로 파악합니다.

PART 5 · Workflow

컨텍스트는 어떻게 넘어가는가 — 패턴별 상태 전달

멀티에이전트 설계의 핵심 질문 — 각 패턴이 컨텍스트와 상태를 넘기는 방식










Agents-as-Tools

Supervisor


query만
결과 텍스트

하위 에이전트
격리 — 인자로만 전달
이력은 각자 보관 · 맥락은 query에 담아



Swarm


공유 컨텍스트

A

B

C

공유 — 조립된 맥락 전달
핸드오프 메시지·task·이력 조립 전달



Graph

A 노드

출력만 전달

B 노드
구조적 전달 — 엣지 따라
이전 노드의 출력이 다음 노드의 입력



Workflow

태스크 1


상태 저장소 (디스크)


태스크 2
저장 후 전달 — 상태 추적
결과가 디스크에 남아 실패 지점 파악·대응


패턴 선택은 곧 컨텍스트 전달 방식의 선택 — "누가 무엇을 아는가"가 멀티에이전트 설계의 시작입니다
PART 5 · Workflow

언제 멈추는가 — 패턴별 종료와 폭주 방지

상한 없는 자율이 부르는 비용 사고 — 패턴마다 다른 종료 조건과 폭주 상한

패턴정상 종료폭주 방지 상한
Agents-as-ToolsSupervisor가 도구 호출 없이 최종 응답Supervisor의 에이전틱 루프 제어 (Hooks)
Swarm에이전트가 핸드오프 없이 최종 응답max_handoffs · max_iterations
Graph모든 경로가 종단 노드에 도달set_max_node_executions · set_execution_timeout
Workflow마지막 태스크 완료 상태 기록타임아웃 · 예외 시 실행 중단 — status로 지점 파악
takeaway

컨텍스트 전달이 1순위라면 종료 설계가 2순위 — 모든 패턴에서 상한을 명시하는 것이 프로덕션의 최소 조건입니다.

PART 5 · Workflow

프로덕션 준비도 비교

장애 복원력·관측 가능성·재현성·수평 확장·디버깅 — 상태를 저장하는 Workflow가 복원력·재현성 우위

항목Agents-as-ToolsSwarmGraphWorkflow
장애 복원력낮음중간중간높음 (상태 저장)
관측 가능성중간낮음높음 (노드별)높음 (Step별)
재현성높음낮음중간높음 (결정적)
수평 확장제한적우수우수우수
디버깅 용이성높음낮음중간높음 (로그)
takeaway

복원력·재현성이 최우선이면 Workflow입니다 — 태스크 상태 저장이 프로덕션 신뢰성의 기반입니다.

복잡한 문제는 여러 에이전트가 나눠 해결합니다.

Agents-as-Tools · Swarm · Graph · Workflow — 협업의 4가지 패턴