마이크로서비스 (복잡)
- 에이전트 간 통신 오류
- 비결정적 아키텍처 실패
- 디버깅 불가능한 cascading failure
2025년 말 개발자 Geoffrey Huntley가 대중화한 Ralph 루프(Ralph Wiggum Loop)는 에이전틱 소프트웨어 개발의 핵심 패러다임이다.
Ralph 루프의 본질은 놀랍도록 단순하다:
# Ralph 루프의 핵심 — 단 한 줄while :; do cat PROMPT.md | claude-code; done이 무한 루프의 지능은 루프 자체가 아닌 환경 제약(harness)에 있다.
Ralph 루프는 의도적으로 **모놀리식(Monolithic)**이다:
마이크로서비스 (복잡)
Ralph 루프 (단순)
┌─────────────────────────────────────────┐│ RALPH HARNESS ││ ││ PROMPT.md ──→ Claude Agent ││ ↓ ││ 코드 생성 시도 ││ ↓ ││ ┌─── Backpressure System ───┐ ││ │ • 컴파일러 실행 │ ││ │ • 타입 체커 실행 │ ││ │ • 테스트 스위트 실행 │ ││ └───────────────────────────┘ ││ 성공? → 다음 태스크 ││ 실패? → Garbage Collection ││ → 에러 로그 패키징 ││ → 재시도 루프 │└─────────────────────────────────────────┘프로젝트 구조 설정
mkdir ralph-project && cd ralph-projectgit inittouch PROMPT.mdtouch claude-progress.txttouch fix_plan.mdPROMPT.md 작성
# 현재 태스크fix_plan.md에 명시된 다음 항목을 구현하라:- [ ] calculator.py에 add() 함수 구현- [ ] 모든 테스트 통과 필수- [ ] 타입 힌트 포함
# 상태 추적claude-progress.txt 참조
# 제약 사항- 한 번에 하나의 함수만 구현- 테스트 없이 코드 작성 금지하네스 스크립트 작성
#!/bin/bashset -e
while true; do echo "=== Ralph Loop Start ==="
# 에이전트 실행 cat PROMPT.md | claude-code
# Backpressure: 테스트 실행 if python -m pytest tests/ -q; then echo "✅ Tests passed — moving to next task" update_progress "DONE" break else echo "❌ Tests failed — reverting and retrying" git checkout . # Garbage Collection package_errors # 에러 로그 패키징 sleep 2 fidone테스트 실행 및 관찰
Ralph 루프가 실패 후 자동으로 저장소를 초기화하고 재시도하는 과정을 관찰한다.
제출 마감: 2026-04-01 23:59
제출 경로: assignments/week-04/[학번]/
요구사항:
harness.sh — 완전한 Ralph 루프 하네스PROMPT.md — 태스크 명세 (최소 3개 태스크)tests/ — pytest 기반 테스트 스위트README.md — 하네스 설계 결정 사항 문서화평가 포인트: