Article

ループエンジニアリングとは?現役エンジニアが実務で考えてみた

ループエンジニアリングとは?現役エンジニアが実務で考えてみた
2026-08-29 AI駆動開発
監修者
ライトのアイコン
情報系学部出身。新卒でコンサル系SaaS開発部門→社内開発とSaaS開発を掛け持ち。GPT-3.5 Turbo時代からAIを活用し、ChatGPT/Gemini/Claude/GitHub Copilot/Cursorなどを使っています。

AIエージェントを使った開発が広がる中で、「ループエンジニアリング」という言葉を見かけるようになってきました。

まだ新しい言葉ということもあり、人によって多少意味は異なりますが、大まかにはAIエージェントが実行・検証・修正を繰り返しながら、ゴールに向かって自律的に作業できる仕組みを設計する考え方と捉えられます。

この記事では、まずループエンジニアリングの一般的な考え方を整理します。

そのうえで、EM兼AI駆動エンジニアとして実際にAIを使った開発を行っている筆者が、

  • ループエンジニアリングで本当に重要だと思っていること
  • AIに何を任せ、人間は何を作るべきなのか
  • どんなタスクと相性がいいのか

について、実務ベースで考えてみます。

ループエンジニアリングとは

ループエンジニアリングとは、AIエージェントに一度指示を出して終わりにするのではなく、実行 → 検証 → 修正 → 再実行というサイクルを繰り返せるように、AIの作業工程そのものを設計する考え方です。

一度きりの指示と、ループを回す指示では、こういう違いになります。

図: 一度きりの指示と、ループする指示
従来:一度きりの指示
プロンプトを渡す
▼
AIがコードを書く
▼
人間が確認する(毎回)
ループ:AIが自分で回す
実装する
▼
テストして結果を見る
▼
失敗ケースを修正する
↻ 成功条件を満たすまで
人間は完成時に確認する

重要なのは、単純に「AIに何度もやり直させること」ではありません。

AIが自分で結果を確認し、次の行動を決定できる状態を作ることがポイントです。

そのためには、

  • 何をゴールとするのか
  • AIにどこまで操作を許可するのか
  • 何をもって成功とするのか
  • いつ作業を終了するのか

といった、AIの外側にある仕組みも設計する必要があります。

プロンプトだけでAIを制御しようとしない

ここからは筆者自身の考えです。

ループエンジニアリングでかなり重要だと思っているのが、AIをプロンプトだけで縛ろうとしないということです。

「このファイルは変更しないでください」「この操作は絶対にしないでください」とプロンプトに書くこと自体はできます。

ただ、AIエージェントをある程度自由に動かすのであれば、それだけに依存するのは少し怖いと思っています。

筆者としては、むしろAIにはかなり自由に作業してもらいたいです。その代わり、やってはいけないことは、そもそも物理的にできないようにする。

図: 「お願い」で縛るか、「環境」で縛るか
プロンプトで縛る
「〜しないでください」とお願いする。守るかどうかはAIの判断次第。
破られる可能性が残る
環境で縛る
できない操作は最初から実行手段を渡さない。判断が介在しない。
そもそも実行できない
環境側で境界を作る手段
アクセスできるファイルを限定
実行できるコマンドを限定
ネットワークを制限
MCPで使えるツールを絞る
Hooksで操作を検証
Sandbox内だけで作業

AIの判断力を細かいプロンプトで縛るよりも、環境やプログラム側で境界線を作るイメージです。

境界線の中では自由に動いてもらう。ただし、境界線の外には出られない。

この状態を作ることが、ループを安定して回すうえでは重要だと思っています。

ループとハーネスはセットで考える

この話は、最近よく使われる「ハーネスエンジニアリング」ともかなり近いです。

図: ループはハーネスの内側で回る
ハーネスエンジニアリング:環境・権限・ツール・評価方法を設計する
ループエンジニアリング:実行・検証・修正のサイクルを設計する
実行 → 検証 → 修正 ↻
ループがどれだけ自由に回っても、この枠の外には出られない
ループを自由にするほど、外側のハーネスは厳密にする。この2つは別物というより、セットで設計するものです。

AIにループを回してもらうのであれば、そのAIが安全に動ける環境も必要になります。だから筆者は、この2つを完全に別物として考える必要はないと思っています。

実装はAI、答えは人間が作る

もう一つ、筆者がループエンジニアリングで重要だと考えているのが、人間とAIの役割分担です。

かなり極端に言えば、実装はAIに任せ、答えは人間が作る。という分け方です。

例えば、あるAPIを作るとします。

人間が「この関数を作って、この条件分岐を書いて、このライブラリを使って……」と実装方法まで決めるのではありません。

代わりに人間が作るのは、入力と期待する出力のセットです。

図: 人間が作るもの / AIが作るもの
人間が作る:答え
InputExpected
入力A出力A
入力B出力B
入力C出力C
… 200件
AIが作る:実装
実装する
▼
200件のテストを流す
▼
落ちたケースを直す ↻
200 / 200 Green で終了

AIは実装し、テストし、失敗したケースを確認して修正する。最終的に200件すべてが通るまでループしてもらいます。

人間が実装方法を細かく指定するのではなく、何が正解なのかだけを高い解像度で定義する。ここが重要です。

「答え」に人間の意図を載せる

この方法で、人間の設計意図がなくなるわけではありません。むしろ逆です。

設計意図をコードの具体的な書き方として表現するのではなく、期待する結果として表現することになります。

例えば感情分析APIなら、単純なケースだけでなく、境界ケースも用意します。

図: 境界ケースに設計意図が現れる
「今日のプレゼン最高だった!」
positive
「最悪の一日だった」
negative
「最高ですね。もう二度と使いません」
← ここの判断がプロダクトの考え方
negative

どの入力をpositiveと判断し、どこからnegativeと判断するのか。そこにプロダクトとしての考え方が現れます。

つまり、人間がコードを直接書かなくても、テストケースを設計することで、実装に意図を載せることができるということです。

TDDに近いが、もっと「答え」に寄せる

この考え方はTDDにも近く、シナリオテストやE2Eテストとして書いてもいいと思います。

ただ、筆者自身はもっとシンプルに、入力と出力を並べたCSVでも十分だと考えています。


input,expected_output

"今日は最高だった","positive"

"最悪の一日だった","negative"

"最高ですね。もう使いません","negative"

重要なのはテストフレームワークではありません。AIが「現在の実装が正しいのか」を機械的に判断できる答えが存在していることです。

これを100件、200件と用意しておけば、AIにとってかなり明確なゴールになり、200件中200件がGreenになるまで修正するという非常に単純なループを作ることができます。

AI時代は「コードの具体」より「周辺の具体」が重要になる

この考え方を進めると、人間が見る場所も少し変わってきます。

図: 具体化する場所が移動する
従来:コードの具体を詰める
このクラスをどう設計するか
この関数をどう分割するか
このif文をどう書くか
→ 見る必要性は相対的に下がる
これから:周辺の具体を詰める
何を入力とし、何を正解とするか
どんな境界ケースがあるか
何を許可し、何を物理的に禁止するか
どこまで達成すれば完成か
→ 今まで以上に解像度を上げる

「AIに具体を任せるから、人間は抽象だけ考えればいい」という話ではありません。

むしろ、コードの具体を見なくなる代わりに、それ以外を今まで以上に具体化する。

これが、筆者が考えるAI駆動開発の重要な変化です。

どんなタスクと相性がいいのか

この方法は、すべての開発に使う必要はありません。

特に相性がいいと感じているのは、正解となる実装方法は定義しにくいが、期待する入出力は定義できるものです。

逆に、明確な数式やアルゴリズムで答えを定義できるものについては、この方法はオーバーだと思います。

図: ループを回すか、普通に実装するかの判断
ロジックを完全に定義できるか?
YES → 普通に実装する
output = price * tax_rate
この処理に100件の入出力を用意して試行錯誤させる必要はありません。数式を書いた方が早いです。
NO → ループと相性がいい
感情分析 分類処理 複雑な条件を含むAPI 多数の業務ルール 具体例で品質評価できるもの
「どう実装すればいいかは分からない。でも、何が正しいかは具体例で示せる」タイプの問題です。

感情分析の場合、「このアルゴリズムを使えば100%正しい」という数式を人間が最初から書くことは難しいです。

しかし、「この文章ならpositive」「この文章ならnegative」という具体例なら作れます。

そこで人間は大量の具体例を作り、その答えに近づく実装をAIに探してもらう。こういう問題とはかなり相性がいいと思います。

人間の仕事はなくなるのではなく、場所が変わる

AIに実装をほぼ任せると聞くと、「ではエンジニアは何をするのか」という話になります。

筆者の感覚では、エンジニアの仕事が消えるというより、コードを書くことから、正解と境界を設計することへ移動するという方が近いです。

人間が担うのは、

  • 何を作るのか決める
  • 何を正解とするのか決める
  • 正解となる具体例を十分に作る
  • AIが触っていい範囲を設計する
  • AIが物理的にできない操作を決める

といった部分です。

そして、その範囲の中でAIには自由に実装してもらう。

細かい実装を人間がマイクロマネジメントするのではなく、正解とガードレールを人間が作るイメージです。

まとめ

ループエンジニアリングは、単純にAIへ「成功するまで何度もやって」とお願いするテクニックではありません。

AIが実装 → 評価 → 修正 → 再評価を自律的に繰り返せる状態を作る考え方です。

そして筆者自身は、実務で使ううえでは次の3つが特に重要だと考えています。

図: 実務で重要な3つ
1. 境界は環境で作る
プロンプトで縛りすぎず、権限・ツール・Sandboxで物理的にできなくする。
2. 答えは人間が作る
実装方法ではなく、入力と期待出力のセットを高い解像度で定義する。
3. 具体化する場所を移す
コードの具体はAIに任せ、正解・境界・評価の具体度を上げる。

AIには自由にコードを書いてもらう。しかし、何が正しいのかは人間が決める。そして、やってはいけないことは環境側でできなくする。

個人的には、この役割分担がかなり重要だと感じています。

AI時代のエンジニアリングは、「どうコードを書くか」だけではなく、AIが正しい答えにたどり着ける場をどう設計するかへと、少しずつ重心が移っているのかもしれません。

この記事は役に立ちましたか?

皆様のフィードバックが、より良いコンテンツ制作の励みになります。

最新記事