10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIエージェントのループエンジニアリング徹底解説 ── 「プロンプトを打つ」時代の終わり

10
Posted at

「私はもうClaudeにプロンプトを打っていない。プロンプトを打って次に何をすべきか考えるループを走らせているだけだ。私の仕事はループを書くことだ」
── Boris Cherny(Anthropic Claude Code 責任者), 2026年6月

目次

  1. はじめに ── なぜ今「ループ」なのか
  2. ループエンジニアリングとは何か
  3. 設計思想の進化 ── 4つの階段
  4. エージェントループの土台 ── ReAct と Reflexion
  5. インナーループ vs アウターループ
  6. ループを構成する「5+1」の部品
  7. 代表的なループ実装の比較
  8. 安全に回すための4つの必須要素
  9. エンドツーエンドのループ設計例
  10. リスクと限界 ── ループが解決しないもの
  11. ベストプラクティスまとめ
  12. おわりに ── エンジニアの役割はどう変わるか
  13. 参考文献

1. はじめに ── なぜ今「ループ」なのか

2024年は「良いプロンプトを書く」ことが腕の見せどころでした。2025年は複数のAIエージェントを並列実行する時代。そして2026年6月 ── AIとの付き合い方に、もう一段の進化が起きています。

火付け役は3人の発言でした:

人物 所属 発言の趣旨
Peter Steinberger OpenClaw開発者(元)、OpenAI在籍 「もうエージェントにプロンプトを打つな。エージェントにプロンプトを出すループを設計しろ」(X投稿、約763万回表示)
Boris Cherny Anthropic Claude Code 責任者 「私の仕事はループを書くこと。IDEは6ヶ月前にアンインストールした」(Acquired Unplugged, 2026年6月2日)
Addy Osmani Google エンジニアリングディレクター 「Loop Engineering」と名付け、体系的にブログ記事で整理(2026年6月7日、84万回表示)

要するに 「人間がAIに逐一指示を出す」から「指示を出す仕組みそのものを設計する」 へのパラダイムシフトです。


2. ループエンジニアリングとは何か

定義

Loop Engineering(ループエンジニアリング) とは、AIコーディングエージェントに手でプロンプトを打つのをやめ、「エージェントにプロンプトを出し続けるループ(仕組み)」そのものを設計する考え方。

もう少し噛み砕くと:

  • 従来:人間がプロンプトを打つ → AIが応答 → 人間が次の指示を考える → 繰り返し
  • ループ:目的を一度定義 → 仕組みが自動でAIに指示を出し、結果を検証し、次のタスクを決定 → ゴールまで自走

cronとの違い

「ループ」と聞くとcronジョブを思い浮かべるかもしれません。実際、Claude Codeの/loopは内部でcronを使っています。しかし決定的な違いがあります:

比較項目 cron ループエンジニアリングの「ループ」
実行内容 毎回同じスクリプト モデルが状態を判断して次のアクションを決定
条件分岐 人間が書いたif文 モデル自身が推論
終了条件 固定スケジュール ゴール達成で自律的に停止
失敗時 エラーで停止 or 無視 失敗を観察し、修正して再実行
cron:  毎5分 → 同じスクリプト実行 → 完了

ループ: 状態を読む → モデルが判断 → 次のアクション実行
              ↑                              ↓
              └──── 結果を観察 ← ──── 成功? 失敗?
                     (未完了なら戻る)

3. 設計思想の進化 ── 4つの階段

AIとの付き合い方は、2023年から段階的に抽象度が上がってきました。

┌─────────────────────────────────────────────────────┐
│ [4] ループエンジニアリング (2026年6月〜)               │
│     仕組みが自律的にエージェントを動かし続ける          │
├─────────────────────────────────────────────────────┤
│ [3] ハーネスエンジニアリング (2026年初頭)              │
│     ツール・制約・検証ゲートなどの実行環境を設計        │
├─────────────────────────────────────────────────────┤
│ [2] コンテキストエンジニアリング (2025年)              │
│     モデルが見るトークン全体の情報環境を設計            │
├─────────────────────────────────────────────────────┤
│ [1] プロンプトエンジニアリング (〜2024年)              │
│     1回のプロンプトの質を最大化                        │
└─────────────────────────────────────────────────────┘
                  ↑ 抽象度が上がる

比較表

観点 プロンプトEng. コンテキストEng. ハーネスEng. ループEng.
最適化の対象 1つのプロンプト モデルが見るトークン全体 実行環境(ツール・制約・検証) 仕組み全体の設計
人間の役割 質問を書く人 情報環境を整える人 実行環境を構築する人 自走する仕組みの設計者
フィードバック 人間が判断 人間が判断 部分的に自動化 ループが自律的に判断
スケール 1対1の対話 1対1の対話 1エージェントの高品質化 複数エージェントの並列自走
再現性 低い(属人的) 中程度 高い 非常に高い
代表的な時期 〜2024年 2025年 2026年初頭 2026年6月〜

重要:これらは対立関係ではなくレイヤーの関係です。良いループは内部に良いプロンプト・コンテキスト・ハーネスを含んでいます。


4. エージェントループの土台 ── ReAct と Reflexion

ループエンジニアリングは空から降ってきた概念ではありません。その土台には、研究から生まれた2つの重要なパターンがあります。

ReAct(Reason + Act)

Princeton大学とGoogleの共同研究から生まれたパターンで、推論と行動を交互に繰り返すアーキテクチャです。

┌──────────────────────────────────────┐
│           ReActパターン               │
│                                      │
│   思考 (Thought)                     │
│     ↓                                │
│   行動 (Action)  ── ツール呼び出し     │
│     ↓                                │
│   観察 (Observation) ── 結果を受領    │
│     ↓                                │
│   思考 (Thought)  ← ここに戻る        │
│     ...                              │
│   最終回答 (Final Answer)             │
└──────────────────────────────────────┘

コーディングの文脈では:

  1. ゴールを理解する
  2. コードを書く
  3. コードを実行して出力(またはエラー)を観察する
  4. 何が間違っていたか推論する
  5. 修正して再実行する
  6. テストが通るまで繰り返す

Reflexion

ReActの発展形で、失敗を言語化して次の試行に活かすパターンです。

タスク実行 → 失敗 → 「なぜ失敗したか」を自然言語で振り返り
                          ↓
                  振り返りをメモリに保存
                          ↓
                  次の試行で振り返りを参照して改善

ループエンジニアリングでは、この Reflexion の考え方が 外部メモリ(SKILL.md や progress.txt) として実装されています。


5. インナーループ vs アウターループ

ループには 2つの層 があります。この区別を理解することが、ループエンジニアリングの核心です。

インナーループ(単一タスク内の検証ループ)

1つのタスクの中で、エージェントが自分の仕事を検証してから応答するサイクルです。

[ユーザー] 「auth.tsの失敗しているテストを直して」

❌ 弱いエージェント:
   ファイルを編集 → 「完了!」

✅ 強いエージェント:
   ファイルを編集 → テスト作成 → テスト実行 → 失敗を検知
        → エッジケースを修正 → 再実行 → グリーン確認 → 「完了!」

ポイント:両者ともまったく同じツールループ基盤を使っている。違いはモデルが検証ツールを呼ぶことを「選んだ」かどうか

アウターループ(セッション横断の学習ループ)

複数のセッションを跨いで、エージェントが過去の経験から学ぶサイクルです。

セッション1: ページネーション処理で失敗
    ↓
  SKILL.md に「ページネーションのベストプラクティス」を記録
    ↓
セッション2: 同様のタスク → SKILL.md を読んで最初から正しく処理
比較項目 インナーループ アウターループ
スコープ 単一タスク内 セッション横断
目的 タスクの信頼性向上 時間経過による改善
状態の保持 コンテキストウィンドウ内 永続ファイル(AGENTS.md, SKILL.md等)
現在の成熟度 多くのエージェントが対応 まだ発展途上

ループエンジニアリングは、この両方を設計の対象に含みます。


6. ループを構成する「5+1」の部品

Addy Osmani氏は、機能するループは 5つの構成要素 + メモリ でできていると整理しました。

全体像

┌───────────────────────────────────────────────────────────────┐
│                    ループエンジニアリング                       │
│                                                               │
│  ① 自動実行        ② ワークツリー      ③ スキル                 │
│  (Automations)     (Worktrees)        (Skills)                │
│  定期トリガーで     並列エージェントの   プロジェクト知識を        │
│  タスクを発見・起動  衝突回避            永続化                  │
│                                                               │
│  ④ プラグイン/       ⑤ サブエージェント  ⑥ メモリ                │
│    コネクター        (Sub-agents)       (Memory)               │
│  (Plugins)          作る役と検証役を     会話の外に状態を        │
│  既存ツールとの接続   分離               永続化                  │
└───────────────────────────────────────────────────────────────┘

各部品の詳細

① 自動実行(Automations)

ループの心臓部。定期的にタスクを発見し、エージェントを起動する仕組みです。

# 最もシンプルなループ(Ralph loop の原型)
while true; do
    claude --print \
        --system-prompt "$(cat system_prompt.md)" \
        "$(cat task_prompt.md)" \
        >> output.log
    sleep 300  # 5分ごとに実行
done

② ワークツリー(Worktrees)

複数のエージェントが同じリポジトリで同時に作業するとき、互いのファイル変更が衝突しないよう、独立した作業領域を提供します。

# Gitのworktree機能を使った並列作業
git worktree add ../agent-1-workspace feature/auth-fix
git worktree add ../agent-2-workspace feature/api-refactor

# agent-1 と agent-2 が同時に異なるブランチで作業 → 衝突なし

③ スキル(Skills)

「このプロジェクトではこう書く」というルールや手順書。毎回ゼロから説明し直さなくて済むようにします。

<!-- .claude/skills/testing.md -->
# テストの書き方

- テストフレームワーク: vitest
- ファイル命名: `*.test.ts`
- モックライブラリ: msw
- カバレッジ目標: 80%以上
- 必ずエッジケースのテストを含めること

④ プラグイン / コネクター(Plugins & Connectors)

GitHub、Jira、Slack、データベースなど既存のツールとAIを接続するための仕組みです。

# MCPサーバー設定の例
mcp_servers:
  github:
    command: "github-mcp-server"
    env:
      GITHUB_TOKEN: "${GITHUB_TOKEN}"
  slack:
    command: "slack-mcp-server"
    env:
      SLACK_BOT_TOKEN: "${SLACK_BOT_TOKEN}"

⑤ サブエージェント(Sub-agents)

「作る役」と「検証する役」を分離するパターンです。GANの発想に着想を得ています。

┌───────────┐      コード生成     ┌───────────┐
│ Generator │ ────────────────→  │ Evaluator │
│  (生成者) │                     │  (評価者) │
│           │ ←────────────────  │           │
└───────────┘    フィードバック   └───────────┘
      ↑                                │
      │          計画を提供             │
      │        ┌───────────┐           │
      └─────── │ Planner   │ ←─────────┘
               │  (計画者)  │  評価結果
               └───────────┘

この3エージェント循環はAnthropicが採用しており、単一エージェントでは到達できない品質を実現しています。

⑥ メモリ(Memory)

ループの生命線。会話の外に状態を永続化することで、コンテキストウィンドウの限界を超えます。

<!-- progress.md -->
## 完了タスク
- [x] 認証モジュールのリファクタリング (PR #142)
- [x] APIエンドポイントのテスト追加 (PR #143)

## 進行中
- [ ] データベースマイグレーション

## 学んだこと
- PostgreSQL 16ではJSON pathの構文が変更されている
- テスト環境ではredisのモックが必要

「エージェントは忘れる。リポジトリは忘れない。」(The agent forgets, the repo doesn't.) ── Addy Osmani


7. 代表的なループ実装の比較

主要な実装

実装 正体 特徴
Ralph loop bashのwhile trueで1つのプロンプトを完了まで繰り返す 1イテレーション=1タスク。毎回フレッシュな文脈。状態はgit/ファイルに永続化
Claude Code /loop Claude Code内蔵のループ実行機能 タスクを渡して自走。トークン暴走対策が重要
Codex /goal OpenAI Codex CLIの組み込みループ 目標を渡して永続ワークフロー化。TUIで制御
Ralphify等 Ralph loops標準に沿った専用ランタイム 毎回フレッシュ文脈・ライブデータでループを回す

Claude Code vs Codex ── 5+1部品の対応表

部品 Claude Code Codex
① 自動実行 /loopコマンド、スケジュールタスク Automationsタブ、/goalコマンド
② ワークツリー git worktreeで自動ブランチ作成 各タスクに隔離されたサンドボックス
③ スキル CLAUDE.md.claude/skills/ AGENTS.md、カスタムインストラクション
④ プラグイン MCPサーバー接続 ツール連携・API接続
⑤ サブエージェント Taskツールでサブエージェント生成 オーケストレーター+ワーカー構成
⑥ メモリ CLAUDE.md、外部ファイル セッション間の永続メモリ

ポイント:どちらの製品も5+1の部品をすべて実装済み。ツールの違いより、ループの設計の巧拙が成果を分けます。


8. 安全に回すための4つの必須要素

ループは「自律したシニアエンジニア」ではありません。ハーネスの中で粘り強く動く"ジュニア" です。放任すると暴走し、コストだけが膨らみます。

┌─────────────────────────────────────────────────┐
│         安全なループの4要素                       │
│                                                 │
│  ┌─────────────┐    ┌──────────────┐            │
│  │ ① 明確な     │    │ ② 安全な     │            │
│  │  タスク定義  │    │ 作業環境     │            │
│  │ "完了"が     │    │ ブランチ/    │            │
│  │  一文で言える│    │ サンドボックス│            │
│  └─────────────┘    └──────────────┘            │
│                                                 │
│  ┌──────────────┐    ┌──────────────┐           │
│  │ ③ 機械的な    │    │ ④ ハード     │           │
│  │  成功テスト   │    │  ストップ     │           │
│  │  テスト/ビルド│    │  回数/時間/   │           │
│  │  /lint等     │    │  コスト上限   │           │
│  └──────────────┘    └──────────────┘           │
│                                                 │
│  ▸ 4つが揃わないループは暴走リスクあり             │
└─────────────────────────────────────────────────┘

各要素の詳細

# 要素 説明 具体例
明確なタスク定義 何を達成すれば「完了」かが一文で言える 「auth.tsのテストが全てグリーンになること」
安全な作業環境 失敗してもダメージが閉じる環境 専用ブランチ、Dockerサンドボックス
機械的な成功テスト 合否を自動判定できる基準 npm testlint、型チェック
ハードストップ 無限ループ・トークン暴走の防止 最大10イテレーション、1時間のタイムアウト、$5のコスト上限

この4要素は、そのまま「AIに任せていい仕事の見分け方」でもあります。 成功を機械的に判定できないタスク(経営判断、創作の方向性決定など)は、ループ化に向きません。


9. エンドツーエンドのループ設計例

実践例:毎日のIssueトリアージ+自動修正ループ

#!/bin/bash
# daily_loop.sh ── 毎朝6時にcronで実行

REPO_DIR="/path/to/project"
PROGRESS_FILE="$REPO_DIR/.loop/progress.md"
MAX_ITERATIONS=5

cd "$REPO_DIR"

for i in $(seq 1 $MAX_ITERATIONS); do
    echo "=== イテレーション $i / $MAX_ITERATIONS ==="

    # Step 1: 新しいIssueを発見(自動実行)
    # Step 2: 独立ブランチで作業(ワークツリー)
    # Step 3: スキルファイルを参照して修正
    # Step 4: テスト実行(機械的な成功テスト)
    # Step 5: 結果を進捗ファイルに記録(メモリ)

    claude --print \
        --system-prompt "$(cat .claude/loop_system.md)" \
        "進捗ファイルを読み、次のIssueに取り組め。
         完了したら進捗ファイルを更新せよ。
         全Issue完了なら DONE と出力せよ。" \
        2>&1 | tee -a .loop/run.log

    # ハードストップ:DONEが出たら終了
    if grep -q "DONE" .loop/run.log; then
        echo "全タスク完了"
        break
    fi
done

ループのフロー

[cron 毎朝6時] ──→ daily_loop.sh 起動
                          │
                    ┌─────▼──────┐
                    │ progress.md│ ← 前回の進捗を読む
                    │  を読み込み │
                    └─────┬──────┘
                          │
            ┌─────────────▼──────────────┐
            │   GitHub Issueを確認        │ ← プラグイン/コネクター
            │   未対応のIssueを取得        │
            └─────────────┬──────────────┘
                          │
            ┌─────────────▼──────────────┐
            │   git worktreeで           │ ← ワークツリー
            │   作業ブランチを作成         │
            └─────────────┬──────────────┘
                          │
            ┌─────────────▼──────────────┐
            │   CLAUDE.md / skills/      │ ← スキル
            │   を参照してコード修正       │
            └─────────────┬──────────────┘
                          │
            ┌─────────────▼──────────────┐
            │   テスト実行                │ ← 機械的な成功テスト
            │   npm test && npm run lint │
            └─────────────┬──────────────┘
                          │
                        成功? ─── No ──→ 修正して再試行
                          │                    (サブエージェントが検証)
                         Yes
                          │
            ┌─────────────▼──────────┐
            │   PR作成                │
            │   progress.md を更新    │ ← メモリ
            └─────────────┬──────────┘
                          │
                 次のIssueへ or 終了

10. リスクと限界 ── ループが解決しないもの

ループエンジニアリングは万能ではありません。Addy Osmani氏を含む提唱者たち自身が、以下のリスクを警告しています。

10.1 トークンコストの爆発

使い方 トークン消費の目安
通常のチャット 1x(基準)
エージェント(インナーループ) 約4x
マルチエージェント 最大15x
長時間ループ(制限なし) 予測困難 ── 暴走リスクあり

対策:必ずコスト上限を設定する。max_tokens、イテレーション回数制限、予算アラートを組み込むこと。

10.2 検証の難しさ

ループが長くなるほど、微妙なズレが積み重なり、最終的に使えないアウトプットになるリスクがあります。

イテレーション1: わずかな設計判断のズレ (許容範囲)
イテレーション2: ズレた前提の上にさらに構築
     ...
イテレーション10: 元の意図とは全く異なる成果物に

対策:ループ構造の中に人間のレビューポイントを組み込む(例:5イテレーションごとに中間レビュー)。

10.3 その他のリスク

リスク 内容 対策
コンテキストの劣化 長時間実行でコンテキストが肥大化し品質低下 毎回フレッシュなコンテキストで起動。状態は外部ファイルに
暗黙の権限拡大 ループが想定外の操作を行う 最小権限原則。読み取り専用をデフォルトに
デバッグの困難さ 自律的な判断の連鎖を追跡しにくい 全ステップのログ記録。オブザーバビリティの確保
品質の均一化 AIが「動くけど凡庸な」コードを量産 アーキテクチャ判断は人間が握る

11. ベストプラクティスまとめ

✅ やるべきこと

  1. 小さく始める ── まずは1タスク・1ループから。巨大なシステムを一度に作らない
  2. 状態は外部に持つ ── progress.md、git履歴、タスクボードなど。会話コンテキストに依存しない
  3. 毎回フレッシュに起動 ── コンテキストの肥大化を防ぎ、外部メモリから状態を復元
  4. 成功基準を機械化 ── テスト、lint、型チェックなど自動判定できる基準を必ず置く
  5. ハードストップを設定 ── 回数・時間・コストの上限を必ず設ける
  6. 作る役と確認する役を分ける ── サブエージェントで生成と検証を分離
  7. スキルファイルを育てる ── プロジェクト固有の知識を蓄積し続ける

❌ やってはいけないこと

  1. ループを放置しない ── 完全な自律は幻想。定期的な人間のレビューが必要
  2. 曖昧なゴールを渡さない ──「いい感じにして」は最悪のループ入力
  3. コスト上限なしで回さない ── トークン暴走は実害(金銭的損失)に直結
  4. 機械的に判定できないタスクをループ化しない ── 創作の方向性判断、経営判断などは人間が行う
  5. ログを取らない ── 何が起きたか追跡できないループは改善できない

12. おわりに ── エンジニアの役割はどう変わるか

ループエンジニアリングの登場は、エンジニアの役割を根本から変えつつあります。

これまで:  エンジニア ─→ [コードを書く] ─→ プロダクト

これから:  エンジニア ─→ [ループを設計する] ─→ AIが実行 ─→ プロダクト
                              │
                              ├─ 何をゴールとするか決める
                              ├─ 成功基準を定義する
                              ├─ 安全な作業環境を用意する
                              ├─ 検証の仕組みを組み込む
                              └─ アーキテクチャ判断を握る

Boris Cherny氏の言葉を借りれば、これはパンチカード → アセンブリ → C言語 → 高水準言語 → ループ という、プログラミングの抽象度が一段上がった瞬間です。

しかし、ここで忘れてはいけないのは:

「味見」だけは手放すな。

ループがどれだけ賢くなっても、最終的なアウトプットの品質を判断し、方向性を決めるのは人間です。ループエンジニアリングとは、任せる範囲と人間が残す範囲の線引きそのものなのです。


13. 参考文献

# タイトル 出典
1 Loop Engineering Addy Osmani (Google), 2026年6月7日
2 Acquired Unplugged - Boris Cherny Interview WorkOS / Acquired, 2026年6月2日
3 Loop Engineering: The Guide for AI Agents Lushbinary, 2026年6月9日
4 What Is Loop Engineering? The New Meta for AI Coding Agents MindStudio, 2026年6月9日
5 Agents: Inner Loop vs Outer Loop Philipp Schmid, 2026年2月20日
6 Loop Engineeringとは|"プロンプトの次"のループ設計 Fyve, 2026年6月10日
7 ループエンジニアリングというAIエージェント設計の最前線 AI-Driven Lab, 2026年6月9日
8 cobusgreyling/loop-engineering GitHub リポジトリ
9 What Is the AI Agent Loop? Oracle Developers, 2026年3月16日
10 ハーネスエンジニアリング完全ガイド Qiita, 2026年3月29日
10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?