混乱したエンジニアリング上の決定
AI エージェントの構築を開始すると、遅かれ早かれ、MCP (モデル コンテキスト プロトコル) を使用するか、Loop Engineering (サイクル エンジニアリング) を使用するかの選択に直面することになります。どちらも「モデルに外部ツールを複数回呼び出す」ことが含まれますが、1 つは標準化されたプロトコルであり、もう 1 つはアーキテクチャ パターンです。この2つを混同すると、少なくともプロジェクトは遅れ、最悪の場合は実行できなくなります。
チームがループ制御を MCP で置き換えようとしたところ、MCP の再試行メカニズムがカスタム再試行ロジックを満たすことができないことがわかりました。これはプロトコルの問題ではなく、間違ったツールの問題です。
主な区別: プロトコルとモード
MCP は、標準化されたモデルとツールの対話プロトコルです。モデルがツールを検出し、呼び出し、結果を受け取る方法を指定します。 MCP は、ビジネス ロジックのループ層の数や再試行戦略が何であるかを気にしません。 1 つの呼び出しが確実に完了できることを保証するだけです。
Loop Engineering が行うことは 1 つです。終了条件が満たされるまで、モデルにループ内でツールを複数回呼び出させます。これはプロトコルではなく、アーキテクチャ パターンです。ループ ロジックを手動でコーディングし、コンテキスト転送、結果の検証、各呼び出しの条件分岐を制御します。
特定のシナリオ:
- MCP 責任: 天気予報 API を呼び出し、JSON 結果を返します。このプロトコルにより、安定した接続と読み取り可能なエラーが保証されます。
- Loop Engineering が責任を負います: 完全な旅程が生成されるまで、複数の API (天気、フライト、ホテル) を継続的に呼び出し、そのたびに最後の結果に基づいて次にどの API を呼び出すかを決定します。
プロジェクトで必要なツール呼び出しが 1 つだけの場合は、MCP で十分です。複数ステップの推論と動的な意思決定が必要な場合は、Loop Engineering を導入する必要があります。

適用可能な境界: いつどの境界を使用するか?
| 寸法 | MCP | Loop Engineering |
|---|---|---|
| コール数 | 単一または限定 | 動的ループ、可変回数 |
| コンテキストの共有 | ステートレス、各呼び出しは独立しています。歴史的背景を維持する必要がある | |
| 終了条件 | 外部ロジックによって決定 | カスタマイズ可能 (安定した結果、タイムアウトなど) |
| 複雑さ | 低コスト、ツールの設定のみが必要 | 高、ループ ロジックをコーディングする必要があります |
| 典型的なシナリオ | データベースのクエリ、API の呼び出し | コード生成、複数ステップの推論、自動テスト |
失敗しやすい場所: ループ内に条件分岐がある場合は、代わりに MCP の再試行メカニズムを使用しないでください。 MCP の再試行は同じ呼び出しを繰り返すだけであり、必要なのは「別のツールで続行する」ことです。この場合、決定木は Loop Engineering を使用して明示的にエンコードする必要があります。

最も簡単な落とし穴: プロトコルとループの混乱
最も典型的なエラーは次のとおりです: * MCP にループ状態を管理させようとしています*。 MCP への各呼び出しは独立しており、コンテキストは自動的に渡されません。以前の結果を記憶する必要がある場合は、状態管理を自分で実装する必要があります。
例: MCP を使用して、コード エラーを自動的に修正するツールを作成します。 MCP への最初の呼び出しでエラーが見つかり、2 回目の呼び出しでエラーが修正されます。しかし、2 番目の呼び出しは最初の呼び出しのコンテキストを認識していないことがわかります。正しいアプローチは、Loop Engineering を使用して 2 つの呼び出しをループ内にラップし、最後の修復結果を手動で渡すことです。
もう 1 つの落とし穴は、エラー処理を無視することです。 Loop Engineering、各ループが失敗する可能性があります。エラーが処理されない場合、ループ全体がデッドロックまたは無限に再試行される可能性があります。 MCP は標準エラー コードを提供しますが、ループ ロジックは自分で記述する必要があります。
選択方法: シンプルな意思決定パス
- ツール呼び出しが 1 つだけで、その後の依存関係がない場合 → MCP を直接選択します。
- 呼び出し回数が固定で少ない場合 (5 回未満)、コンテキストをシリアル化できます → MCP + 単純なループ (プロトコルではなくコードによって制御) を使用します。
- 呼び出し数が固定されておらず、動的な意思決定が必要であり、コンテキストが複雑である場合 → Loop Engineering を使用する必要があります。
- チームに既に MCP インフラストラクチャがあるが、ループが必要な場合 → MCP の上に Loop Engineering レイヤーを構築し、ループを MCP に置き換えないでください。
失敗した場合のフォールバック計画
現在のソリューションが機能しない場合、最も一般的なバックアップ オプションは次のとおりです。
- MCP からカスタム ツール プロトコルに切り替える: MCP の制限 (ステートレス、呼び出し数など) がボトルネックになる場合、MCP を放棄し、代わりに直接 HTTP 呼び出しまたは gRPC を使用できます。
- Loop Engineering から複数の独立した呼び出しへの機能低下: ループ ロジックが複雑すぎてデバッグできない場合は、複数の独立した MCP 呼び出しに分割できます。これにより、動的な意思決定機能は犠牲になりますが、保守性が向上します。
- 状態管理フレームワークの導入: Loop Engineering では、車輪の再発明を避けるために、Redis や LangGraph などのツールを使用して状態を管理します。
理論から実践へ: 移行ケース
コードレビューエージェントを構築しているとします。 MCP を使用してコード品質 API を最初に呼び出すと、一度に 1 つのアラートのみが解決されます。その後、すべてのアラームを継続的に修復し、修復のたびに再チェックする必要があります。
間違ったアプローチ: MCP 再試行を使用して修復 API を繰り返し呼び出し、アラームの変更を無視します。 正しいアプローチ: Loop Engineering を使用してループを作成します。
- コード検査 MCP ツールを呼び出して、アラーム リストを取得します。
- 各アラームを順番に修復します (修復 MCP ツールを一度に 1 つずつ呼び出します)。
- もう一度確認し、新しいアラームが表示される場合は繰り返します。
- 修復後に新たなアラームが発生しなくなった場合、または最大ラウンドに達した場合に終了します。
このループでは、MCP は 1 つのツール呼び出しのみを担当し、ループ制御とコンテキスト転送はエンジニアリング コードによって実装されます。
次のステップ: エージェント エンジニアになる
MCP と Loop Engineering の違いを理解したら、次のステップは、エージェントを構築するより体系的な方法を習得することです。普通の開発者からエージェント エンジニアに変身したい場合は、コンテキスト管理、動的ツール オーケストレーション、エラー回復戦略などの高度なトピックを深く理解する必要があります。

コメントはまだありません