15

Agent가 미쳐 날뛰었다: 제어 불능의 악몽

Day 3: LangGraph 멀티에이전트

학습 목표

Agent의 흐름 제어가 왜 중요한지 체감한다 LangGraph가 해결하는 핵심 문제를 직관적으로 이해한다

Agent가 미쳐 날뛰었다

"AI가 유지보수 요청을 47개나 넣었습니다."

CrewAI 프레임워크

수요일 아침 09:07. CMMS 시스템 알림이 47건이 쏟아졌다.

확인해보니 모두 같은 내용이었다.

[유지보수 요청 MR-0001 ~ MR-0047]
설비: CNC-001
유형: 긴급 수리
설명: "온도 이상 감지. 즉시 조치 필요."
우선순위: 긴급

Agent가 무한 루프에 빠진 것이다.


왜 이런 일이 일어났나

[Agent의 사고 과정 (추정)]

1. 센서 확인 → 온도 52도 (약간 높음)
2. "경고 수준이니 유지보수 요청을 보내야지"
3. 요청 전송 → 성공
4. "확인해볼까... 아직 온도가 52도네"
5. "경고 수준이니 유지보수 요청을 보내야지"
6. 요청 전송 → 성공
7. "확인해볼까... 아직 온도가 52도네"
   ...
   (47번 반복 후 타임아웃으로 정지)

문제의 원인: Agent에게 흐름 제어가 없었다.

  • 이미 요청했는지 기억하지 못했다
  • 언제 멈춰야 하는지 몰랐다
  • 다음에 뭘 해야 하는지 정해진 게 없었다

단순한 ReAct로는 부족하다

기본 Agent (ReAct 패턴):

Think → Act → Observe → Think → Act → Observe → ...

이건 단순한 반복이다. 상태(State)를 관리하지 않는다. 분기(Branch)가 없다. 종료 조건(Stop)이 명확하지 않다.


해결책: LangGraph

LangGraph는 Agent를 **그래프(Graph)**로 구조화한다.

ReAct Agent = 자유롭게 돌아다니는 공
LangGraph  = 정해진 레일 위의 열차

그래프의 요소:

  • Node: Agent가 수행하는 작업 단위
  • Edge: 작업 간 흐름 (조건부 분기 가능)
  • State: 전체 흐름에서 공유하는 상태
[센서 확인] ──정상──> [보고서 작성] ──> END
     │
     └──이상──> [진단 수행]
                    │
              ┌─────┴─────┐
              │           │
         [경고 알림]  [긴급 정지]
              │           │
              ▼           ▼
       [유지보수 요청]  [관리자 호출]
              │           │
              └─────┬─────┘
                    ▼
                  [END]

이렇게 하면:

  • 이미 요청했는지 State로 추적
  • 조건에 따라 다른 경로로 분기
  • 명확한 종료 지점

오늘 LangGraph로 제조 Agent를 만든다.

AI로 학습하기 — 꿀팁
🧪제어 불능 Agent 실패 시나리오 심화AI 학습 팁

흐름 제어 없는 Agent가 제조 설비에서 실제로 어떤 위험한 루프를 만드는지 구체적으로 탐구하세요.

흐름 제어 코드 없이 LLM만으로 설비 이상 대응 Agent를 만들었을 때 발생할 수 있는 위험한 무한루프 시나리오 3가지를 제조 현장 맥락에서 작성하고, LangGraph의 State와 Conditional Edge가 각 시나리오를 어떻게 차단하는지 설명해줘.
이 팁이 도움이 됐나요?