Ralph パターンの本質、業界での採用状況、そしてループ内の LLM コール数のバリエーション (single / multi / hybrid) について整理した議論ログ。
はい、現在の AI コーディング界隈で確実にホットな潮流。
Geoffrey Huntley 氏が提唱した「A loop + the right prompt」というシンプルな発想:
while not done:
LLM(prompt + 外部状態ファイル)
たったこれだけで、長時間自律動作する agent が成立する。コアアイデアは:
plans/, progress/, learnings/ などをディレクトリで管理する流儀は Ralph 直系全部「LLM の文脈窓は信頼するな、ファイルに書け、ループを回せ」という同じ原理に収束している。
progress.txt / prd.json を見れば agent の頭の中が全部わかる。「巨大な context window を持つ賢い single-shot LLM」より「小さく賢い LLM + 良い外部記憶 + ループ」のほうが強い
という認識が業界コンセンサスになりつつある。Anthropic が Skill / Memory / Agent SDK を矢継ぎ早に出しているのも、この流れに自社プラットフォームを最適化しているから。
Ralph は そのプロトタイプとして 100 行のシェルスクリプトで本質を示した 点で、教材的価値がとても高い。
どちらもアリ。設計上の重要な分岐点。
while not done():
llm(prompt="prd.json を読んで 1 story 実装してコミットしろ")
# ↑ この 1 行の中で LLM が内部で
# read_file, edit_file, run_test, git_commit ... を自律的に何十回も呼ぶ
# 外から見ると LLM コールは 1 回
特徴: while の中身は実質 1 行。賢さは全部 prompt と LLM 任せ。
向いてる場面:
while not done():
plan = llm(prompt="次にやるべき story を計画しろ", model="opus")
code = llm(prompt=f"この計画を実装しろ: {plan}", model="haiku")
review = llm(prompt=f"このコードをレビューしろ: {code}", model="sonnet")
if review.ok:
write_file(code)
git_commit()
else:
continue # 次ループでやり直し
特徴: while の中で LLM を 明示的に複数回 呼ぶ。各コールで役割・モデル・プロンプトを変える。
向いてる場面:
# パターン1
while not done():
llm("全部やれ") # 1 コール
# パターン2
while not done():
a = llm("計画") # コール ①
b = llm(f"実装({a})") # コール ②
c = llm(f"レビュー({b})") # コール ③
if c.ok: commit(b)
while not done():
plan = llm("計画立てろ") # 軽い 1 コール
llm(f"この計画を実装しろ。完了したら報告: {plan}") # 重い 1 コール (内部で agentic)
llm(f"差分をレビューしろ") # 軽い 1 コール
外側はパイプライン的に 3 コール、真ん中の “実装” コールは内部で大量のツール呼び出しを伴う agentic ループ。外側パイプライン × 内側 agentic の二層構造。
| 観点 | パターン1 (single-call) | パターン2 (multi-call) |
|---|---|---|
| 複雑度 | 低 | 高 |
| デバッグ性 | LLM 内部はブラックボックス | 各ステージの中間成果物が見える |
| コスト | 1 コール内のトークン全部 1 モデル | ステージごとに最適モデル選択可 |
| 失敗時の局所化 | 全部やり直し | 失敗ステージだけ retry |
| 実装労力 | 数十行 | 数百〜数千行 |
| 賢さの源 | プロンプト | パイプライン設計 + プロンプト |
multi-agent / multi-stage は 接合部のバグが指数的に増える。
“A single capable model in a tight loop beats a clever multi-agent system until it provably doesn’t”
これも業界の合言葉になっている (Anthropic の “Building effective agents” 記事の主張に近い)。