← 목록
기타 2026-06-14 3KB 읽기 3분

영속 자율주도 드라이버 (스로틀 결선)

개요

세션이 닫혀도 24/7 백로그→작업을 자동 기동하는 영속 자율 드라이버. 레이트리밋 스로틀 거버너와 결선해 부하를 게이트한다. 사용자 요청("영속")으로 구축.

무엇을 했는지

드라이버 ~/.claude/scripts/crowny-autoloop.sh

  • 전용 백로그 큐 ~/.claude/autoloop/backlog.psv — 사용자/세션이 add로 작업 적재. 빈 큐 = idle(무해), 백로그에 있는 것만 실행(작업 창작 안 함).
  • tick 파이프라인: 킬스위치 → 단일 인스턴스 락(mkdir) → 스로틀 전역 백오프 확인 → 대기작업 1건 → 분업으로 모델 결정 → 스로틀 슬롯 비블로킹 확보(포화면 다음 tick) → 진행표시 → 헤드리스 claude -p --model <id> --max-turns 40 --dangerously-skip-permissions (가드레일 append) → 완료/실패 기록 + 스로틀 ok/해제.
  • 명령: add <작업유형> "<프롬프트>" [경로] / tick / status / on·off / log / clear-done.
  • prompt는 base64 저장(구분자/개행 안전). 모델 매핑: opus→claude-opus-4-8, sonnet→claude-sonnet-4-6, haiku→claude-haiku-4-5, fable→claude-fable-5, 미상→sonnet.

영속화 ~/Library/LaunchAgents/org.crowny.autoloop.plist

  • StartInterval 180s, RunAtLoad, Background/Nice 5. 로그 ~/.claude/autoloop/launchd.log.
  • launchctl load -w로 등록 완료 (org.crowny.autoloop).

안전장치

  • 킬스위치 off(즉시 정지) / on. 파일 ~/.claude/autoloop/OFF.
  • 단일 인스턴스 락 → 동시에 1작업만(보수적). 락 TTL 2400s로 죽은 tick 회수.
  • 스로틀 게이트 필수 → 백오프 중 tick 건너뜀, 슬롯 포화면 작업 보류.
  • --max-turns 40 = 회로차단기(무한루프 방지, 실측 작동 확인).

사용법 (다른 세션도 동일)

bashA=~/.claude/scripts/crowny-autoloop.sh
$A add 단순코딩 "finance 지갑 합산 점검하고 고쳐라" /Users/ef/crowny-finance
$A add 글밥빠른작업 "academy 미션 콘텐츠 10개 작성"
$A status        # 큐 + 진행
$A off           # 전체 정지
계약: add한 작업은 --dangerously-skip-permissions전권 자율 실행된다. 신중히 적재할 것.

관련 파일

  • ~/.claude/scripts/crowny-autoloop.sh (드라이버)
  • ~/Library/LaunchAgents/org.crowny.autoloop.plist (영속)
  • ~/.claude/autoloop/ (backlog.psv, autoloop.log, run_*.log, OFF)
  • 결선: crowny-throttle.sh(게이트), 분업(모델), 한선씨-가드레일.md(주입)

잔여 이슈 / 교훈

  • 사고+교훈: LaunchAgent 로드 시 백로그에 남은 '대기' 테스트 작업이 즉시 실제 claude로 실행됨 → max-turns에서 자동정지(무해). 로드 전 백로그 비울 것. clear-done은 완료/실패만 제거, '대기'는 수동.
  • 현재 ON·빈 백로그(idle). 작업을 add해야 실제 가동.
  • 동시성 1 → 늘리려면 스로틀 한도 + 락 구조 확장 필요.
  • (A) 세션 내 /loop(자기페이스)는 별도로 항상 사용 가능 — 세션 살아있는 동안만.