Note

Strands Swarm

자율 핸드오프, 공유 컨텍스트, 안전 설정

⏱ 35분 111 / 189

Strands Swarm

자율 핸드오프, 공유 컨텍스트, 안전 설정

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

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

Swarm

자율 핸드오프와 공유 컨텍스트

PART 3 · Swarm

Swarm

Supervisor 없는 협업 — 스스로 대화를 넘겨받는 에이전트들

Swarm

에이전트 간 자율 핸드오프로 대화 흐름이 이동하는 분산 협업 모델입니다

  • 자율 핸드오프 — 에이전트가 전환 결정
  • 공유 컨텍스트 — 상태 연속성 유지
  • Supervisor 없는 동적 라우팅
  • max_handoffs · max_iterations 상한
takeaway

중앙 결정자가 없어 단일 병목이 사라집니다 — 대신 라우팅이 동적이라 흐름 예측은 어려워집니다.

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. 1
    초기 에이전트 응답

    entry_point 에이전트가 사용자 메시지 처리 시작

  2. 2
    핸드오프 판단

    현재 에이전트가 전환 필요성 자율 결정

  3. 3
    컨텍스트 전달

    핸드오프 메시지·원 task·작업 이력·shared_context를 조립해 다음 에이전트에 전달

  4. 4
    새 에이전트 활성

    전환된 에이전트가 컨텍스트 기반으로 응답 계속

takeaway

핸드오프의 핵심은 컨텍스트 전달입니다 — 핸드오프 메시지·원 task·작업 이력·shared_context가 조립되어 넘어가 다음 에이전트가 작업을 이어갑니다 (메시지 리스트 자체는 미전달).

PART 3 · Swarm

Swarm의 상태 — 공유 컨텍스트의 실체

핸드오프마다 함께 넘어가는 것과 관리해야 할 것

함께 넘어가는 것

핸드오프의 수하물

  • 핸드오프 메시지 + 원 task — 이어받을 작업과 넘긴 사유
  • 작업 이력 — 지금까지 거쳐온 에이전트 목록
  • shared_context — 에이전트들이 기록한 공유 상태

넷이 조립된 텍스트가 다음 에이전트의 입력 — 이전 에이전트의 메시지 리스트 자체는 넘어가지 않습니다.

관리해야 하는 것

공유의 비용

  • 컨텍스트 포화가 Swarm 전체로 전파 — 길어질수록 모두가 무거워짐
  • max_handoffs · max_iterations — 폭주와 무한 순환 방지 상한
  • 에이전트 전문화 — 역할을 좁혀 각자의 발화를 짧게

컨텍스트 공유는 편의와 포화를 맞바꾸는 선택 — 상한 설정이 안전벨트입니다.

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

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