15분
Agent가 미쳐 날뛰었다: 제어 불능의 악몽
Day 3: LangGraph 멀티에이전트
Agent가 미쳐 날뛰었다: 제어 불능의 악몽
AI Agent 심화 > Day 3: LangGraph 멀티에이전트
학습 목표
Agent의 흐름 제어가 왜 중요한지 체감한다 LangGraph가 해결하는 핵심 문제를 직관적으로 이해한다
Agent가 미쳐 날뛰었다
"AI가 유지보수 요청을 47개나 넣었습니다."
수요일 아침 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가 각 시나리오를 어떻게 차단하는지 설명해줘.
이 팁이 도움이 됐나요?