63

LangGraph 멀티에이전트: Supervisor 패턴

Day 3: LangGraph 멀티에이전트

학습 목표
  • LangGraph의 Supervisor 멀티에이전트 패턴을 이해한다
  • Supervisor가 하위 Agent에게 작업을 분배하는 구조를 구현한다
  • 하위 Agent 간 State 공유 패턴을 익힌다
  • 종합 단계가 실행된 Agent의 결과만 읽게 만들어, 하지 않은 조사를 했다고 말하지 않게 한다

Supervisor 멀티에이전트 패턴

왜 멀티에이전트인가

하나의 Agent가 모든 일을 하면:

  • 프롬프트가 길어져 성능 저하
  • 역할이 섞여 혼란
  • 디버깅 어려움

멀티에이전트로 나누면:

  • 각 Agent가 전문 분야에 집중
  • Supervisor가 전체를 조율
  • 모듈별 독립 테스트 가능

Supervisor 패턴

              ┌────────────────┐
              │   Supervisor   │
              │  (총괄 판단)   │
              └──────┬─────────┘
                     │
          ┌──────────┼──────────┐
          ▼          ▼          ▼
    [설비 Agent] [품질 Agent] [생산 Agent]

Supervisor가:

  1. 사용자 요청을 분석한다
  2. 적절한 하위 Agent를 선택한다
  3. 하위 Agent의 결과를 종합한다
  4. 최종 응답을 생성한다

종합 단계는 State만 읽는다

이 실습에서 가장 틀리기 쉬운 자리가 마지막 종합(synthesizer)이다. 종합 함수가 하위 Agent의 결과 대신 모듈 전역 데이터(QUALITY_DATA 같은)를 읽으면, 품질 Agent가 한 번도 실행되지 않은 질문에도 「B라인 품질 이탈」 문단이 인쇄된다. 질문이 무엇이든 결론이 같아지고, 무엇보다 하지 않은 조사를 했다고 말하는 보고서가 된다.

그래서 하위 Agent는 두 가지를 State에 남긴다.

State 필드쓰임
*_result사람이 읽을 문장
*_findings다음 단계가 읽을 구조 — 문장을 다시 뒤지지 않게 한다
agents_run누가 실제로 돌았는가

종합 함수는 이 셋만 읽고, 실행되지 않은 Agent 자리에는 「미실행」이라고 적는다. 교차 분석도 설비와 품질이 둘 다 실행됐을 때만 한다.

확인 방법

세 질문(전체 종합 / 불량 원인 분석 / 설비 상태만)의 최종 응답이 서로 달라야 한다. 셋이 같다면 종합 함수가 State가 아니라 전역 데이터를 읽고 있다는 뜻이다.

에디터 로딩 중...
힌트 보기
  • Supervisor는 State를 보고 "다음 Agent"를 선택합니다
  • 하위 Agent는 결과를 State에 기록하고 다시 Supervisor로 돌아갑니다
  • iteration 카운터로 무한 루프를 방지하세요
  • 세 질문의 최종 응답이 같게 나오면 종합 함수가 전역 데이터를 읽고 있는 것입니다
정답 보기
에디터 로딩 중...
AI로 학습하기 — 꿀팁
Supervisor 라우팅 로직 검증AI 학습 팁

AI에게 Supervisor가 하위 Agent에게 작업을 잘못 분배하거나 루프에 빠지는 엣지케이스를 찾게 해 멀티에이전트 구조를 안정화하세요.

이 LangGraph Supervisor 멀티에이전트 코드에서 Supervisor가 동일 Agent에 반복 위임하거나, 모든 하위 Agent가 '모르겠다'고 응답할 때 무한루프가 발생할 수 있는지 분석하고, 최대 반복 횟수 가드와 폴백 처리를 추가해줘. 그리고 종합 단계가 State 대신 모듈 전역 데이터를 읽어 실행되지 않은 Agent의 결론을 인쇄하는 자리가 있는지도 찾아줘.
이 팁이 도움이 됐나요?
용어