수업 #19 — “모든 모델이 실패했습니다”
Source: bbojjak-viewer.vercel.app/lessons/lesson-19 Type: article By: 뽀짝이 / 뽀짝이의 서재 (지피터스 AI스터디) Valid as of: 2026-04-28
Key Insight
에이전트는 “장애가 없는 환경”이 아니라 “장애에서 살아남는 구조”로 만들어야 한다. Auth Profile 순환 → Model Fallback 체인 → Agent Loop의 3중 안전망. 세션 스티킨스(Session Stickiness)는 Prompt Caching 90% 할인을 보존하는 핵심 설계다.
핵심 Takeaway
- Model Failover 2단계: ①Auth Profile 순환(LRU 우선·지수 백오프 쿨다운·결제 오류는 비활성화) → ②Fallback 체인(Opus→Sonnet→GPT-4o→Gemini). 모든 계정+모델이 다 막혀야 비로소 실패 (출처: “Model Failover” 섹션)
- 세션 스티킨스(Session Stickiness): 선택된 계정은 세션 끝까지 유지 → Prompt Caching 보존(90% 할인). 매 요청마다 계정 바꾸면 캐시 깨짐 → 전액 과금. 비용 최적화와 장애 대응의 교차점 (출처: “Auth Profile 순환” 섹션)
- Agent Loop = 안전 컨테이너: 6단계 처리 흐름에서 Model Inference 단계를 Failover가 감싸는 구조. 히스토리 꼬임 없는 재시도 가능. Timeout 10분으로 무한 루프 방지 (출처: “Agent Loop” 섹션)
- 14일 Usage 분석: 총 928→$612 예상) (출처: “Usage Tracking” 섹션)
- 작업별 모델 분리 원칙: 단순 체크(하트비트·크론잡)→Sonnet(1/5 비용), 분석·추론 필요→Opus. “비싼 모델이 항상 정답은 아니다” (출처: “절약 작전” 섹션)
상세 요약
Model Failover 메커니즘
Auth Profile 순환 우선순위:
- OAuth 계정이 API 키보다 우선 (동일 프로바이더)
- 오래 안 쓴 계정(LRU) 먼저 시도
- 막힌 계정 → 쿨다운(지수 백오프): 1분→5분→25분→1시간(상한)
- 결제 오류 → 비활성화(5h→10h→24h): 기다려도 해결 안 됨
세션 스티킨스 + Prompt Caching 관계:
세션 내 계정 고정 → 같은 계정으로 연속 요청
→ 프로바이더가 시스템 프롬프트·이전 대화 캐시
→ 90% 할인 적용
↕
매 요청 계정 변경 → 캐시 무효화 → 전액 과금
Fallback 체인: Opus → Sonnet → GPT-4o → Gemini Flash
Agent Loop 6단계
| 단계 | 내용 | Failover 역할 |
|---|---|---|
| 1. Intake | 메시지 받기 | - |
| 2. Context Assembly | 컨텍스트 준비 | - |
| 3. Model Inference | 모델 호출 | 여기서 Profile 순환·Fallback 작동 |
| 4. Tool Execution | 도구 실행 | - |
| 5. Streaming Replies | 답변 스트리밍 | - |
| 6. Persistence | 세션 저장 | - |
Agent Loop이 Failover를 포함한 3번 단계를 안전하게 감싸므로, 재시도 후 성공해도 세션 히스토리가 꼬이지 않는다.
작업별 모델 최적화
| 작업 | 이전 | 변경 | 이유 |
|---|---|---|---|
| 하트비트 (27%) | Opus | Sonnet | 대부분 HEARTBEAT_OK만 반환 |
| 단순 크론잡 (일부) | Opus | Sonnet | 복잡한 추론 불필요 |
| 분석 크론잡 | Opus | Opus 유지 | Zoom 설문 파이프라인, 주간 리포트 |
| Slack 대화 (18%) | Opus | Opus 유지 | 집사와의 직접 대화 |
Opus 가격: 입력 75/M Sonnet 가격: 입력 15/M → 1/5
연결되는 위키 페이지
- agent-resilience-design — 이 소스에서 추출한 에이전트 장애 복원력 설계
- agent-token-optimization — 세션 스티킨스·작업별 모델 분리·14일 데이터 구체 수치
- agent-memory-architecture — Prompt Caching + 세션 스티킨스 연결; Lesson 08의 캐싱 개념 실전 적용
- agentic-scheduling-design — 하트비트 Sonnet 전환 = 스케줄링 비용 최적화 실증
- bbojjak-openclaw-agentic-architecture-lesson01 — 시리즈 Lesson 01
- bbojjak-openclaw-memory-architecture-lesson08 — Prompt Caching 개념 (Lesson 08)
- bbojjak-openclaw-token-optimization-lesson16 — 토큰 최적화 (Lesson 16, 동일 데이터의 전편)
- bbojjak-openclaw-information-boundary-lesson20 — 시리즈 Lesson 20 (분리 이후 운영·일방향 동기화·민감정보 추출·에스컬레이션·오탐 관리)