중앙 결정자가 없어 단일 병목이 사라집니다 — 대신 라우팅이 동적이라 흐름 예측은 어려워집니다.
PART 3 · Swarm
Swarm 구조도
리서치 → 코딩 → 리뷰가 공유 컨텍스트를 가운데 두고 도는 자율 핸드오프 순환
PART 3 · Swarm
Swarm 핸드오프 구현
system_prompt로 전환 시점을 지시하고 entry_point와 max_handoffs·max_iterations로 시작점과 상한을 지정
핵심 포인트
name=
핸드오프 대상을 식별하는 에이전트 이름
system_prompt
언제 다른 에이전트로 넘길지를 프롬프트로 지시
entry_point=
대화를 시작할 진입 에이전트 지정
max_handoffs · max_iterations
전환·반복 횟수 상한 — 폭주 방지
코드
python
from strands import Agent
from strands.multiagent.swarm import Swarm
sales_agent = Agent(
name="sales",
system_prompt="Sales specialist. Transfer to support for technical issues.",
)
support_agent = Agent(
name="support",
system_prompt="Support engineer. Transfer to sales for pricing questions.",
)
swarm = Swarm( # 필요 시 에이전트가 자율적으로 핸드오프
[sales_agent, support_agent], entry_point=sales_agent,
max_handoffs=20, max_iterations=20,
)
result = swarm("서버 에러가 계속 발생합니다")
PART 3 · Swarm
Supervisor vs Swarm
중앙집중 위임과 자율 핸드오프의 구조적 차이
Supervisor (Agents-as-Tools)
중앙집중 위임
중앙 Supervisor가 모든 결정
하위 에이전트는 수동적 도구
제어 흐름 명확·예측 가능
병목: Supervisor 과부하 가능
Swarm (자율 핸드오프)
분산 자율 전환
각 에이전트가 자율적으로 전환 결정
공유 컨텍스트로 상태 연속성
동적 라우팅 — 예측 어려움
확장성 우수, 단일 병목 없음
PART 3 · Swarm
자율 핸드오프 흐름
Swarm 내 에이전트 간 컨텍스트 전달과 전환 메커니즘
1
초기 에이전트 응답
entry_point 에이전트가 사용자 메시지 처리 시작
2
핸드오프 판단
현재 에이전트가 전환 필요성 자율 결정
3
컨텍스트 전달
핸드오프 메시지·원 task·작업 이력·shared_context를 조립해 다음 에이전트에 전달
4
새 에이전트 활성
전환된 에이전트가 컨텍스트 기반으로 응답 계속
takeaway
핸드오프의 핵심은 컨텍스트 전달입니다 — 핸드오프 메시지·원 task·작업 이력·shared_context가 조립되어 넘어가 다음 에이전트가 작업을 이어갑니다 (메시지 리스트 자체는 미전달).
PART 3 · Swarm
Swarm의 상태 — 공유 컨텍스트의 실체
핸드오프마다 함께 넘어가는 것과 관리해야 할 것
함께 넘어가는 것
핸드오프의 수하물
핸드오프 메시지 + 원 task — 이어받을 작업과 넘긴 사유
작업 이력 — 지금까지 거쳐온 에이전트 목록
shared_context — 에이전트들이 기록한 공유 상태
넷이 조립된 텍스트가 다음 에이전트의 입력 — 이전 에이전트의 메시지 리스트 자체는 넘어가지 않습니다.