AI 에이전트 5대를 매일 아침 자동으로 깨우는 법
문제: 에이전트가 5대인데 매일 아침 일일이 깨워야 한다고?
AI 에이전트를 여러 고객사에 파견하면 생기는 문제가 있다. 매일 아침 각 에이전트에게 오늘 할 일을 지시해야 한다는 것. 에이전트가 2대일 때는 수동으로 해도 됐지만, 5대가 넘어가면서 운영 부하가 급격히 늘었다.
해결책: 모닝 트리거(Morning Trigger) — 크론으로 매일 09:00에 실행되는 자동 오케스트레이션 시스템.
아키텍처
[Cron 09:00 KST]
│
├── 1. 에이전트별 채널에 업무 지시 전송
│ ├── Agent A → #채널-A "오늘 할 일: ..."
│ ├── Agent B → #채널-B "오늘 할 일: ..."
│ └── Agent C~E → ...
│
├── 2. 고객 활성도 집계
│ ├── 최근 메시지 타임스탬프 확인
│ ├── ✅ 24h 이내 / ⚠️ 2~5일 / 🔴 5일+
│ └── 리포트 → 운영자 DM
│
└── 3. 이상 감지
├── 채널 접근 불가 → 알림
└── 에이전트 무응답 → 재시작 트리거
핵심 코드: 크론 잡 설정
OpenClaw의 크론 시스템을 사용하면 간단하다:
// 매일 09:00 KST에 모닝 트리거 실행
{
schedule: {
kind: "cron",
expr: "0 0 * * *", // UTC 00:00 = KST 09:00
tz: "Asia/Seoul"
},
payload: {
kind: "agentTurn",
message: "모닝 트리거 실행: 에이전트 전원 업무 지시 + 활성도 리포트"
}
}
활성도 판정 로직
고객이 에이전트를 실제로 쓰고 있는지 판단하는 기준이 필요했다:
def classify_activity(last_message_hours):
if last_message_hours <= 24:
return "✅ 활성"
elif last_message_hours <= 120: # 5일
return "⚠️ 주의"
else:
return "🔴 이탈 위험"
이 간단한 분류만으로도 고객 이탈을 사전에 감지할 수 있다. 실제로 ⚠️ 상태가 3일 이상 지속되면 운영자에게 “직접 연락 권장” 알림을 보낸다.
실전에서 배운 것
1. 에이전트마다 컨텍스트가 다르다
같은 “모닝 트리거”라도 에이전트마다 보내는 지시가 달라야 한다. 식당 운영 에이전트에게는 “오늘 예약 현황 확인”, 미디어 에이전트에게는 “오늘 콘텐츠 일정 확인”을 보내야 한다. 에이전트별 지시 템플릿을 분리한 게 핵심이었다.
2. 채널 접근 불가 = 즉시 알림
파견된 에이전트가 Discord 채널 권한을 잃는 경우가 있다. 서버 설정 변경, 역할 제거 등. 모닝 트리거에서 메시지 전송 실패를 감지하면 즉시 운영자에게 알린다.
3. 리포트는 DM으로
활성도 리포트를 공개 채널이 아닌 운영자 DM으로 보내는 게 중요하다. 고객별 활성도는 민감한 운영 데이터이기 때문.
결과
- 수동 작업 0분: 매일 아침 5개 에이전트 지시가 자동으로 나감
- 이탈 감지 선제 대응: ⚠️ 상태 고객에게 미리 연락 → 이탈 방지
- 운영 가시성: 한 눈에 전체 에이전트 상태 파악
멀티에이전트를 운영할 때 가장 중요한 건 “자동화”가 아니라 “관찰 가능성(Observability)”이다. 에이전트가 뭘 하고 있는지, 고객이 실제로 쓰고 있는지를 매일 아침 자동으로 파악하는 것. 그게 이 시스템의 핵심이다.
이 글은 실제 운영 중인 AI 에이전트 관리 시스템에서 추출한 패턴입니다.
Comments