AIエージェントのループ:自己修正するコーディングエージェントはこうして仕事をやり切る
AIエージェントのループは、プロンプトして直すという作業を自己修正のサイクルに変えます。エージェントが計画を書き、それを実装し、計画と照らして自分の仕事をレビューし、完了するまでループする。Claude Code、Codex、Gemini CLI、Cursor、そしてRalph loopでこのループがどう動くかを解説します。
多くの人がいまだにAIコーディングエージェントを使うやり方は、卓球のラリーに似ています。あなたがプロンプトを打つ、エージェントが答える、あなたがおかしいところを見つける、また打つ。修正エンジンはあなた自身で、毎ターンずっとループの中に座っているわけです。
ループはこれをひっくり返します。あなたは欲しいものを説明する。エージェントが作業に取りかかり、自分でチェックリストを書き、自分の弱点を見つけ、結果が筋の通ったものになるまで何度もやり直す。あなたはミスを拾う存在ではなくなります。エージェントが自分のミスを自分で拾うのです。
この転換はハイプではありません。これらのツールを作った人たち自身がこれに頼っています。Claude Codeの生みの親であるBoris ChernyとCat Wuは、エージェントループでコードを書くことを語っています。「Ralph loop」と名付けたGeoffrey Huntleyは、夜通しシンプルなwhileループでエージェントを回しています。このパターンには今や名前がついていて、Instagramで見かけた3つのプロンプトをコピーする前に理解しておく価値があります。
プロンプトのラリーからループへ
単発のプロンプトは一発勝負です。あなたが尋ね、答えを得て、そのやり取りは終わる。それを良くするには、ズレに気づいてまたプロンプトを打つしかありません。これを本物の機能の規模にまで広げると、何十回もの細かい修正を手作業でこなすことになります。
AIエージェントのループは、そのズレをエージェントの内側で閉じます。あなたが目標を決めると、エージェントが計画し、行動し、結果を見て、修正する、これを目標に届くまで何度も繰り返す。あなたが消えるわけではありません。最後にレビューします。ただ、もう毎イテレーションのボトルネックではなくなるのです。
プロンプトのラリーは毎ターンあなたをループに入れる。本物のループはそこにエージェントを入れる。
AIエージェントのループとは実際のところ何か
どのエージェンティックループも、同じ4拍子で回ります。計画する、行動する、観察する、修正する。エージェントは次の一手を決め、それを実行し(コードを書く、コマンドを走らせる、ファイルを読む)、何が起きたかを読み取り、調整する。Claudeはコードを書き、テストを走らせ、失敗を目にし、それを直し、もう一度テストを走らせる。このフィードバックこそが仕掛けのすべてです。これがあるからこそ、ループは単なる繰り返しではなく自己修正になります。
このループの最も強い形は、その拍子を3つの役割に分けます。計画する者、実装する者、レビューする者。これらを分けておくことが、エージェントが自分の答案を書いたその口で自分で採点してしまうのを防ぎます。
今日からコピーできる3コマンドのループ
これが今あちこちで出回っている構成を、3つのClaude Codeスラッシュコマンドとして組み直したものです。それぞれを一度ずつ貼り付けると、エージェントがコマンドを作ります。あとは順番に走らせるだけです。
計画役、/spec:
私が何を求めているのか完全に理解できるまで、一度に一問ずつインタビューしてほしい。
そのうえで specs/project.md に正確な計画を書く:目的、厳密な要件、エッジケース、
そしてスコープ内とスコープ外。
短く鋭くまとめる。長編小説にはしない。
実装役、/build:
specs/project.md を読んで、そこに書かれていることをそのまま実装する。それ以上は何もしない。
終わったら、計画にあるすべての要件を列挙し、どれをカバーしたかを示す。
レビュー役、/review:
作られたものを specs/project.md と要件ごとに突き合わせる。
それぞれについて、カバーされているかどうかを述べる。必要な修正を書き出し、
それを /build に戻す。計画全体がカバーされたときだけ承認する。
3つのコマンド、1つのループ。specが計画を書き、buildがそれを実装し、reviewが計画と照らしてチェックして修正をbuildに戻す。すべての要件が満たされるまで回り続けます。
計画こそが信頼できる唯一の基準。レビューは実装をその計画と照らして測る。雰囲気と照らすのではない。
これは内部的にはspec-driven coding(仕様駆動コーディング)です。チャット履歴ではなく、書かれた仕様こそがエージェントを律する基準になります。GitHubのオープンソースであるSpec Kitは、/specify、/plan、/tasks、/implementで同じ考え方を形式化していて、Claude Code、Copilot、Cursor、Codex CLI、Gemini CLIのいずれでも動きます。
新しいコンテキストがループを機能させる理由:Ralph loop
Geoffrey Huntleyは2025年半ばに、この考え方の最も身も蓋もない形に名前をつけました。Ralph loopです。発想はこうです。書かれた仕様に対してエージェントに同じプロンプトを与えるシンプルなシェルループで、エージェントにタスクを1つ選ばせて出荷させ、それからまっさらなコンテキストの新しいエージェントを立ち上げて、まったく同じプロンプトをもう一度与える。
while 残タスクがある; do
agent --prompt "todo.md の次のタスクに取りかかる" --non-interactive
done
直感に反する部分は、コンテキストのリセットです。長いセッションは腐ります。ウィンドウは古い推論、行き止まり、古びたファイルの中身で埋まっていき、モデルは静かに指示を取りこぼし始めます。Ralphの各イテレーションは新しいエージェントで、現在のリポジトリとtodoリストをディスクから読み、1単位の作業をこなし、コミットし、きれいに終了します。HuntleyはこれをわざとSimpsonsのキャラクターにちなんで名付けました。あまりに間が抜けて機能しそうに見えないのに、機能するのです。長いセッションがハルシネーションを起こし始めるのを見たことがあるなら、なぜまっさらなウィンドウが膨れ上がったウィンドウに勝るのか、もうわかっているはずです。
Claude Codeの /loop と /goal
Claude Codeはループのプリミティブを直接備えています。/goalは持続する最終状態、つまり「完了」がどんな状態かを設定し、Claudeは各パスのあとで、ただ次のステップを走らせるのではなく、その目標に照らして進捗を評価します。/loopはタスクを一定の間隔で、あるいはある条件が満たされるまで繰り返します。/loop every 10mや/loop until: <condition>といった形があります。両者を組み合わせると、自分で方向を定め、自分で終わるループができます。Claudeは現在の状態と目標の差分に取り組み、目標が満たされるか、あなたがCtrl+Cを押したときに止まります。
ここで効いてくる細部があります。ループは連続性を保ちます。何を試して、なぜ失敗したかを覚えているので、各パスは前のパスの上に積み上がり、同じ行き止まりを繰り返しません。これはRalphのクリーンなコンテキストのリセットとはちょうど逆のトレードオフで、どちらも正しい。締まった自己修正には連続性を、ウィンドウが腐ってきたときには新しいコンテキストを。どちらを手に取るべきかを知ることが、本当のスキルです。
同じループが、どのプロバイダーにも
ループはClaudeの機能ではありません。業界全体が向かっている方向です。名前は違っても、形は変わりません。
| ツール | ループの仕組み | 自己修正のしかた |
|---|---|---|
| Claude Code | /goal + /loop | 持続する目標。各パスで差分を評価し、満たされたら止まる |
| Codex CLI | /goal | OpenAIによる「Ralph loopへの回答」。届くまでターンをまたいで目標を生かし続ける |
| Gemini CLI | エージェンティックなplan-act-observe | 計画し、編集し、チェックを走らせ、ステップごとの承認なしに自己修正する |
| Cursor | エージェントモード | ステップを計画し、ファイルを編集し、コンパイラを走らせ、壊したものを直す |
| Spec Kit(任意のエージェント) | /specify /plan /tasks /implement | 仕様がループ全体を通じて信頼できる唯一の基準 |
| Ralph / autoloop | シェルのwhileループ | 書かれた仕様に対してイテレーションごとに新しいエージェント |
Codex CLIは公の場でループを最も遠くまで押し進めました。OpenAIのチームはその/goalを、自分たちのRalph loopへの回答として位置づけ、a16zのAndrew Chenはデバイスドライバの作業でそれを夜通し、14時間ぶっ続けで介入なしに走らせました。彼はまた、それが「トークン消費を1万倍にする」とも指摘しています。これは、エージェントに半日かけてゴリゴリ作業させることの正直なコストです。
落とし穴:ループはすべてを増幅する
ループは良いアウトプットだけを増幅するのではありません。悪い計画も増幅します。自己修正するエージェントを曖昧な仕様に向ければ、それは自信たっぷりに間違ったものを作り、同じ曖昧な仕様に照らしてレビューし、承認します。計画こそがてこです。鋭い仕様は10回分のプロンプトを節約し、ぼんやりした仕様は100回分を無駄にします。
注意すべき失敗モードが2つあります。コストが暴走すること。各イテレーションがトークンを消費し、目標が不明瞭なまま上限のないループは、大量に消費しかねません。そしてループが永遠に回り続けること。勝利を宣言してしまったり、決して満たせない目標を追い続けたりする。境界を設けましょう。明確なuntil条件、トークンの上限、あるいはマージ前の人間によるチェックポイント。止まらないループは自律ではありません。暴走です。
艦隊全体でループを回す
自己修正するエージェントが1つだけなら、子守は簡単です。てこが効いてくるのは、複数を同時に走らせ、それぞれが自分のタスクでループするときで、まさにそこがターミナルを見張る方式がスケールしなくなるところです。
それこそAgentsRoomが作られた目的です。これはマルチエージェントのコックピットです。各エージェントには役割があり、ライブのステータスドットと固有の色を持ち、艦隊全体を1つのウィンドウから監督できます。バックログにチケットを置けば、エージェントがそれを拾い、plan-build-reviewのループを回し、きれいなdiffを返してくれます。これが実践としてのspec-driven AIコーディングです。チケットが仕様、エージェントがループを回し、あなたが結果をレビューする。
長いループはコンテキストを腐らせるので、AgentsRoomはそれを見張ります。各エージェントは毎ターンの終わりに一行のステータスを書き、エージェントがそれを2ターン続けて更新しなくなると、警告が表示され、クリーンなコンテキストでのワンクリック再起動が出ます。Ralph loopが頼りにしているのと同じ、まっさらなウィンドウへのリセットです。その仕組みはコンテキストドリフト検出のページで読めます。
そしてループはプロバイダーに依存しないので、あなたは1社に縛られません。あるチケットはClaude Codeで、次はCodexで、また別のはGemini CLIで、すべて同じダッシュボードの中で走らせられます。それぞれが自分のgit worktreeの中でループするので、並行するエージェント同士がぶつかることはありません。ログオフする前に走らせておき、朝になってdiffをレビューする。それこそがバックグラウンドのコーディングエージェントと夜勤シフトの狙いのすべてです。
目標を一度決め、ループにそれを閉じさせ、最後にレビューする。AgentsRoomをダウンロードして、プロバイダー互換性マトリクスを確認し、エージェントごとのレビューとマルチプロバイダー対応についてもっと読んでみてください。
AgentsRoomをダウンロード
あなたのAIエージェント(Claude、Codex、OpenCode、Gemini CLI、Aider)を単一のウィンドウから実行します.
コンパニオンアプリ:外出先でもエージェントを確認
Claude、Codex、Gemini CLI、またはその他の AI プロバイダーを使用します。
バグや要望を公開バックログに直接送信できます。
実際の AgentsRoom の様子。