AIエージェントを活用した開発パラダイムである「ハーネスエンジニアリング」「ループエンジニアリング」「構造化ループエンジニアリング」の違いと、それらを統合する概念について整理する。
AIを単なるテキスト生成器から「自律的にタスクを完了させるエージェント」へと引き上げるためのアプローチは、設計する対象(抽象度の階層)によって以下のように分類できる。
| 概念 | 設計対象 | 主な役割・特徴 | 具体例 |
|---|---|---|---|
| ハーネスエンジニアリング | 実行環境(1階) | AIが安全かつ適切に仕事をするための「足場」や「制約」を作る。 | コンテキストの注入(.cursorrules等)、Linter、テスト環境の整備。 |
| ループエンジニアリング | 自律実行フロー(2階) | 用意された環境上で、目的達成まで「計画→実行→検証→修正」のサイクルを回す。 | コードを書く→テスト実行→エラーを読んで自己修正するプロセスの自動化。 |
| 構造化ループエンジニアリング | 組織構造(3階) | ループを単一エージェントではなく、仮想的な「開発組織」として分業・統制する。 | PM、実装、QA、UIデザイナーなどの役割(ペルソナ)を定義し、お互いにレビューし合う体制。 |
ループエンジニアリングを実プロジェクトに導入する上で、本質的なパラダイムシフトと具体的な運用手法を整理する。
構造化ループエンジニアリングにおいて「PM」や「QA」といった役割を定義し、責任範囲や連携フローをルール化することは、AIに対して「開発組織のオントロジー(概念体系・世界観)」をインストールすることと同義である。
このオントロジー設計を極限まで振り切った事例として、以下のような「将軍・家老・足軽モデル」が存在する。
構造化ループエンジニアリングを実運用に乗せるためには、リソースの最適化と人間による最終判断が不可欠である。
APIトークンの消費を抑えつつ最大の成果を出すため、役割に応じてLLMをルーティングする。
AIは技術的なバグの検知や仕様の網羅は得意だが、「手触り」や「実際の現場での使いやすさ」は評価できない。そのため、AIチームがPR(Pull Request)を作成した段階でプロセスを止め、価値の検証は人間(プロダクトオーナー)が実機等で行うフローを構築する。
また、文書作成などの業務ループにおいては、「内向きの操作(下書き・整理)」は全自動化し、「外向きの操作(送信・公開)」は実行せずに「承認キュー」に積んで人間が最終判断を下すという権限(マンデート)の設計が、取り返しのつかない事故を防ぐ上で重要となる。
graph TD
subgraph "自律ループ(エージェント)"
GEN["生成<br/>(コード・下書き等)"] --> VER["検証<br/>(Linter・テスト)"]
VER -->|"NG"| GEN
end
VER -->|"OK"| BR{"操作の種類は?"}
BR -->|"内向きの操作<br/>(ローカル保存等)"| AUTO["自動実行"]
BR -->|"外向きの操作<br/>(PR作成・送信等)"| Q["📋 承認キュー"]
subgraph "Human-in-the-Loop"
Q --> HUMAN["👤 人間の判断<br/>(価値検証・承認)"]
HUMAN -->|"承認"| OUT["本番環境 / 送信<br/>(取り消し不可)"]
HUMAN -->|"修正・差し戻し"| GEN
end
これまでの理論を踏まえ、筆者が実際に開発を進めている JiuJitsuScoreBoard_KMP(柔術のスコアボードアプリ)プロジェクトを例に、具体的な開発体制の設計思想を共有する。
当プロジェクトでは、AIを単なるコード生成ツールではなく、自律的な「開発組織」として振る舞わせる構造化ループエンジニアリングを採用している。 AI自身が「PM」「実装」「QA」という明確な役割(オントロジー)を持ち、相互に連携・牽制しながらループを回すことで、品質の高いコードを自律的に生み出すことを目的としている。「エージェントにプロンプトを打つのではなく、打たせる側に回れ」という思想のもと、タスクの細分化やレビュー依頼はAIチーム内で自律的に行う。
graph TD
subgraph "AI開発チーム(自律ループ)"
PM["🤖 PM担当<br/>(要件定義・タスク分解)"]
DEV["🤖 実装担当<br/>(コーディング)"]
QA["🤖 QA担当<br/>(テスト・ログ解析)"]
PM -->|"実装指示"| DEV
DEV -->|"コード提出"| QA
QA -->|"バグ指摘<br/>(※QAはコード修正不可)"| DEV
QA -->|"品質OK"| PM
end
subgraph "Human-in-the-Loop"
HUMAN["👤 人間 (プロダクトオーナー)<br/>(UX検証・手触り確認)"]
PM -->|"PR作成・レビュー依頼"| HUMAN
HUMAN -->|"承認・マージ"| OUT["本番反映"]
HUMAN -->|"差し戻し"| PM
end
AIはエラーが出ると、テストを通すために「間違った実装に合わせてテストコードを書き換える」などの暴走を起こす傾向がある。これを防ぐため、各ペルソナには意図的に強い制約を持たせている。
AIチームは技術的なバグ検知やエッジケースの網羅には優れているが、「実際の試合でのタイマーの押しやすさ」や「スコアの見間違いにくさ」といった身体的・感覚的な価値基準は評価できない。 そのため、AIチームはすべての技術的検証を終えた段階でPRを作成し、プロセスを止める。前述の「外向きの操作は承認キューに積む」という権限設計の通り、価値の最終検証(実機での手触り確認など)は、必ず人間(プロダクトオーナー)が行う。
この体制が確立した後の初期タスクとして「SJJIFルールの対応」などを予定している。既存のIBJJFルールとの差分を学習し、AIチーム内で適切にテストと実装のループを回すことが求められる。