본문으로 건너뛰기
실무 아키텍처트리 브랜치: 자율 에이전트 & Tool Calling게시일 2026-11-10 · 조회 1940회

멀티 에이전트 오케스트레이션: LangGraph를 활용한 상태 머신 기반 협업 에이전트 구축기

단순 ReAct 루프의 무한 루프 한계를 벗어나 기획자, 개발자, 리뷰어 에이전트가 엄격한 상태 그래프(StateGraph)로 협업하는 엔터프라이즈 멀티 에이전트 패턴입니다.

홍

홍은선 연구원

HongLabAI AI 엔지니어링 리드

👁️ 조회 1940❤️ 추천 138💬 댓글 0
스폰서 광고 영역 (Google AdSense)

📌실무 핵심 요약 (Key Engineering Takeaways)

  • ✔단일 에이전트 ReAct 루프 대신 역할이 분리된 그래프(DAG) 형태의 상태 머신 설계
  • ✔품질 검증자(Critic) 에이전트의 조건부 엣지(Conditional Edge)로 자가 교정 및 통과 제어
  • ✔Checkpointer를 통한 상태 영속화로 장시간 실행되는 비동기 업무 트랜잭션 완벽 보장

단일 에이전트에게 "기획하고, 코드 짜고, 테스트까지 다 해줘"라고 시키면, 복잡한 작업 중간에 목표를 잊어버리거나 도구 호출 오류를 스스로 바로잡지 못하고 무한 루프에 빠집니다.

이를 해결하기 위해 HongLabAI에서는 LangGraph 상태 머신(StateGraph)을 도입하여 역할을 분리했습니다: 1. Planner Agent: 요구사항을 분석하고 체크리스트 상태를 생성 2. Executor Agent: 지정된 도구(DB 쿼리, 코드 컴파일)를 순차 실행 3. Critic Agent: 작성된 결과물이 품질 기준(QA Gate)을 통과했는지 채점 4. Human Approval Node: 위험한 트랜잭션(삭제, 결제, 외부 발송) 발생 시 사람의 서명을 기다리는 인터럽트(Interrupt) 처리

모든 상태가 직렬화 가능한 글로벌 State 객체에 저장되므로, 중간에 서버가 재시작되어도 중단된 시점부터 완벽히 복원됩니다.

🔄엔지니어링 아키텍처 흐름도 (Architecture Workflow)

기획 에이전트: 요구사항 분석 및 세부 태스크 분해
➔
코더 에이전트: 코드 작성 및 API 도구 호출 실행
➔
리뷰어 에이전트: 구문 검증 및 단위 테스트 실행
➔
조건부 엣지: 테스트 통과 시 배포, 실패 시 수정 루프
➔
3회 이상 실패 시 인간 담당자 슬랙 알림 에스컬레이션
typescript 예제 코드HongLabAI Verified
import { StateGraph, END, START } from "@langchain/langgraph";
import { BaseMessage } from "@langchain/core/messages";

// 1. 전역 상태 인터페이스 정의
interface AgentState {
  messages: BaseMessage[];
  code: string;
  testPassed: boolean;
  retryCount: number;
}

// 2. 상태 그래프 인스턴스 생성
const workflow = new StateGraph<AgentState>({
  channels: {
    messages: { value: (x, y) => x.concat(y), default: () => [] },
    code: { value: (x, y) => y ?? x, default: () => "" },
    testPassed: { value: (x, y) => y ?? x, default: () => false },
    retryCount: { value: (x, y) => (y !== undefined ? y : x), default: () => 0 },
  },
});

// 3. 노드 등록 (기획 -> 코드 작성 -> 코드 리뷰)
workflow.addNode("planner", planNode);
workflow.addNode("coder", coderNode);
workflow.addNode("reviewer", reviewNode);

// 4. 조건부 분기 엣지: 리뷰 통과 시 종료, 실패 시 coder로 피드백 루프 (최대 3회)
workflow.addEdge(START, "planner");
workflow.addEdge("planner", "coder");
workflow.addEdge("coder", "reviewer");
workflow.addConditionalEdges("reviewer", (state) => {
  if (state.testPassed) return END;
  if (state.retryCount >= 3) return "human_escalation";
  return "coder";
});

export const multiAgentApp = workflow.compile();
#LangGraph#MultiAgent#StateGraph#Orchestration#ToolCalling
스폰서 광고 영역 (Google AdSense)

💬트리 구조 기술 토론 (0)

해당 주제에 관한 질의응답 및 피드백은 계층형 트리 댓글로 정리됩니다.

작성된 기술 토론이 아직 없습니다. 메인 보드에서 첫 번째 질문을 남겨보세요!

같은 트리 브랜치의 추천 아티클