Claude Codeを一晩中動かす:2026年のループエンジニアリングとRalph Loop
MarkdownClaude Codeを自律ループで動かす方法:Ralph Loop、/loop、/goal、/batch。すぐに使えるシナリオと、2026年にトークンを使い切らないための対策。
記事の全文を読む
重要なポイント
ループエンジニアリングとは、毎回手作業でClaude Codeにプロンプトを入力するのではなく、ループを構築するアプローチです。ループはタスクを受け取り、手順を一つ進め、結果を確認し、自ら続行するか停止するかを判断します。このガイドでは、最初のRalph Loopを一晩で設定し、毎日役立つようにする方法を紹介します。
Ailootの参考ドキュメント:ailoot.ai/docs/。
ループエンジニアリングとは何か、なぜ気にかけるべきなのか?
重要なポイント
ループエンジニアリングは、あなたの役割を変えるものです。以前は、エージェントに「Xをして、Yを直し、Zを確認して」とプロンプトを入力していました。今は、それをループで実行する小さなシステムを書きます。タスクを渡し、結果を受け取り、確認し、次に何をするかを判断するシステムです。あなたが入力を止めても、エージェントは成果を出し続けます。
この原則は、エージェントにプロンプトを入力する役割を自分から置き換えることです。代わりに、その役割を担うシステムを設計します。
この考え方を説明する投稿では、別の開発者によるバイラルな投稿(2026年6月8日)も引用されています。
もう一つの発言が、その規模を示しています。
こうした発言の背景には、新しいエンジニアの役割があります。キーボードを操作する人ではなく、ループの設計者になるのです。
今日一度作れば、毎日リードが増え、記事が自動で公開され、ボットがやり取りを処理し、午前9時までに指標レポートが届きます。あなたが構築すれば、あなたがいなくても毎日動き続けます。
今もClaude Codeを開き、プロンプトを書き、待ち、読み、またプロンプトを書いているなら、2026年最大の変化を見逃しています。モデルは、監督なしでループ内の作業を行えるほど強力になりました。
Ralph Loopと通常のClaude Codeへの依頼の違い
重要なポイント
通常のClaude Codeへの依頼は一度きりです。「Xをして」と入力すると、Claudeが実行してチャットは終わります。Ralph Loopも同じことをしますが、ループ内で実行します。Claudeが終了しようとするたびにフックが終了を捕捉し、プロンプトを再び渡します。Claudeがすでに作成したファイルは残るため、新しい反復はそれまでの作業を土台にします。完了シグナル(Claudeが「DONE」という語を出力すること)を受け取るか、反復回数の上限に達すると、ループは停止します。
エージェントを囲む単純なbashループが、この手法の核です。
この一連の動きのきっかけとなった元のコードは次のとおりです。
while :; do cat PROMPT.md | claude-code ; done
ファイルに一つのプロンプトを置き、その周囲を無限ループで囲みます。そして、作者による最も率直なコメントは次のとおりです。
Anthropicは同じロジックをralph-loopプラグイン、およびClaude Codeの/loop、/goal、/batchコマンドとして提供しています。スクリプトなしで、ターミナルからすぐに利用できます。Anthropicが無限にプロンプトを再入力するプラグインを公開したことを受け、これがモデルに対して公平かどうかをめぐってGitHub Issue #23084で議論が起きました。議論は続いていますが、プラグインは動作します。
Claude Codeに組み込まれた3つのコマンド:/loop、/goal、/batch
重要なポイント
Claude Code v2.1+には、自律性のレベルに応じた三つのコマンドがあります。/loopはタスクを一定間隔(毎時、毎日、監視など)で繰り返します。/goalは評価モデルが「完了」と判定するまで、ターンごとに作業します。/batchは複数のworktreeエージェントを使い、大規模な機械的変更を実行します。それぞれに適した用途があります。
| コマンド | 使用する場面 | バージョン | 上限 |
|---|---|---|---|
/loop 30m <prompt> | 一定間隔で繰り返す(監視、ポーリング) | v2.1.72+ | 7日間、1セッションあたり50タスク |
/goal <condition> | 目標を達成するまで作業する(検証パターン) | v2.1.139+ | 条件は最大4000文字 |
/batch <change> | 並列で機械的なリファクタリングを行う | v2.1.63+ | 各単位に専用のgit worktreeを割り当てる |
/goalはRalph Loopに最も近いコマンドです。内部では評価モデル(デフォルトはHaiku)が各ターンで目標の達成状況を確認します。未達成なら、次の反復で具体的な修正点を示します。達成済みなら停止します。/goalについては、Claude Codeを/goalで一晩中自律実行する方法のガイドで詳しく説明しています。14時間分のすぐに使えるシナリオも掲載しています。
/batchはあまり知られていませんが、強力なコマンドです。100以上のファイルに同じ変更(APIの移行、コンポーネントの置換、名前変更など)を行うとき、/batchは各ファイルを専用のgit worktree内にある別々のサブエージェントに渡します。各エージェントは隔離されたコピーで作業するため、変更は衝突しません。サブエージェントについては、ネストされたサブエージェントのガイドを参照してください。
著者の説明では、このアプローチは単に次のように呼ばれています。
/loopと/goalの厳格な上限は次のとおりです。
- タスクはClaude Codeを開いている間だけ実行されます。ターミナルを閉じるとループも終了します。本格的な夜間サイクルには、リモートサーバーか独自のシェルラッパーを使ってください。
- 繰り返しタスクの最長期間は7日間です(忘れられたループへの対策として、その後は自動削除されます)。
- 1セッションあたり最大50個の同時タスクを実行できます。
Claudeを信頼できる存在にする仕組みを作りたいですか?Ralph Loopはその一部にすぎません。AIクローン+Second Brain+Context Engineeringという三つの要素をすべて考慮するとよいでしょう。この組み合わせにより、Claudeは「幻覚を見るアシスタント」から、仕事を任せて自分の用事に戻れるツールになります。
5分で最初の自律ループを開始する方法
重要なポイント
最も手早く始める方法は、組み込みの/goalを使うことです。Claude Codeを開き、目標と検証可能な停止条件を指定してコマンドを入力し、自分の用事に戻ります。Claudeはコードを生成し、テストを実行し、エラーを読み、修正して、テストに合格するまで再実行します。
5つの手順です。
Claude Codeでプロジェクトを開く
ターミナルでプロジェクトのルートに移動し、
claudeを実行します。ClaudeがCLAUDE.mdを読み、リポジトリのインデックスを作成するまで待ちます。目標と停止条件を定義する
目標は、達成する必要があることです。停止条件は、Claudeが終了を判断する方法です。理想的には、0か1を返すコマンドにします。例:「目標:
tests/api/*.test.tsにある23個のテストすべてに合格する。pnpm testが終了コード0を返したら停止。」/goalを実行する
コマンド:
/goal All tests in tests/api/*.test.ts must pass. Run pnpm test, read the errors, fix them, and run it again. Stop when the exit code = 0. Maximum 20 iterations.Claudeがループを開始します。テストを実行し、失敗を確認し、ファイルを開いて修正し、再びテストを実行します。
予算の上限を設定する
バックグラウンドのタブで
/usageを使い、使用量を監視します。一つのループで残高を使い切らないよう、その日のトークン数または金額の上限を設定してください。詳しくはClaude Codeの上限を使い切らない方法のガイドをご覧ください。自分の用事を済ませる
30分後に戻ってきてください。タスクが単純なら、「DONE、すべてのテストに合格しました」と表示されているでしょう。もっと複雑なら、「20回目の反復で停止、理由X」というレポートを読みます。ループでできなかった部分を手作業で修正してから、再開してください。
その内部には、検証パターンを組み込んだ適切なループがあります。
検証パターン:Claudeがループ内で自分の作業を確認する方法
重要なポイント
Claudeには常に、自分の作業を確認する方法を与えるべきです。確認手段がないと、ループ内のエージェントは幻覚を起こし始めます。すべてが壊れているのに、タスクは完了したと判断してしまいます。検証器とは、曖昧さのない「完了/未完了」を返すコマンド(テスト、lint、評価モデル、独自チェック)です。
検証器には三つの種類があります。
1. 技術的な検証(終了コード)—最も信頼性があります。pnpm test、npm run lint、tsc --noEmit、playwright testなどです。解釈する必要はなく、0か1を返します。/goalも同様に動作します。内部ではHaiku評価モデルを使い、条件が満たされたかを各ターンで確認します(最大4000文字)。
2. 評価モデル—別のモデルが最初のモデルの結果を見て、評価基準に照らして採点します。形式的な確認ができないタスク(「文章のスタイルは良いか?」「デザインはブランドに合っているか?」)に適しています。Anthropicでは、これをClaude Code Reviewと呼びます。別のレビュアーエージェントがメインエージェントの作業を確認し、ロジックエラー、エッジケース、セキュリティ問題を探すモードです。Anthropicの社内データによると、大規模なPRで84%の問題を発見します(ベースライン方式の16%から向上)。
3. 独自チェック—自分で書くシェルスクリプトです。「ログにERRORという語がなければ完了」「ファイルoutput.jsonが存在し、解析可能なら完了」「/pricingページが200を返せば完了」などです。
各フェーズの後に、Claudeが個別に敵対的な視点で確認するスキルを組み込みます。CLAUDE.mdやコマンドに記載するプロンプトのテンプレートは次のとおりです。
このプロジェクトがひどい状態になった可能性がある理由を10個挙げてください。
何か問題が起きたという前提に立ってください。
このストーリーは、公開する前に何度でも検証できます。
自律ループの予算上限と停止条件
重要なポイント
自律ループの失敗の多くは四つのパターンに当てはまります。検証器がなく、エージェントが自分で完了を判断する。予算上限がなく、ループが一晩で大きな金額を使い切る。反復間の状態がなく、判断が互いに矛盾する。停止条件が曖昧で、ループがいつ止めるべきかわからない。
夜間ループに欠かせない三つのブレーキは次のとおりです。
1. 反復回数の上限。 --max-iterations 20。検証器が作動しなくても、ループはN回を超えて実行されません。20回の反復後も停止条件に達していなければ、タスクは行き詰まっており、人の介入が必要です。
2. トークンまたは金額の上限。 /usage limit 50—1日あたり$50以下です。上限に近づくと、ループは自動で停止し、アラートを送ります。これは予算超過を防ぐのに役立ちます。
3. 前提を明示した進捗チェック。 以下のHEAD比較が検出するのは新しいコミットで、コード変更のすべてではありません。隔離したworktreeで、コードを変えた反復ごとに比較前のローカルチェックポイントコミットを作る場合だけ使ってください。有用な未コミット編集はHEADを変えないため、その運用なしでは誤って停滞と判定する可能性があります。検証器の結果も保持してください。新しいコミットは変更の記録を示すだけで、改善や合格を証明しません。
この三つのチェックを備えたラッパー構成の例です。費用の取得とエージェント起動の行はランナーごとの例であり、検証済みのCLI導入手順ではありません。応用する前に、インストール済みバージョンでそのインターフェースを確認してください。コミットに基づく進捗検査には、コード変更の反復ごとにローカルチェックポイントコミットが必要です。ランナーが未コミットの編集を残す場合は、「進捗なし」と呼ばずに停止して確認します。
#!/bin/bash
PROMPT="$1"
MAX_ITER=20
MAX_COST_USD=50
COMPLETION="DONE"
PREV_HASH=""
STAGNATION=0
for i in $(seq 1 $MAX_ITER); do
# 金額の上限
CURRENT_COST=$(claude usage --json | jq '.cost_usd')
if (( $(echo "$CURRENT_COST > $MAX_COST_USD" | bc -l) )); then
echo "STOP: 予算上限$MAX_COST_USDに到達"
break
fi
# 実行
OUTPUT=$(claude code -p "$PROMPT" --auto-accept)
# 完了の確認
if echo "$OUTPUT" | grep -q "$COMPLETION"; then
echo "STOP: 完了シグナル"
break
fi
# コミットによる進捗のみ検査。コード変更の各反復でコミットを作ること。
# HEADでは有用な未コミット編集を検出できない。
CURRENT_HASH=$(git rev-parse HEAD 2>/dev/null)
if [ "$CURRENT_HASH" = "$PREV_HASH" ]; then
STAGNATION=$((STAGNATION + 1))
if [ "$STAGNATION" -ge 3 ]; then
echo "STOP: 3回の反復で停滞"
break
fi
else
STAGNATION=0
fi
PREV_HASH="$CURRENT_HASH"
done
この骨組みを拡張する前に進捗チェックを検証してください。コミットなしの編集は未記録の作業として扱い、チェックポイントコミットでHEADが変わることを確かめます。成功を判定できるのは別の検証器だけです。3回続けて同じコミットなら、上の運用を前提に「記録された変更なし」といえるだけで、作業ファイルがすべて不変だった証明ではありません。このひな形には、停止時のSlack通知、朝の自動Telegramレポート、予算の80%に達したときのプッシュ通知を追加できます。原則は変わりません。ループに必要なのはアクセルだけではなくブレーキです。
すぐに使える夜間ループのシナリオ5選
重要なポイント
すべてのタスクが自律ループに適しているわけではありません。反復可能で明確な検証器があるタスク(テスト、リファクタリング、監視、記事のパイプライン、データのインポート)は有望です。形式的な確認手段がないタスクや、主観的な基準が複数あるタスクは適しません。
シナリオ1:失敗しているテストを成功させる
/goal There are 47 failing tests in the tests/ directory. Goal: make them all pass.
Run pnpm test, read stderr, open the file with the error, fix it, and run pnpm test again.
Stop when exit 0. Max 30 iterations.
シナリオ2:200ファイルにまたがる大規模リファクタリング
/batch Replace the old apiV1 API client with the new apiV2 in all files under src/**/*.ts.
Each file gets its own worktree. After the replacement, run tsc --noEmit; fix any errors.
Merge the worktrees at the end.
シナリオ3:本番環境を一晩監視する
/loop 30m Every 30 minutes, check https://your-app.example.com/api/health.
If it doesn't return 200, read the logs, find the cause, fix it, and redeploy.
Log each iteration to /tmp/night-monitor.log.
シナリオ4:重複排除を行いながら大規模なデータセットをインポートする
/goal Import the CSV file /tmp/import.csv (12,000 rows) into the clients table.
For each row, check for a duplicate by email; if none, insert it; if one exists, update it.
Log conflicts to /tmp/conflicts.log. Stop when the last row has been processed.
シナリオ5:記事のパイプライン(典型的な設定)
SEO記事を定期的に必要とするオンラインサービスや代理店では、シナリオは次のようになります。
/loop 8h Every 8 hours: open the backlog file for topics with status 'queued'.
If a topic is available, run the skill for writing a guide.
Publish to dev. Change the status to 'review'. Notify the person responsible in Telegram.
シナリオ5は、夜間に自律ループを走らせる方法の一例です。各エージェントが独自のループで数千のエージェントを稼働させる場合も、数十にとどめる場合も、原則は同じです。
各反復に渡すもの:CLAUDE.mdとSecond Brainを状態として使う
重要なポイント
メモリがなければ、Claudeは反復のたびに一から始めます。プロジェクトを開き直し、ファイルを読み、前の反復での判断を忘れます。CLAUDE.mdがなければアーキテクチャを知りません。business/(Second Brain)がなければ製品の背景を知りません。スキルがなければ、あなたのルールや文体を覚えていません。反復間の状態は、この三つのファイル層で保持します。これらがなければ、5回目の反復までにループの質が低下します。
プロジェクトの「記憶」となる三つの層が、一度きりのプロンプトを制御されたループに変えます。
1. CLAUDE.md—プロジェクトの規約です。製品の内容、技術スタック、ルール、そして決してしてはならないことを記します。Claudeは各セッションと各ループ反復の開始時にこのファイルを読みます。これがないと、Claudeは毎回プロジェクトを「開き直す」必要があり、コンテキストを消費し、幻覚のリスクが高まります。すぐに使えるテンプレートと6つのルールは、CLAUDE.mdのガイドをご覧ください。
2. Second Brain—製品、読者層、目標、経済性、マーケティングに関する知識をまとめたフォルダです。コードではなく、意味を扱います。ループが記事を書いたり、サポートへの回答を探したりするとき、Second Brainを読み、何もないところからではなく、プロジェクトの背景を踏まえて応答します。
3. コンテキストエンジニアリング—各反復でClaudeに何を渡すかを決めることです。Second Brainのフォルダ全体でも、リポジトリ全体でもなく、関連するものだけを渡します。Plan Modeが役立ちます。Claudeはタスクに必要なファイルを判断し、それらだけを読みます。詳しくはPlan Modeのガイドをご覧ください。
失敗を重ねて身につけた、運用上の重要な原則は次のとおりです。
この三つの層が、この方法論の三本柱を形作ります。AIクローン(スキルとCLAUDE.mdを通じてClaudeに自分のスタイルとルールを教えること)、Second Brain(ファイルに保存したビジネス上の意味)、Context Engineering(各依頼で渡す情報)です。三つすべてがなければ、ループは請求額を増やしながら無限に繰り返すサイクルになります。
夜間に自律ループを実行する:複数のターミナルとセッション
重要なポイント
複数のターミナルタブをそれぞれ独自のgitチェックアウトで使い、さらにスマートフォンから複数のセッションを実行できます。各セッションに独自のタスク、検証器、ループを設定します。
各セッションでは何をするのでしょうか。異なるタスクです。一つのループはバグを修正し、別のループは新機能を書き、三つ目はチームのPRをレビューし、四つ目はパフォーマンスを最適化し、五つ目はドキュメントを準備します。何でもこなす一つの大規模な汎用エージェントではありません。それぞれが独自のスキル、目標、検証器を持つ、数十の専門エージェントです。
重要なのは、見方を切り替えることです。
プログラマーのいない起業家にとって、これは具体的な意味を持ちます。月額$200のClaudeアカウントと一般的なノートパソコンがあれば、サポート、記事、指標、新製品のテスト、競合の監視という5つのループを並行して開始できます。それぞれがClaude Codeの独自のタブで動きます。朝には要約を読みます。これはすでに2026年夏の働き方の標準です。
自律ループでよくある4つの失敗
重要なポイント
自律ループの失敗の多くは四つのパターンに当てはまります。検証器がなく、エージェントが自分で完了を判断する。予算上限がなく、ループが一晩で予算を使い切る。反復間の状態がなく、判断が互いに矛盾する。停止条件が曖昧で、ループがいつ止めるべきかわからない。
失敗1:「幻覚ループ」
検証器が作動していないのに、エージェントが完了したと判断します。あるいは、そもそも検証器がありません。3時間後、Claudeは「すべて完了しました!」と言います。しかし、テストは失敗し、ページは開かず、何も動きません。無意味な反復にすでに$80を使っています。
対策:口頭での確認ではなく、厳格な検証器(コマンドのexit code)を使います。
失敗2:「一晩で予算を使い切った」
予算上限がないと、ループは予算を使い切るおそれがあります。安全ピンのない手榴弾のようなものです。
対策:/usage limitを使うか、claude usage --jsonを使う外部スクリプトで、しきい値に達したときにループを止めます。
失敗3:「反復間でコンテキストを失ったループ」
1回目の反復で、Claudeはアーキテクチャ上の判断をしました。7回目にはそれを忘れて、反対の判断をしました。15回の反復後、コードは寄せ集めになっています。
対策:CLAUDE.mdとSecond Brainフォルダを使った状態レイヤーを設けます。ループはアーキテクチャ上の判断をファイルに書き込み、次の反復でそれを読みます。
失敗4:「停止条件が不正確で、ループが永遠に動く」
/goal "ページを美しくする"—「美しい」とは何でしょうか。曖昧さのない指標がなければ、ループは停止しません。反復回数か予算の上限に達するまで動き続けます。
対策:停止条件は必ず測定可能でなければなりません。「美しい」ではなく、「Lighthouse Performance ≥ 90、Accessibility ≥ 95」とします。「動く」ではなく、「tests/pricing.test.tsのテストに合格する」とします。
ループエンジニアリングが不要な場合
重要なポイント
ループエンジニアリングは、反復可能で検証可能なタスクのためのツールです。一度きりの創作タスク、形式的な検証器がないタスク、主観的な評価を必要とするタスクには不要です。この手法を知ることより、その限界を知ることのほうが重要です。
自律ループに適さないタスクは次のとおりです。
- 一度きりの創作タスク。新製品のウェブサイトを一つ作る、ロゴを一つ作る、戦略メモを一つ作る、といったタスクです。ここでループを使うのは大げさです。一つのプロンプトを書いて、結果を手作業で調整するほうが簡単です。
- 検証器のないタスク。停止条件を終了コードや明確なシグナルで表せないなら、ループを始めないでください。さもなければ、終わりのない火の海になります。
- 主観的な評価が必要なタスク。「もっと自然な表現にする」「UXを改善して、もっと快適にする」といったタスクには、ループではなくあなたが必要です。
- 新しく、なじみのない分野。自分でも「完了」がどういう状態なのか理解していないなら、Claudeをループで動かさないでください。まず理解してから自動化します。
そして、失敗から学んだ大切なルールは次のとおりです。
ループを始める前の重要な問いは、Claudeが完了したとわかる方法を一行で説明できるか?です。できるなら、ループが役立つ可能性があります。できないなら、まず検証可能な条件を定義してから始めましょう。
出典
- Ralph Loop Claude Plugin - Anthropic - 公式プラグイン
- Ralph Wiggum plugin on GitHub - Anthropic - ソースコード
- Claude Code Review - Anthropic blog - マルチエージェントによるPRレビューの研究プレビュー、発見率84%
- Documentation /goal - Claude Code Docs - コマンドの公式ドキュメント
- Documentation /loop scheduled tasks - Claude Code Docs - 公式ドキュメント
ループエンジニアリングは、Claude Codeについてすでに知っていることの上に重なるレイヤーです。まず必要なのは、三本柱であるAIクローン+Second Brain+Context Engineeringです。これらがなければ、5回目の反復までにループの質が低下します。ailoot.aiで、Ailootをさらにご覧ください。
詳細を見る
Claude Codeを一晩中動かす:2026年のループエンジニアリングとRalph Loop:よくある質問
HEADが変わらなくても、ループが進んでいることはありますか?
あります。HEADが示すのはコミットなので、作業ツリーへの有用な編集もコミット前は反映されません。この検出例は、コードを変えた反復ごとにローカルのチェックポイントコミットを作ることが前提です。その運用がなければ、停滞と決めずに停止して未コミットの作業を確認してください。
新しいコミットがあれば、ループが成果を改善した証拠になりますか?
いいえ。変更を記録した証拠にとどまります。チェックポイントと一緒に検証結果を残し、実際の合格条件を満たした時点で停止してください。ラッパー内の起動方法や費用取得のインターフェースは、使うランナーで事前に検証する必要があります。