agentic-harness

방법론 · 02

Ralph Loop

Geoffrey Huntley 의 wiretap loop — 단일 셸 루프 하나로 끝없이 작업을 흡수하는 가장 단순한 자율 패턴입니다.

잠깐 상상해 보십시오 — 셸 스크립트 한 줄짜리 무한 루프가, LLM 에게 같은 프롬프트를 계속 던지면서, 매 반복마다 git 히스토리와 파일 상태만으로 진행 상황을 기억합니다. 컨텍스트 윈도우가 차오르면? 다음 반복은 새로운 컨텍스트로 시작합니다. 다 끝났는지는? 미리 적어 둔 PRD 항목이 모두 통과했는지로만 확인합니다. 이게 Geoffrey Huntley 가 정리한 Ralph loop 입니다. 이름은 The Simpsons 의 Ralph Wiggum 에서 따 왔습니다 — “순진해 보이지만 실제로는 동작한다” 는 점이 닮았다는 농담입니다.

왜 이렇게 단순한 루프가 동작하는가

Ralph loop 의 핵심 통찰은 한 줄입니다 — “진행 상태는 컨텍스트 윈도우 안에 있어선 안 됩니다. 파일과 git 히스토리에 있어야 합니다.” 이 한 줄이 왜 중요할까요? 일반적인 LLM 대화는 컨텍스트가 차오르면 “기억상실” 을 겪습니다. 그래서 사람들은 더 큰 컨텍스트, 더 비싼 모델, 더 복잡한 프롬프트로 그 한계를 밀어붙이려 합니다. Ralph 는 그 방향이 잘못됐다고 말합니다. 진행 상태를 외부(파일·git) 에 두면, 컨텍스트는 매 반복마다 깔끔히 리셋되어도 됩니다. 컨텍스트는 “지금 이 순간 한 가지 일” 만 보면 충분합니다.

Progress lives outside the context window. When context exhausts, the next loop iteration starts fresh, examining only the current file state and recent git diffs, not conversation history.

가장 간단한 Ralph loop

실제 코드는 놀랍도록 짧습니다. 아래는 Huntley 의 패턴을 그대로 따른 최소 셸 스크립트입니다.

ralph-loop.shbash
#!/bin/bash
# 자율 에이전트 루프 — Ralph 패턴

PROMPT="Build a Kotlin AIOps harness per AGENTS.md spec"
MAX_ITERATIONS=50
ITERATION=0

while [ $ITERATION -lt $MAX_ITERATIONS ]; do
  ITERATION=$((ITERATION + 1))
  echo "=== Ralph Loop Iteration $ITERATION ==="

  # 최소 컨텍스트: 마지막 체크포인트 이후의 git diff 만
  RECENT_CHANGES=$(git diff HEAD~1)
  SPEC=$(cat AGENTS.md)

  # 같은 결정론적 프롬프트로 에이전트 호출
  claude --no-stream --file AGENTS.md --prompt "$PROMPT"

  # 완료 조건
  if pnpm test && git log --oneline -1 | grep -q "COMPLETE"; then
    echo "✓ All PRD items complete at iteration $ITERATION"
    break
  fi

  git add -A
  git commit -m "ralph-iter-$ITERATION: auto-iteration"
done

AGENTS.md 에 “해야 할 일” 만 적어 두면 됩니다

Ralph loop 의 또 다른 매력은 “계획” 자체도 LLM 가 알아볼 수 있는 형식이면 충분하다는 점입니다. PRD 항목을 markdown 체크박스로 적어 두고, 각 항목이 끝났는지를 git 커밋·테스트로 검증하는 것만으로도 자동화가 동작합니다.

AGENTS.mdmarkdown
# AGENTS.md — Ralph Loop 작업 명세

## 목표
최소한의 Kotlin JVM AIOps 하네스를 eval-driven 방식으로 구축합니다.

## PRD 항목
- [ ] OpenAI 호환 도구 스펙 형식 파싱
- [ ] 코드 리뷰용 read-only 병렬 서브에이전트 구현
- [ ] eval 루프 연결: 테스트 작성 → 에이전트 실행 → 채점 → 개선
- [ ] 메모리를 ~/.claude/projects/*/memory/MEMORY.md 에 영속화

## 성공 기준
- 모든 테스트 통과: ./gradlew test
- git 히스토리에 점진적 커밋이 있음
- eval 이 ≥95% spec compliance 보고
현대 AI 에이전틱 코딩 8가지 패턴을 한 페이지로 정리한 인포그래픽

현대 에이전틱 코딩 패턴 — Ralph wiretap loop 를 비롯한 8가지 패턴을 카드 형태로 시각화한 자료입니다.

텍스트가 작게 보이면 원본 크게 보기로 확인하시는 편이 좋습니다.

원본 크게 보기 ↗

출처: Google NotebookLM (사이트 docs/research/02 source pack 기반 자동 생성)


다른 방법론 글도 있습니다 → Karpathy 방법론 · Eval-Driven Development · Context Engineering · Agent Teams · Self-Improving Systems · AutoResearch 심층 분석