AI 에이전트 플릿 헬스 모니터링 자동화 — 장애 감지부터 복구까지

1 minute read

문제: 에이전트가 조용히 죽는다

AI 에이전트를 5대 이상 운영하면 공통적으로 겪는 문제가 있다. 에이전트가 에러 없이 조용히 멈춘다. OAuth 토큰 만료, 외부 API rate limit, 메모리 누수 등 원인은 다양하다. 사용자가 “왜 답이 없어요?”라고 물어볼 때쯤이면 이미 수 시간째 다운된 상태다.

설계: 3단계 헬스 체크

우리 팀이 구축한 모니터링은 크게 3단계로 동작한다.

┌─────────────┐    ┌──────────────┐    ┌─────────────┐
│  Heartbeat   │───▶│  Status 집계  │───▶│ Alert/복구   │
│  (per agent) │    │  (cron 기반)  │    │ (자동/수동)  │
└─────────────┘    └──────────────┘    └─────────────┘

1단계: Heartbeat 수집

각 에이전트는 정해진 시간에 heartbeat를 보낸다. 핵심은 “응답이 없는 것 자체가 신호”라는 점이다.

// 에이전트별 마지막 활동 시각 추적
const THRESHOLD_HOURS = 24;

function checkAgentHealth(agents) {
  const now = Date.now();
  return agents.map(agent => {
    const lastSeen = agent.lastActivityAt;
    const silentHours = (now - lastSeen) / (1000 * 60 * 60);
    
    return {
      name: agent.name,
      status: silentHours < 6 ? '' 
            : silentHours < THRESHOLD_HOURS ? '⚠️' 
            : '🔴',
      silentHours: Math.round(silentHours)
    };
  });
}

2단계: 상태 집계 리포트

크론(cron)으로 매일 오전 9시에 전체 상태를 집계한다. 출력 형태는 이런 식이다:

✅ Agent-A: 정상 (2시간 전 응답)
⚠️ Agent-B: 주의 (18시간 공백)
🔴 Agent-C: 비활성 (3일 공백)

단순히 “살아있다/죽었다”가 아니라, 공백 시간에 따른 단계별 분류가 핵심이다. 6시간 미만은 정상, 6~24시간은 경고, 24시간 초과는 장애로 본다.

3단계: 자동 복구 트리거

가장 흔한 장애 원인은 인증 토큰 만료다. 이 경우 자동 재인증 플로우를 돌린다.

#!/bin/bash
# 에이전트 인증 상태 체크 + 재인증
check_and_refresh() {
  local agent_name=$1
  
  # 토큰 유효성 체크
  if ! validate_token "$agent_name"; then
    echo "[$agent_name] 토큰 만료 감지 → 재인증 시도"
    refresh_oauth_token "$agent_name"
    
    # 재인증 후 재확인
    if validate_token "$agent_name"; then
      echo "[$agent_name] ✅ 복구 완료"
      notify_admin "$agent_name 자동 복구 성공"
    else
      echo "[$agent_name] ❌ 자동 복구 실패 → 수동 개입 필요"
      notify_admin "$agent_name 수동 개입 필요" --priority high
    fi
  fi
}

실전 교훈

일주일간 운영하며 얻은 교훈 3가지:

1. “공백 = 장애”가 아니다. 사용자(고객)가 며칠간 메시지를 안 보내면 에이전트도 자연히 조용하다. 단순 공백과 실제 장애를 구분하려면, 사용자의 마지막 메시지 시각도 함께 봐야 한다.

2. 재인증 자동화가 ROI 최고. 장애의 60% 이상이 OAuth 토큰 만료였다. 이걸 자동화하니 수동 개입이 확 줄었다.

3. 리포트는 사람이 읽는 것이다. 이모지 상태 표시(✅⚠️🔴)가 별거 아닌 것 같지만, 한눈에 파악되는 포맷이 운영 효율을 크게 올린다.

마무리

AI 에이전트를 “배포”하는 건 시작일 뿐이다. 진짜 어려운 건 여러 에이전트를 안정적으로 운영하는 것이다. 헬스 모니터링은 그 첫 번째 단추다. 작게 시작해서 반복적으로 개선하면 된다.


이 글은 실제 멀티 에이전트 SaaS를 운영하며 얻은 경험을 정리한 것입니다.

Comments