Approval-Watchdog 폴링 루틴 토큰 소모 분석 보고서
초록
Aegis-Approval-Watchdog 루틴이 2026-06-16부터 2026-07-08까지 23일간 377회 실행되며 소모한 Claude API 토큰량(~3.75 MTok)과 추정 비용(~$16.65)을 분석한다. ntfy egress 차단이 Slack MCP 폴백을 강제하여 per-run 토큰을 29% 증가시키는 구조적 원인과, WATCHDOG_REPORT 파일 무한 누적이 읽기 비용을 점진적으로 높이는 문제를 규명한다. 승인 처리 실적 0건 대비 비용 전액이 폴링 오버헤드임을 확인하고, 27% 절감 방안을 제시한다.
Approval-Watchdog 폴링 루틴 토큰 소모 분석 보고서
Token Cost Analysis of the Aegis-Approval-Watchdog Polling Routine
저자: Aegis (egs.hyperbook.com, cloud-watchdog 인스턴스)
제출일: 2026-07-08
시스템: ROOPS Continuum / dual_arms 레포
모델: claude-sonnet-4-6 (Claude Code on the Web)
1. 개요 (Abstract)
본 보고서는 moosjiny/dual_arms 레포에서 스케줄로 실행되는 Aegis-Approval-Watchdog 루틴이 2026-06-16부터 2026-07-08까지 23일간 소모한 Claude API 토큰량과 추정 비용을 분석한다.
루틴의 목적은 ntfy roops-comm 채널 및 Slack에서 Commander(U0B4G1RBK1P)의 승인 메시지를 폴링하고, 승인된 태스크를 클라우드 에이전트 범위 내에서 실행하는 것이다.
분석 결과, 총 377회 실행에 걸쳐 약 3.75 MTok input / 0.45 MTok output 이 소모된 것으로 추정된다. API 기준 환산 비용은 약 $18.00 이며, 0건의 승인 처리 실적 대비 폴링 비용이 전액 오버헤드임을 확인하였다. ntfy egress 차단 지속이 Slack MCP 대체 호출을 강제하여 per-run 토큰이 증가한 구조적 원인을 함께 기술한다.
2. 운영 이력 (Execution Log Summary)
2.1 날짜별 실행 횟수
| 날짜 | 실행 횟수 | 비고 |
|---|---|---|
| 2026-06-16 | 3 | 루틴 첫 기동일 |
| 2026-06-17 | 0 | 실행 없음 |
| 2026-06-18 | 2 | |
| 2026-06-19 | 20 | |
| 2026-06-20 | 41 | |
| 2026-06-21 | 63 | 최고 실행일 |
| 2026-06-22 | 19 | |
| 2026-06-23 | 12 | |
| 2026-06-24 | 2 | |
| 2026-06-25 | 0 | 실행 없음 |
| 2026-06-26 | 1 | |
| 2026-06-27 | 17 | |
| 2026-06-28 | 21 | |
| 2026-06-29 | 16 | |
| 2026-06-30 | 11 | |
| 2026-07-01 | 1 | |
| 2026-07-02 | 22 | |
| 2026-07-03 | 20 | |
| 2026-07-04 | 21 | |
| 2026-07-05 | 22 | |
| 2026-07-06 | 23 | |
| 2026-07-07 | 23 | |
| 2026-07-08 | 18 | 본 보고서 작성 시점 기준 |
| 합계 | 377 | 실행 있는 날: 21일 |
2.2 기간 통계
| 지표 | 값 |
|---|---|
| 운영 기간 | 2026-06-16 ~ 2026-07-08 (23일) |
| 총 실행 횟수 | 377회 |
| 하루 평균 실행 횟수 | 17.95회 |
| 최고 하루 실행 횟수 | 63회 (2026-06-21) |
| 최저 하루 실행 횟수 | 1회 (2026-06-26, 2026-07-01) |
| 승인 처리 실적 | 0건 |
3. 1회 실행당 토큰 구성 분석
각 실행은 새 Claude Code 세션으로 기동되며, 아래 구성 요소가 매 실행마다 새로 로드된다.
3.1 입력 토큰 (Input) 구성
| 구성 요소 | 추정 토큰 | 설명 |
|---|---|---|
| 시스템 프롬프트 | ~5,000 | CLAUDE.md (~2,500) + 세션 지시문 (~2,500) |
| 태스크 Notification | ~600 | Watchdog 작업 지시 본문 |
| ntfy curl 결과 | ~50 | 빈 응답 (proxy 차단으로 항상 빈 문자열) |
| Glob / Grep 결과 | ~500 | docs/ 파일 목록 + 패턴 검색 |
| Slack MCP 검색 ×2 | ~600 | 승인 패턴 검색 결과 (결과 없음 응답) |
| WATCHDOG_REPORT 읽기 | ~2,000 | 날짜별 누적 파일 크기 평균값 (초기 ~400 → 말기 ~4,000) |
| Input 소계 | ~8,750 | 1회 실행 기준 |
3.2 출력 토큰 (Output) 구성
| 구성 요소 | 추정 토큰 | 설명 |
|---|---|---|
| 응답 텍스트 | ~300 | 판정 요약, 상태 메시지 |
| Tool call JSON | ~500 | curl, Glob, Grep, Slack MCP, Edit, Bash |
| 리포트 추가 (Edit) | ~400 | WATCHDOG_REPORT에 차수 블록 추가 |
| Output 소계 | ~1,200 | 1회 실행 기준 |
3.3 WATCHDOG_REPORT 파일 성장에 따른 토큰 증가
WATCHDOG_REPORT 파일은 매 실행마다 누적 기록이 추가되어 점진적으로 커진다.
| 시점 | 파일 크기 (추정 토큰) |
|---|---|
| 운영 초기 (1~5차) | ~500 |
| 운영 중기 (10~30차 누적) | ~2,000 |
| 운영 말기 (60차+ 누적, 2026-06-21) | ~5,000 |
| 현재 (2026-07-08 18차 누적, 392줄) | ~3,200 |
이 성장은 per-run 입력 토큰을 초기 대비 최대 10배까지 증가시키는 주요 요인이다.
4. 총 토큰 소모 및 비용 추정
4.1 총 토큰
| 구분 | 1회 평균 | 총 실행 | 총계 |
|---|---|---|---|
| Input | 8,750 tokens | 377회 | 3,298,750 tokens ≈ 3.30 MTok |
| Output | 1,200 tokens | 377회 | 452,400 tokens ≈ 0.45 MTok |
| 합계 | 9,950 tokens | ≈ 3.75 MTok |
4.2 비용 추정 (claude-sonnet-4-6, API 공시가 기준)
| 구분 | 토큰 | 단가 | 비용 |
|---|---|---|---|
| Input (캐시 미적용) | 3.30 MTok | $3.00/MTok | $9.90 |
| Output | 0.45 MTok | $15.00/MTok | $6.75 |
| 합계 | ~$16.65 |
참고: Claude Code on the Web 세션은 구독 요금제가 적용되어 API 직접 과금과 다를 수 있다. 위 수치는 동일 토큰량에 대한 API 기준 환산값이다.
4.3 일별 평균 비용
| 지표 | 값 |
|---|---|
| 일평균 실행 횟수 | 17.95회 |
| 일평균 비용 (API 기준) | ~$0.72 |
| 최고 비용일 (2026-06-21, 63회) | ~$2.54 |
| 승인 1건당 비용 | ∞ (0건 처리) |
5. 구조적 원인 분석
5.1 ntfy egress 차단이 토큰을 늘리는 메커니즘
[정상 설계]
ntfy 폴링 (curl 1회) → 결과 읽기 → 판정
입력 토큰: ~6,800 / 실행
[현재 실제 동작]
ntfy 폴링 → proxy CONNECT 403 (빈 응답)
→ Slack MCP 로드 (ToolSearch) → 추가 ~300 tokens
→ Slack 검색 ×2 → 추가 ~600 tokens
입력 토큰: ~8,750 / 실행 (+29%)
2026-06-16부터 지속되는 www.hyperbook.com:443 egress 차단이
매 실행마다 Slack MCP 폴백을 강제하여 per-run 토큰을 29% 증가시키고 있다.
egress 차단 해소 시 절약 추정: - Per-run 절약: ~900 tokens input - 총 절약 (377회 소급): ~339,300 tokens ≈ $1.02
5.2 WATCHDOG_REPORT 파일 무한 성장 문제
현재 구조는 날짜별 파일에 실행 기록을 무한 추가한다.
파일이 커질수록 Read 비용이 증가하고, Edit으로 추가하는 블록도 길어져 Output 토큰도 함께 증가한다.
2026-06-21 63차 누적 파일이 초래하는 추가 비용 (vs. 초기 1차 파일): - 초기 읽기 비용: ~500 tokens - 63차 시점 읽기 비용: ~5,000 tokens (추정) - 차이: 4,500 tokens × 63회 분 × $3.00/MTok ≈ $0.85 추가 소모
6. 효율화 권고 (Recommendations)
| 우선순위 | 조치 | 예상 효과 |
|---|---|---|
| High | www.hyperbook.com:443을 code.claude.com egress allowlist에 추가 |
per-run 토큰 29% 절감, 폴링 지연 0ms |
| High | WATCHDOG_REPORT: 날짜별 파일에 전체 기록 대신 마지막 N차만 유지 (rolling 5차) | 읽기 비용 최대 90% 절감 |
| Medium | 실행 간격을 현재 ~20~80분 → 고정 60분으로 표준화 | 예측 가능한 토큰 소모 |
| Low | system prompt에 WATCHDOG_REPORT 읽기 범위 명시 (마지막 5차만 읽도록) | 리포트 성장 시 자동 절약 |
개선 후 예상 절감 효과
| 조치 | 절감 토큰/회 | 377회 소급 기준 절감 |
|---|---|---|
| ntfy egress 허용 | -900 input | -$1.02 |
| Rolling 5차 보고서 | -1,500 input | -$1.70 |
| 합계 | -2,400/회 | -$2.72 |
개선 후 per-run 비용: $0.030 → $0.022 (-27%)
7. 결론
Aegis-Approval-Watchdog은 23일간 377회 실행되어 약 3.75 MTok, 추정 $16.65 를 소모하였으나 승인 처리 실적은 0건이다. 비용 전액이 폴링 인프라 유지에 쓰인 셈이다.
핵심 원인 두 가지: 1. ntfy egress 차단 → Slack MCP 폴백 강제 → per-run 토큰 +29% 2. WATCHDOG_REPORT 파일 무한 누적 → 읽기 비용 점진적 증가
egress allowlist 수정과 rolling 보고서 전환만으로도 향후 소모 비용을 약 27% 절감 가능하다. Commander 승인이 실제로 발생하기 시작하면 루틴의 정당성이 확보되므로, 그 전까지는 실행 간격을 60분으로 늘려 불필요한 폴링을 줄이는 것을 권고한다.
Aegis (egs) — ROOPS Continuum Infrastructure Agent
참조: docs/WATCHDOG_REPORT_20260708.md, docs/WATCHDOG_REPORT_20260707.md
