검색·추론·생성·검수를 단일 LLM Agent에 몰아넣다 확장 시 컨텍스트 포화, 직렬 타임아웃, 단일 장애점에 부딪힌다면, 본문은 아키텍처 리뷰에 바로 넣을 완결 경로를 제시합니다.① 단일 Agent 한계와 다중 Agent 시스템(MAS) 3가지 제어 모드; ② 프로덕션 95%를 커버하는 6대 오케스트레이션 설계 패턴(LangGraph / AutoGen 코드 포함); ③ LangGraph vs CrewAI vs AutoGen 선정 매트릭스와 MCP+A2A 이중 통신 프로토콜; ④ 상태 영속화, 가시성, 5대 함정 회피 및 선정 결정 트리.MCP 프로토콜 해설·MCP Server 튜토리얼과 보완 관계——본문은 다중 Agent 오케스트레이션 → 프레임워크 선정 → 프로덕션 배포에 집중합니다.
MLflow 2026 보고에 따르면 Google 내부 Agent Bake-Off 실험에서 분산 다중 Agent 아키텍처 도입 후 처리 시간이 1시간에서 10분으로 단축되어 6배 이상 개선되었습니다. AdaptOrch(2026 학술 논문)는 추가로 입증합니다.다중 Agent 시스템에서 오케스트레이션 토폴로지 선택이 하위 모델 선택보다 성능에 미치는 영향이 더 크며, SWE-bench 등 벤치마크에서 올바른 토폴로지는 12–23% 성능 향상을 가져옵니다.
다중 Agent 협업 시스템(Multi-Agent System, MAS)은 여러 독립 AI Agent가 명시적 통신 프로토콜과 오케스트레이션 메커니즘으로 협력하여 단일 Agent가 효율적으로 처리하기 어려운 복잡 작업을 완수하는 시스템입니다.
Agent A 출력이 Agent B 입력으로 직접 전달되며 엄격히 선형 실행됩니다. 적용: 단계 간 엄격 의존, 고정 플로우, 동적 라우팅 불필요(콘텐츠 제작 파이프라인, 코드 리뷰 플로우).
from langgraph.graph import StateGraph, START, END
from typing import TypedDict
class PipelineState(TypedDict):
query: str
retrieved_docs: str
analysis: str
final_report: str
def retrieval_agent(state):
return {"retrieved_docs": search_knowledge_base(state["query"])}
def analysis_agent(state):
result = llm.invoke(f"Analyze: {state['retrieved_docs']}")
return {"analysis": result.content}
builder = StateGraph(PipelineState)
builder.add_node("retriever", retrieval_agent)
builder.add_node("analyzer", analysis_agent)
builder.add_edge(START, "retriever")
builder.add_edge("retriever", "analyzer")
builder.add_edge("analyzer", END)
pipeline = builder.compile()
장단점: 구현 단순, 동작 예측 가능, 컴플라이언스 감사에 적합; 그러나 총 시간 = 각 단계 합, 단일 단계 실패 시 전체 차단, 동적 분기 불가.
여러 Agent가 독립 하위 작업을 동시 처리하고 집계 노드에서 결과를 병합합니다. 총 소요 = max(T1, T2, ..., Tn)이며 합산이 아닙니다. 적용: 하위 작업 상호 독립(다중 출처 리서치, 다차원 리스크 평가).
from langgraph.types import Send
from typing import Annotated
import operator
class ResearchState(TypedDict):
query: str
research_results: Annotated[list, operator.add]
final_synthesis: str
def supervisor(state):
return [Send("research_worker", {"query": state["query"], "source": s})
for s in ("academic", "industry", "news")]
def research_worker(state):
return {"research_results": [search_by_source(state["query"], state["source"])]}
핵심 기술 포인트: LangGraph Send API는 Send 객체 리스트를 반환하며 하위 그래프가 실제로 동시 실행됩니다. Annotated[list, operator.add] Reducer와 결합하면 병렬 분기 결과가 자동 집계되어 수동 락·동기화 로직이 불필요합니다.
Supervisor Agent가 의도 인식·작업 분해·라우팅 결정을 담당하고 전문 Worker에 하위 작업을 배분한 뒤 최종 집계합니다. 적용: 작업이 서로 다른 전문 영역으로 분해됨(리서처·작가·코더), 작업 유형 다양·동적 라우팅 필요(Replit 코드 어시스턴트, CS 시스템).
이중 라우팅 최적화: 1계층 키워드 고속 채널(응답 <1ms, LLM 불필요); 2계층 LLM 정밀 라우팅으로 복잡·모호 의도 처리.
Agent 간 P2P로 작업을 직접 전달하며 중앙 조정자 없이 종료 규칙(라운드 수, 합의, 타임아웃)으로 정지합니다. 적용: 다중 라운드 협상·토론(코드 리뷰, 방안 평가).주의: 비결정성이 높아 프로덕션에서는 신중히 사용하며, 계층형 대체를 권장합니다. AutoGen GroupChat 예시에서는 max_round=6 하드 종료로 무한 루프를 방지합니다.
모든 Agent가 구조화된 공유 작업 공간(블랙보드)을 읽고 쓰며, 전제 조건 충족 시 자발적으로 동작하고 명시적 스케줄링이 불필요합니다. 적용: 장시간 비동기 작업(시간·일 단위), 이기종 서비스 협업, 워크플로 조건 복잡·사전 라우팅 정의 곤란.
동일 시스템 내 여러 패턴을 조합하며, 보통 「Supervisor + 파이프라인」입니다. 실제 사례: Intent Agent 라우팅 → 단순 쿼리 즉시 응답; 복잡 보고서 → Supervisor 계층 → 병렬 리서치 Fan-out + 품질 보증 파이프라인(검수 → 인간 검수 → 게시).
| 차원 | LangGraph | CrewAI | AutoGen(Microsoft) |
|---|---|---|---|
| 아키텍처 패러다임 | 상태 기계 그래프 | 역할 기반 팀 | 대화형 다중 Agent |
| 프로그래밍 언어 | Python / JS·TS | Python | Python / .NET |
| 학습 곡선 | 가파름 | 완만 | 중간 |
| 상태 관리 | 네이티브 지원 | 자체 구현 필요 | 제한적 |
| Human-in-the-Loop | 네이티브 지원 | 자체 구현 필요 | 지원 |
| 가시성 | LangSmith(상용) | 제한적 | Azure Monitor |
| 프로덕션 준비도 | 5/5 | 3/5 | 4/5 |
| 빠른 프로토타입 | 3/5 | 5/5 | 4/5 |
| Azure 통합 | 3/5 | 2/5 | 5/5 |
| 적합 시나리오 | 복잡 상태ful 워크플로 | 역할 기반 콘텐츠 파이프라인 | 대화형 협업 |
LangGraph 선택: 프로덕션급 신뢰성(금융·의료), 복잡 상태 관리·영속화, Human-in-the-Loop 정밀 제어, 조건 분기·루프 정확 표현.
CrewAI 선택: 1–2일 Idea 빠른 검증, 팀이 「역할」 직관으로 Agent 이해, 콘텐츠 생성·리서치 보고서 등 역할 기반 시나리오.
AutoGen 선택: Microsoft/Azure 기술 스택, Agent 다중 라운드 토론·반복 추론, 연구 또는 대화 패턴 빠른 실험.
2026년 다중 Agent 시스템 통신 프로토콜은 상호 보완하는 2계층으로 표준화되었으며, 둘 다 Linux Foundation Agentic AI Foundation 산하입니다.
각 A2A Agent는 Agent Card(/.well-known/agent.json)를 게시하며, Orchestrator가 JSON-RPC 2.0으로 발견·위임합니다. 상세는MCP 프로토콜 해설·MCP Server 개발 튜토리얼을 참고하십시오.
LangGraph 체크포인트 저장소로 PostgresSaver를 사용하면 프로세스 재시작 후에도 이전 상태에서 재개할 수 있습니다(thread_id로 세션 간 유지).
LangGraph interrupt()는 고위험 작업(예: 프로덕션 DB 수정) 전에 일시 정지하고 인간 확인을 기다립니다.
외부 Agent 호출에 Circuit Breaker(CLOSED / OPEN / HALF_OPEN)를 적용하고, 실패 임계치 도달 시 차단하여 연쇄 장애를 방지합니다.
TokenBudgetManager가 각 Agent 호출 전 잔여 예산을 확인하고, 초과 시 BudgetExceededException을 발생시키며 Agent별 사용량을 기록합니다.
MAST 연구팀의 1,642건 실행 추적 분석에 따르면 다중 Agent 시스템 장애 분포는 다음과 같습니다.
| 장애 유형 | 비율 | 설명 |
|---|---|---|
| 시스템 설계 문제 | 41.77% | 단계 반복, 잘못된 도구 선택, 컨텍스트 오버플로, 종료 조건 누락 |
| Agent 간 불일치 | 36.94% | 인계 시 컨텍스트 유실, 한 Agent의 환각이 다음 Agent의 「사실」이 됨 |
| 작업 검증 실패 | 21.30% | 조기 종료, 불완전 검증 |
더 우려되는 점: 57% 조직이 Agent를 프로덕션에서 운영 중이나 LLM 가시성 구현을 완료한 곳은 8%에 불과합니다. 다수 오류가 HTTP 200으로 반환되어 모니터링은 녹색이나 실제 출력은 오류인 경우가 많습니다.
분산 추적: 각 Agent 호출에 correlation_id를 부여하고, OpenTelemetry span에 agent.name, tokens_used, status를 기록합니다.
핵심 모니터링 지표: E2E 작업 완료율(목표 >85%), P95 지연(<30s), Agent별 오류율(<5%), 재시도 횟수, Token 비용, LLM-as-a-Judge 출력 품질 점수.
Agent A가 환각을 생성하고 오류 결과가 B·C로 전파되면 전체 시스템이 잘못된 전제에서 출력하나 HTTP 상태는 200입니다.회피: 각 Agent 인계 지점에서 Schema 검증, 신뢰도 임계(<0.7 거부), 필수 필드 검사.
Agent가 재시도 루프에 빠지면 Token 비용이 수 분 내 예상의 수십 배로 치솟습니다.회피: 하드 상한 MAX_ITERATIONS=10, MAX_TOOL_CALLS_PER_AGENT=20, MAX_TOTAL_TOKENS=50_000; LangGraph interrupt_before로 고비용 작업 전 일시 정지.
단순 2단계 LLM 체인을 8개 Agent로 쪼개면 디버깅 난이도가 기하급수적으로 증가합니다.원칙: 순차 파이프라인부터 시작; 병렬 필요·컨텍스트 초과·전문 역량 독립 업그레이드 등 구체적 근거가 있을 때만 Agent를 추가합니다.프로덕션 최적 Agent 수는 보통 3–8개입니다.
내부 Demo는 양호하나 배포 후 엣지 입력에서 빈번히 실패합니다.회피: 입력 길이 제한, 프롬프트 인젝션 탐지, PII 필터, 유해 콘텐츠 탐지——ProductionGuardrails를 첫날부터 배치합니다.
Send API로 병렬 분기를 배포한 뒤 Supervisor가 느린 분기 완료 전 재실행되면 중복 실행이 발생합니다.회피: builder.add_node("supervisor", supervisor_node, defer=True)로 명시적 동기화 배리어를 생성합니다.
thread_id, 체크포인트 재개·Human-in-the-Loop 지원.핵심 요지: ① 오케스트레이션 토폴로지 > 모델 선택; ② 단순 순차 파이프라인부터 시작; ③ MCP + A2A가 미래 표준; ④ 가시성은 선택이 아닌 필수; ⑤ 프로덕션 Agent 3–8개가 최적, 초과 시 계층화 검토.
2026년 주목: 연합 오케스트레이션(다팀 하위 Orchestrator가 라우팅 정책 공유), 멀티모달 다중 Agent(시각·오디오·텍스트 혼합), 적응형 토폴로지 선택(AdaptOrch 방향), EU AI Act 준수를 위한 완전한 의사결정 감사 체인.
그러나 LangGraph 오케스트레이션, MCP Server, A2A Gateway를 슬립 노트북·공유 개발기에서 돌리면 3가지 숨은 비용이 발생합니다.체크포인트·세션이 덮개로 중단, 환경 드리프트로 Agent 인계 실패, 7×24 다단계 워크플로 유지 불가. 안정적 다중 Agent 오케스트레이션과 MCP/A2A 장연결이 필요한 프로덕션에서는 Gateway·상태 저장을 MACCOME Mac mini(M4 / M4 Pro) 전용 노드에 두는 편이 로컬 슬립 정책과 씨름하는 것보다 총비용이 낮은 경우가 많습니다. 공개 요금은대여 가격을 참고하십시오.
자주 묻는 질문
LangGraph, CrewAI, AutoGen 중 어떻게 선택합니까?
프로덕션급 상태 관리, Human-in-the-Loop, 복잡 분기가 필요하면 LangGraph; 빠른 역할 기반 프로토타입은 CrewAI; Microsoft/Azure 스택과 다중 라운드 토론이 필요하면 AutoGen입니다. 상세는 위 비교 매트릭스를 참고하십시오.
MCP와 A2A는 다중 Agent 시스템에서 각각 무엇을 담당합니까?
MCP는 수직 계층(Agent ↔ 도구), A2A는 수평 계층(Agent ↔ Agent)입니다. 상세는MCP 프로토콜 해설을 참고하십시오.
프로덕션 Agent는 몇 개가 적절합니까?
실증 스위트 스팟은 3–8개입니다. 초과 시 조정 오버헤드가 이득을 상회하므로 계층형으로 하위 팀 분리를 검토하십시오.