패스노트
← 블로그 목록
기술 해설

Claude로 AI 에이전트 만들기: 오케스트레이션 패턴

에이전트 시스템을 설계할 때 가장 먼저 마주치는 질문은 "에이전트를 몇 개 둘 것인가"입니다. 결론부터 말하면, 대부분의 경우 단일 에이전트 루프로 시작하는 것이 정답입니다. 이 글에서는 단일 루프의 구조를 먼저 살펴보고, 멀티 에이전트로 확장해야 하는 신호와 대표 패턴을 정리합니다.

단일 에이전트 루프

에이전틱 루프(agentic loop)는 모델이 툴을 호출하고, 결과를 보고, 다음 행동을 결정하는 반복 구조입니다. 뼈대는 놀랄 만큼 단순합니다.

import anthropic

client = anthropic.Anthropic()
messages = [{"role": "user", "content": "이번 분기 매출 보고서를 요약해줘"}]

while True:
    response = client.messages.create(
        model="claude-sonnet-5",
        max_tokens=4096,
        tools=tools,
        messages=messages,
    )
    if response.stop_reason != "tool_use":
        break  # 모델이 최종 답변을 냈다
    # 툴 호출을 실행하고 결과를 대화에 추가한다
    messages.append({"role": "assistant", "content": response.content})
    messages.append({"role": "user", "content": run_tools(response.content)})

이 구조 하나로 파일 읽기, 검색, 코드 실행 같은 작업 대부분을 처리할 수 있습니다. 루프가 단순할수록 디버깅이 쉽고, 실패 지점도 명확합니다.

멀티 에이전트가 필요한 신호

다음 신호가 보이기 전까지는 에이전트를 늘리지 마세요.

  • 컨텍스트 포화: 한 에이전트가 다뤄야 할 자료가 컨텍스트 윈도우를 넘어섭니다.
  • 독립적인 병렬 작업: 서로 결과를 참조하지 않는 작업 여러 개를 동시에 처리해야 합니다.
  • 역할별 권한 분리: 코드 수정 에이전트와 리뷰 에이전트처럼, 서로 다른 툴 권한이 필요합니다.

반대로 "작업이 개념적으로 나뉜다"는 이유만으로 에이전트를 나누는 것은 흔한 안티패턴입니다. 에이전트 간 통신 비용과 컨텍스트 복제 비용이 이득을 상쇄합니다.

오케스트레이터-워커 패턴

가장 널리 쓰이는 멀티 에이전트 패턴입니다. 오케스트레이터(orchestrator)가 작업을 분해해 워커(worker)에게 나눠 주고, 결과를 취합합니다.

사용자 요청
   │
   ▼
오케스트레이터 ──▶ 워커 A (검색)
   │              워커 B (분석)
   │              워커 C (검증)
   ▼
결과 종합 → 최종 응답

설계할 때 지켜야 할 원칙이 세 가지 있습니다.

  1. 워커는 서로를 모른다: 워커 간 직접 통신을 허용하면 흐름을 추적할 수 없게 됩니다. 통신은 항상 오케스트레이터를 거칩니다.
  2. 워커에게는 필요한 컨텍스트만: 전체 대화를 복제하지 말고, 작업 지시와 필요한 자료만 전달합니다. 비용과 혼선이 모두 줄어듭니다.
  3. 결과는 구조화된 형식으로: 워커가 자유 서술로 보고하면 취합 단계에서 다시 해석해야 합니다. JSON 등 스키마가 있는 형식으로 돌려받으세요.

핸드오프 설계

핸드오프(handoff)는 한 에이전트가 작업의 소유권을 다른 에이전트에게 완전히 넘기는 패턴입니다. 오케스트레이터-워커와 달리 넘긴 쪽은 결과를 기다리지 않습니다. 고객 상담을 1차 봇이 받다가 전문 상담 에이전트로 넘기는 경우가 대표적입니다.

핸드오프에서 가장 자주 생기는 사고는 컨텍스트 유실입니다. 넘겨받은 에이전트가 이전 대화의 핵심 결정 사항을 모르면 같은 질문을 반복하게 됩니다. 이를 막으려면 핸드오프 시점에 구조화된 인수인계 문서를 함께 전달해야 합니다.

{
  "handoff_reason": "환불 정책 예외 승인 필요",
  "customer_context": "3회 구매 이력, 첫 환불 요청",
  "decisions_so_far": ["기본 환불 기간 초과 확인"],
  "open_questions": ["부분 환불 가능 여부"]
}

어떤 패턴을 선택할 것인가

상황권장 패턴
단일 작업, 툴 몇 개단일 에이전트 루프
대량 병렬 조사·분석오케스트레이터-워커
소유권 이전이 필요한 흐름핸드오프
순차 단계별 검증파이프라인 (단계별 에이전트)

패턴 선택의 판단 기준은 언제나 같습니다. 가장 단순한 구조로 시작하고, 병목이 실측되면 그때 확장하세요. 에이전트 수는 늘리기는 쉽지만 줄이기는 어렵습니다.

CCAR-F 시험을 준비 중이신가요?

무료 커리큘럼과 모의시험으로 지금 시작하세요.

커리큘럼 보기