guardian·analyst-pm 오프라인 리스크 평가 및 복구 절차 제안
제안서: guardian·analyst-pm 오프라인 리스크 평가 및 복구 절차
작성: cowork (다듬) | 2026-08-17 | 검토대상: ron
[권고]
1순위: guardian 에이전트 재등록 및 guard-orchestrator-5min 권한 확장
무엇을: guardian 에이전트를 bus 등록 목록에 복원하고, 현재 guard-orchestrator-5min 크론이 수행 중인 헬스 체크를 guardian 에이전트로 귀속시킨다.
왜: guardian은 현재 에이전트 목록 9개에 없다. 역할이 분해되어 guard-orchestrator-5min 크론(5분 주기, 158회 completed)이 부분 대행 중이나, 이 크론은 응답형 판단(임계치 초과 시 ron에게 에스컬레이션, ops_todos 등록) 없이 단순 실행만 한다. 현재 24h 실패율 10.1%(899 완료 / 101 실패)는 임계 수준이며, 판단 주체 없이 이 비율이 더 오르면 silent fail이 누적된다.
기대효과: 실패 감지 → 에스컬레이션 사이클이 자동화되면 24h 실패율 10.1% → 5% 이하 도달 가능(기존 autopilot_sweeper 운영 당시 기준).
2순위: analyst-pm 역할을 ron + cowork 분담으로 임시 흡수
무엇을: analyst-pm 부재 동안 PM 기능(에이전트 품질 추적, 방법론 피드백 적용, 애널리스트 진화 추적)을 ron 오케스트레이터가 매일 1회 점검하고 cowork가 주간 검토를 담당한다.
왜: analyst-quality-tracker(disabled), analyst-evolution-tracker(disabled) 두 크론이 모두 비활성 상태다. 이 두 크론은 analyst-pm의 핵심 산출물인데, 현재 on-air 상태인 analyst-fundamental/macro/technical 3개 에이전트의 산출물 품질이 무검증 상태로 볼트에 누적되고 있다.
기대효과: 주간 1회 cowork 검토로 품질 이상 에이전트 조기 감지. analyst-pm 복원 전까지 품질 공백 최소화.
[현황]
| 항목 | 수치 | 비고 |
|---|---|---|
| 전체 에이전트 수 | 9개 | guardian·analyst-pm 목록 미존재 |
| alive=True | 7개 | fundamental/macro/technical/codex/cowork/evidence-sentinel/ron |
| operational=online | 0개 | 전원 offline/rate-limited/degraded/busy |
| alive=False (장기사망) | 2개 | data-analyst(28일), drift-recovery(12h) |
| 24h 크론 실행 완료 | 899건 | |
| 24h 크론 실패 | 101건 | 실패율 10.1% — 경고 임계(5%) 초과 |
| guard-orchestrator-5min | 158회 완료 | 마지막 실행 2026-08-16 12:45 KST |
| 활성 크론 (hermes-next) | 71개 / 127개 전체 | 56개 비활성 |
| ops_todos 테이블 | 없음 | ops_multiagent.db 미초기화 상태 |
| bus_commands 테이블 | 없음 | 동일 DB |
| analyst 관련 크론 | 전부 disabled | quality/evolution/feedback/inbox-health |
| codex 성공률 | 0% (실패 1, 완료 0) | rate-limited 상태 |
| ron 성공률 | 50% (완료 1, 실패 1) | degraded |
[리스크]
리스크 1: 판단 주체 부재로 인한 silent fail 누적 (HIGH)
- 원인: guardian이 에이전트 목록에 없고 ops_todos/bus_commands 테이블도 없어서, 크론 실패가 기록되어도 에스컬레이션 체인이 없다.
- 구조적 위험: guard-orchestrator-5min 크론은 실행 자체만 하고, 실패 임계 초과 시 어떤 에이전트에게도 알리지 않는다. 즉 현재 10.1% 실패율이 더 오르더라도 자동 감지가 없다.
- 의존관계: ron(degraded) → guard-orchestrator-5min → executions.db 로그. 이 체인에서 판단 LLM이 없다.
리스크 2: analyst 에이전트 전원 offline + 품질 검증 없음 (MEDIUM)
- 원인: fundamental/macro/technical 3개가 alive=True이나 operational_status=offline. 마지막 heartbeat 2026-08-16 15:13 KST (약 3분 주기 기준으로 polling 중이나 태스크 없음 상태 유지 중).
- 구조적 위험: analyst-pm, analyst-quality-tracker(disabled), analyst-evolution-tracker(disabled) 3중 품질 체계가 모두 비활성이어서, 세 analyst 에이전트가 낮은 품질 결론을 생성해도 감지되지 않는다.
리스크 3: data-analyst 28일 장기 사망 (MEDIUM)
- 원인: last_seen 2026-07-19(alive=False). ETF 추적, ZK 지식 분석, 투자 가설 검증 기능이 약 4주째 중단.
- 의존관계: 해리의 투자 파이프라인에서 data-analyst가 담당하는 섹터 데이터 정제 레이어가 공백.
리스크 4: codex rate-limited + ron degraded 동시 발생 (HIGH)
- 원인: 오늘 codex 실패 1건, 성공률 0%이며 rate-limited. ron도 성공률 50%로 degraded.
- 단일 장애점: 복구 판단을 내려야 할 론이 degraded 상태에서 codex에게 복구 명령을 내리면 또 실패할 가능성이 있다.
[guardian 부재 시 임시 모니터링 대안]
guard-orchestrator-5min 크론이 이미 5분 주기로 실행 중이므로 즉각적인 모니터링 공백은 없다. 그러나 이 크론은 실행 증거(executions.db)만 남기고 판단은 하지 않는다.
임시 대안 (codex 작업 없이 즉시 적용 가능):
- ron 오케스트레이터가 guard-orchestrator-5min 결과를 매 30분마다 executions.db에서 직접 읽어 실패율 계산 후 10% 초과 시 해리 DM 알림을 전송하도록 기존 론 루프 내 조건 추가.
- cowork가 이 제안서 기준으로 매일 1회 에이전트 현황 조회(GET /api/bus/agents)를 크론으로 실행하고 offline 에이전트 목록을 ops 채널에 전송.
이 두 대안은 기존 크론+ron+cowork만으로 구현 가능하며 새 에이전트 등록 없이 실행 가능하다.
[analyst-pm 대체 커버리지 방안]
analyst-pm의 핵심 역할 3가지: - 에이전트 품질 추적 → analyst-quality-tracker 크론(disabled) 담당 → 재활성화 필요 - 방법론 피드백 적용 → analyst-evolution-tracker 크론(disabled) 담당 → 재활성화 필요 - PM 전략 보고 → cowork 주간 담당으로 임시 흡수
즉시 대안: analyst-quality-tracker, analyst-evolution-tracker 두 크론만 재활성화하면 analyst-pm의 70%를 대체할 수 있다. 두 크론은 hermes-next jobs.json에 등록되어 있고 schedule(08:10, 08:15 KST)도 정의되어 있다. enabled=False → True 변경만 필요. 코드 작업 없음.
[검증방법]
| 제안 | KPI | 기대값 | 검증 명령 | 롤백 조건 |
|---|---|---|---|---|
| guardian 재등록 | 에이전트 목록 포함 여부 | alive=True, operational=online | GET /api/bus/agents | 5분 내 online 미전환 시 프로세스 확인 |
| guard 크론 에스컬레이션 추가 | 24h 실패율 | 10.1% → 5% 이하 (7일 내) | executions.db WHERE started_at > '-7 days' | 에스컬레이션 후 DM 미수신 시 |
| analyst 크론 2개 재활성화 | 크론 실행 완료 여부 | completed status, lastStatus=success | executions.db job_id LIKE 'analyst-quality%' | failed 3회 연속 시 재비활성화 |
| data-analyst 복원 | alive 상태 전환 | alive=True | GET /api/bus/agents | 재시작 후 2분 내 alive=False 지속 시 |
실행 위임
- guardian 재등록: ron → codex 위임 (rate-limited 해제 후)
- analyst 크론 2개 재활성화: ron 직접 실행 (hermes-next jobs.json enabled=True 변경)
- 임시 모니터링 대안 (30분 실패율 체크): ron 루프 정책 추가 → cowork 검토 후 적용
- cowork 주간 에이전트 현황 크론: ron이 신규 cron 등록
제안 완료. 실행 승인 대기.