Ralph Loop2026年9月6日 | |
🐧 要するにどういう話か「Ralph」は、The Simpsons のキャラクター「Ralph Wiggum」に由来する。Ralph Wiggumは賢くはないが、無邪気で、やるときはやるという感じのキャラクターらしい(知らんけど)。LLMを賢いと思わずに(Ralphだと思って)うまく導いてやると成果を出せるよ、ということらしい。 Ralph LoopとはRalph Loopは、LLMにプロンプトを繰り返し与えてソフトウェアを構築する技術である。最も純粋な形は、Bashのループである。
LLMにゴールを与え、LLMがそれを達成しようとし、ループが再開され、LLMが前回までを踏まえて続ける。内側のループに人間はいない。 重要な洞察は次の通りである。
つまり、個別のループ反復は非決定論的だが、壊れるパターンは予測可能である。壊れ方を観察し、その失敗モードに対するプロンプトを書き、ループが改善する。ギターをチューニングするようなものである。楽器を書き換えるのではなく。 Ralph LoopはGreenfield(ゼロから作る)プロジェクト向けの手法である。作者自身こう言っている: 「既存のコードベースにRalphを使うつもりは毛頭ない」。期待値はおよそ90%まで到達することである。 登場背景Ralphの作者であるGeoffrey Huntley氏は、3年前と比べてソフトウェアの開発アプローチが根本的に変わったと述べている。標準的なソフトウェア開発は、レンガを1枚ずつ積み上げるように垂直に構築することである(ジェンガのようなもの)。しかし、彼はもはやすべてをループとして捉えている。
この変化は、既存のワークフローをAIで加速することではない。作業の単位が変わったのである。コードを1行ずつ書く代わりに、ループ自体をプログラムする——コンテキストの割り当て、ゴール、反復、である。 Ralphの最初の投稿当時、多くの人がマルチエージェント、エージェント間通信、マルチプレクシングに取り組もうとしていた。彼の主張は、それは不要だということである。マイクロサービスとその複雑さを考えろ。さらに、そのマイクロサービス(エージェント)自体が非決定論的だとどうなるか。マイクロサービスの反対はモノリシックなアプリケーションである。単一プロセスが垂直にスケールする。Ralphはモノリシックである。単一リポジトリで、単一プロセスとして、1ループに1タスクを実行する。 より広い文脈として、作者は従来のソフトウェア開発は終わったと主張している。ソフトウェアはハンバーガー店員の時給より安く開発でき、AFK(Away From Keyboard、席を外している)間に自律的に構築できる。これは誇張ではない。Ralphループだけで、LLMの学習データに存在しない全く新しいプログラミング言語(CURSED)を構築して実証している。 最小構成必要なものは次の3つだけである。
これがシステムのすべてである。フレームワーク不要、オーケストレーション層不要、マルチエージェント基盤不要。パワーは反復とプロンプトから生まれる。複雑さからではない。 実践: 実行の流れ実際にプロジェクトを動かす場合の全体像は以下の通りである。 ファイル構成
手順
3フェーズの構造
各フェーズで使うプロンプトが違うが、実行機構(ループ)は同じである。 ループの運用ループは自動で回り続ける。 運用の流れ:
モードの切り替え(計画 → 構築)も同じく、止めてからプロンプトファイルを差し替えて再開する。 作者の言葉: 「ループを観察することが重要である。そこがあなたの成長と学習の源になる。失敗ドメインを見たら、エンジニアの帽子をかぶり、それが再び起こらないよう問題を解決せよ。」 コア原則1ループ1タスクこれが最も重要なルールである。各ループ反復でLLMはちょうど1つのことだけを行う。プロンプトには「最も重要なものを選べ」と指示する。何を最も重要と考えるかはLLMが決める。 極端に聞こえるかもしれないが、これは制約から来る。使えるコンテキストウィンドウは約170kである。1つのループでやろうとする量が多いほどコンテキストを消費し、結果が悪くなる。 マルチエージェントではなくモノリシックRalphは単一リポジトリ内で単一プロセスとして動作する。エージェント間通信、マルチプレクシング、マイクロサービス風の分解は不要である。LLMの非決定論性を考えると、この段階でのマルチエージェント調整は最悪のカオスである。 LLMに優先順位を委ねるRalphが最も重要な実装対象を決定するのを信頼する必要がある。LLMは次のステップを推論することに驚くほど特化している。これは完全なハンズオフのバイブコーディングであり、あなたが「責任あるエンジニアリング」と考える境界を試す。 プロンプトとチューニング完璧なプロンプトは存在しない作者は明確に述べている。「プログラミングコミュニティには完璧なプロンプトへの執着がある。そのようなものは存在しない。」 CURSEDのプロンプトは、LLMの行動を観察しながら継続的にチューニングされた結果である。ループが動いている間にストリームを見て、悪い行動のパターンを探す——それがチューニングの機会である。 チューニングのプロセス: 遊具の比喩
各失敗モードが新しい指示(「看板」)になる。最終的にRalphが考えるのはすべて看板であり、もはや欠陥を感じさせない新しいRalphになる。 ループの外に居るRalphの効果を最大限に引き出すためには、人間の役割が「ループの中で作業する」から「ループの上から観察する」に変化する。
観察すべき一般的な失敗モード
コンテキストウィンドウ管理制約使えるコンテキストウィンドウは約170kである。すべてのツールコール、評価、結果がこれに加算される。使用量が多いほど結果が悪くなる。 サブエージェントによるコンテキスト拡張解法は、プライマリコンテキストに割り当てないことである。代わりに、高コストな作業にはサブエージェントを生成する。プライマリコンテキストはスケジューラとして機能し、以下をサブエージェントに委譲する。
並列度の制御サブエージェントの並列度は制御できる。検索やファイル書き込みには多数を並列に使えるが、ビルド/テストのような高コストな検証作業には1つのサブエージェントに限定する。同時に大量のビルド/テストを走らせるとリソース競合で結果が信頼できなくなるためである。
コード検索の非決定論コーディングエージェントは
生成と検証Phase 1: 生成コード生成は安くなった。何が生されるかは2つのメカニズムで制御する。
LLMが完全に間違ったものを作っている場合、仕様自体が誤っている可能性が高い。作者は、lexerの仕様が1つのキーワードを2つの相反するシナリオに対して重複定義しており、多くの時間を無駄にしたと述べている。 Phase 2: バックプレッシャー生成は簡単である。正しさを保証することが難しい。無効な出力を却下するメカニズム、すなわちバックプレッシャーが必要である。 バックプレッシャーの選択肢:
重要な制約: ホイールは速く回らなければならない。反復速度が命である。Rustは優れた型システムを持つがコンパイルが遅い。動的型付け言語は速いが、静的アナライザを組み込む必要がある(例: ErlangならDialyzer、Pythonならpyrefly)。 テストの重要性を記録する各ループは新しいコンテキストウィンドウから始まるため、LLMはテストがなぜ存在するかを覚えていない。その場でテストの重要性を文書化するよう指示する必要がある。
これは未来のLLM反復に向けたメモを残すようなものである。LLMがテストを削除する、変更する、あるいは失敗を解決するかを決める際に影響する。 プレースホルダー禁止LLMにはコンパイラを満足させるだけの最小実装へ向かう内在的なバイアスがある。これを明示的に打ち破る必要がある。
初期のループでこれが無視されても動揺するな。モデルは報酬関数(コンパイル成功)を追うように訓練されている。より多くのループを実行してプレースホルダーを特定・置換する。 TODOリストTODOリスト(実践では 計画モード専用Ralphループがコードベースと仕様を研究し、未実装項目の優先順位付きリストを生成または更新する。
構築モード別のRalphループがTODOリストを読み、最も重要な項目を選び、実装する。実装後、TODOリストを更新する。 TODOリストの再生成TODOリストは聖なるものではない。作者はCURSEDの構築中に複数回削除した。これは異常ではなく通常運転である。 再生成のタイミングの目安:
再生成のコストは計画モードを1回回すだけである。Ralphが同じところで回り続けるコストよりもはるかに安い。 自己改善Ralphは自身の動作環境を改善できる。
原則: 「RalphがLLMに戻って自己評価できる形でプログラムする。」 運用上の注意点壊れたコードベースに気づくこれは避けられない。ある時点でコードベースはコンパイルできなくなり、Ralph自身が直せない。選択肢は2つある。
これは判断の問題である。作者は両方実践してきた。 最終整合性を信じるRalphで構築するには信念が必要である。個別のステップが間違えていても、系全体が収束すると信じる。ギターのチューニングに似ている——1回の調整で音取りが完璧になるわけではないが、毎回近づいていく。 出力の3つの状態
保守性
エンジニアは依然として必要
スキルは移った。コードを書くことではなく、ループをプログラムすること——コンテキストエンジニアリング、仕様作成、チューニング。 Ralph Loopの向かう先Ralph Loopは単なる技術ではなく、マインドセットである。作者の進化:
作者の提唱: 自分自身のコーディングエージェントを作れ(LLMトークンをループに投げる300行のコード)。それによって新しいコンピュータをプログラムする方法を学べ。LLMは新しい形態のプログラマブルコンピュータである。 📚 参考文献 | |
| PENGUINITIS | |