コンテンツにスキップ
ファウンダー価格 — 早期顧客向けに固定今すぐ始める →

エージェントAIデザインパターン: ReAct、Plan-and-Execute、Reflexionなど

エージェントAIデザインパターンは、エージェント協調の繰り返し問題に対する名前付きの再利用可能なアーキテクチャソリューションです。各パターンには定義された構造、既知のトレードオフ、特徴的な障害モード、セキュリティへの影響があります。間違ったパターンを選択すると具体的な障害が発生します。ReActを長期タスクに使うとコンテキストウィンドウのスラッシュが起きます。再計画なしのPlan-and-Executeは古いプランでエラーが蓄積します。メモリのサニタイズなしのReflexionは持続的なメモリポイズニングを可能にします。2つのカテゴリで6つのパターン: 単一エージェント推論パターン(ReAct、Plan-and-Execute、Reflexion)とマルチエージェント協調パターン(Critic-Actor、Supervisor-Worker、Mixture-of-Agents)。

エージェントAIデザインパターンは、エージェントシステム設計の繰り返し問題に対する名前付きの再利用可能なアーキテクチャソリューションです。エージェントがどのように推論し、計画し、反省し、委任し、障害から回復するかを指定し、各パターンは定義された構造、既知のトレードオフ、特徴的な障害モード、セキュリティへの影響を持ち、プロダクションにデプロイする前に実践者が考慮する必要があります。

このガイドの読み方: パターン構造と選択ヒューリスティクス

パターンコンポーネント: 構造、トレードオフ、障害モード、セキュリティゲート

このガイドの各パターンは4つのコンポーネントで説明されています。

構造: 散文による建築的配置 -- どのエージェントやモデルインスタンスが存在するか、どのように通信するか、データフローの外観、主要なアーティファクト(スクラッチパッド、プランドキュメント、反省バッファ、評決、タスクディスパッチ、アンサンブル出力)。

トレードオフ: パターンが最適化するものと犠牲にするもの。ReActはグラウンドトゥルースのツールアンカリングを最適化しますが、コンテキストウィンドウの効率を犠牲にします。

障害モード: 各パターンがプロダクションで失敗する具体的な方法で、学術的なベンチマーク結果からは明らかでないもの。

セキュリティゲート: 各パターンの特徴的なセキュリティ障害モードを防ぐために必要な特定のコントロール。

パターン選択ヒューリスティクス: タスク期間 x 可逆性 x 自律性レベル

3つの軸がどのパターンから始めるかを決定します。

タスク期間: 短いタスク(ツール呼び出し5回以下)-- ReAct。中期タスク(6-20ステップ)-- Plan-and-Execute。長いまたはオープンエンドのタスク(20ステップ以上)-- ReflexionまたはSupervisor-Worker。

可逆性: すべてのアクションが可逆的な場合、どのパターンも適用できます。一部のアクションが不可逆的な場合(ファイル削除、メール送信、データベース書き込み)、使用するベースパターンに関わらず、それらの特定のアクションの前にCritic-Actorゲートを追加してください。

自律性レベル: L1-L2 -- ReActまたはPlan-and-Execute。L3 -- Reflexionまたはロールごとのブラスト半径の封じ込めを持つSupervisor-Worker。L4 -- 強化されたセキュリティインフラなしにプロダクションに展開されない。

ReAct: 推論と行動の交互実行

構造: 思考 -> 行動 -> 観察ループ

ReAct(Reasoning + Acting)、Google BrainとPrincetonのYaoら(arXiv 2022年10月、ICLR 2023)は、チェーンオブソート推論とツール呼び出しを単一のコンテキストウィンドウのスクラッチパッドに交互に配置します。ループ:

Thought: [前の観察に基づくチェーンオブソート推論]
Action: [ツール呼び出し -- 関数名とパラメータ]
Observation: [実行から返されたツール結果]
[繰り返す:]
Thought: 回答するのに十分な情報があります。
Action: Finish[最終回答]

元の論文のベンチマーク結果: HotpotQA -- ReActで57.1%の完全一致 vs チェーンオブソートのみ43.2%(+14ポイント)。FEVER -- 75.4% vs 66.4%(+9ポイント)。

トレードオフ: グラウンドトゥルース vs コンテキストウィンドウの成長

ReActの主な利点は観察に根差した推論です。コストはコンテキストウィンドウの成長です。ツール呼び出し20回で平均200トークン/トリプルのタスクでは、スクラッチパッドだけで4,000トークンを消費します。

障害モード: スクラッチパッドインジェクション

ReActのセキュリティ障害モードはスクラッチパッドを直接ターゲットにします。ツール観察に敵対的なコンテンツが含まれている場合、そのコンテンツはそのままスクラッチパッドに追加されます。

3つの緩和策が必要:

  1. スクラッチパッドに追加する前に各観察をサニタイズする
  2. Zone 2でディスパッチ前に各アクションを事前ログに記録する
  3. すべてのツール観察を信頼できない入力として扱う

Plan-and-Execute: 計画を実行から分離する

構造: プランナーが実行前に完全なタスク分解を生成する

Plan-and-ExecuteはReActが交互に行う2つの懸念事項を分離します。プランナーエージェントが目標を受け取り、実行が始まる前に完全なタスク分解を生成します。

コンテキストウィンドウの効率性: プランはコンパクトです(ほとんどのタスクで50-150トークン)。長期タスクでは、ReActと比較してコンテキストウィンドウを約40-60%削減します。

トレードオフ: 効率性 vs プランの陳腐化

主な障害モードはプランの陳腐化です。プランはT=0時点で生成されます。実行中に環境が変わると、残りのステップは無効な前提条件に基づく可能性があります。

セキュリティゲート: ディスパッチ前のプラン検査

プランはツール呼び出しの前に利用可能な個別のアーティファクトです。自動化された事前実行ポリシーチェック: 禁止されたアクションタイプのプランを解析し、各ツール名がエージェントの許可アクションリストに表示されることを確認します。

Reflexion: 言語強化学習による失敗からの学習

構造: 反省 -> 保存 -> 次の試みの条件付け

Reflexion(Shinn ら、Northeastern/MIT/Princeton、arXiv 2023年3月、NeurIPS 2023)は言語強化学習パターンです。タスクの試みが失敗した後、エージェントは自然言語での反省を生成し、エピソード記憶バッファに保存し、取得した反省に基づいて次の試みを条件付けます。

ベンチマーク結果: HumanEval コーディング pass@1 -- Reflexionで91% vs 80%(+11ポイント)。ALFWorld -- 97% vs 73%(+24ポイント)。

セキュリティリスク: エピソード記憶のポイズニング

Reflexionのセキュリティ障害モードはReActのスクラッチパッドインジェクションとは異なり、より持続的です。観察に敵対的なコンテンツが含まれている場合、生成された反省は攻撃者が制御したガイダンスを無期限にエンコードできます。

4つの緩和策: 保存前の反省サニタイズ; agent_id属性付きのバージョン管理されたブラックボードストレージ; 反省TTL; 行動変更反省のためのHITLレビューゲート。

Critic-Actor: 評価を実行から分離する

構造: アクターが提案し、クリティックが実行前に傍受する

Critic-ActorパターンはRLHFとConstitutional AI(Anthropic、2022)から派生し、アクション生成をアクション評価から分離します。アクターモデルがアクションを提案し、クリティックモデルがポリシーに対して提案されたアクションを評価し、クリティックの評価に合格したアクションのみがツール呼び出し層に進みます。

重要な実装の詳細: クリティックはアクターから独立したコンテキストウィンドウを持つ必要があります。同一コンテキストのクリティックはアクターの完全なコンテキストを共有します。

Critic-Actorを使用するタイミング: 不可逆性の閾値

Critic-Actorはレイテンシを追加し、アクションが不可逆性の閾値を超えるときに必要です。ファイル削除、メール送信、データベース書き込み、外部APIへのPOST呼び出し。

Supervisor-Worker: ロールベースのマルチエージェント協調

構造: スーパーバイザーが分解し、ワーカーがロールスコープ内で実行する

Supervisor-Workerは、スーパーバイザーエージェントが目標を受け取り、タスクに分解し、定義されたロールと制限されたツールセットを持つ専門的なワーカーエージェントに各タスクをディスパッチします。

  • ResearchWorker: ツール = web_searchread_fileread_url
  • CodeWorker: ツール = run_commandwrite_fileread_file
  • CommWorker: ツール = send_emailpost_message

セキュリティプロパティ: 侵害されたワーカーのブラスト半径の封じ込め

Supervisor-Workerの主なセキュリティプロパティはブラスト半径の封じ込めです。侵害されたワーカーは定義されたロール内のツールしか呼び出せません。send_email()を呼び出すよう注入された命令を受け取ったResearchWorkerはZone 2の権限チェックで失敗します。

Mixture-of-Agents: モデルインスタンス全体のアンサンブル推論

構造: モデル出力の多層集約

Mixture-of-Agents(MoA)、Together AIのWangら(arXiv 2024年6月)は、反復的精緻化層を通じて複数のLLMインスタンスからの出力を集約します。AlpacaEval 2.0のベンチマーク: 3層MoAで65.1%の勝率 vs GPT-4oの57.5% -- 7.6ポイントの品質向上。

トレードオフ: 品質 vs API コストの乗数

3モデル x 3層のMoAはユーザーリクエストあたり約12 LLM呼び出しが必要 vs 単一モデルの1回 -- 約12倍のAPIコスト増。MoAは高頻度でレイテンシに敏感なエージェントループには不向きです。

OpenLegionの見解: パターンセキュリティはインフラであり、プロンプトエンジニアリングではない

このガイドのすべてのエージェントデザインパターンには、元の学術論文がカバーしなかったセキュリティ障害モードがあります。パターン固有のセキュリティ障害モード:

  • ReActスクラッチパッドインジェクション: 敵対的な観察コンテンツが思考ステップを注入する
  • Plan-and-Executeプランインジェクション: プランアーティファクトがプランナーとエグゼキューターの間で変更される可能性がある
  • Reflexionメモリポイズニング: ポイズニングされた反省がセッションをまたいでエピソードバッファに持続する
  • 同一コンテキストクリティックのバイパス: アクターのコンテキストを注入するとクリティックの評価も破損する
  • スーパーバイザーの侵害: 侵害されたスーパーバイザーはすべてのワーカーに任意のタスクをディスパッチできる
セキュリティコントロールOpenLegionLangChain / LangGraphCrewAIAutoGenOpenAI Agents SDK
実行前アクションロギングZone 2、ネイティブ開発者の慣例開発者の慣例開発者の慣例開発者の慣例
ブラックボードプランACLインフラ強制利用不可利用不可利用不可利用不可
agent_id属性付きバージョン管理エピソード記憶ネイティブ開発者の慣例開発者の慣例開発者の慣例開発者の慣例
独立コンテキスト付き別モデルクリティックネイティブエージェント分離手動設定手動設定手動設定手動設定
ワーカーごとのZone 2ツール権限強制インフラ強制開発者の慣例開発者の慣例開発者の慣例開発者の慣例

OpenLegionで構築を開始する

よくある質問

エージェントAIデザインパターンとは何ですか?

エージェントAIデザインパターンは、エージェントシステム設計の繰り返し問題に対する名前付きの再利用可能なアーキテクチャソリューションです。主なパターンにはReAct、Plan-and-Execute、Reflexion、Critic-Actor、Supervisor-Worker、Mixture-of-Agentsが含まれます。間違ったパターンを選択すると具体的な障害が発生します。ReActを長期タスクに使うとコンテキストウィンドウのスラッシュが起きます。Plan-and-Executeは再計画トリガーなしにエラーが蓄積します。Reflexionはメモリのサニタイズなしに持続的なポイズニングを許可します。

AIエージェントのReActパターンとは何ですか?

ReAct(Reasoning + Acting)、Google BrainとPrincetonのYaoら(arXiv 2022年10月、ICLR 2023)は、チェーンオブソート推論とツール呼び出し、ツール結果を単一のコンテキストウィンドウのスクラッチパッドに交互に配置し、各推論ステップを実際のツール結果に根差します。ベンチマークでは、ReActはHotpotQAでチェーンオブソートのみより14ポイント上回り(57.1% vs 43.2% EM)、FEVERで9ポイント上回りました(75.4% vs 66.4%)。主なプロダクションのトレードオフはコンテキストウィンドウの成長。主なセキュリティリスクはスクラッチパッドインジェクション。

AIエージェントのPlan-and-Executeパターンとは何ですか?

Plan-and-Executeはプランナーエージェントとエグゼキューターエージェントとを分離し、ReActと比較して長期タスクのコンテキストウィンドウ消費を約40-60%削減し、ツール呼び出しの前にプランの自動化された事前実行ポリシーチェックを可能にします。主な障害モードはプランの陳腐化で、予想される観察と実際の観察の不一致を検出する再計画トリガーが必要です。

AIエージェントのReflexionパターンとは何ですか?

Reflexion(Shinn ら、NeurIPS 2023)はエージェントがタスク失敗の言語的要約を生成し、エピソード記憶に保存し、取得した反省に基づいて将来の試みを条件付けます。HumanEvalコーディングはpass@1で80%から91%(+11ポイント)、ALFWorldは73%から97%(+24ポイント)に改善しました。セキュリティリスクはエピソード記憶のポイズニングです。

AIエージェントのCritic-Actorパターンとは何ですか?

Critic-Actorパターンはクリティックモデル(実行前にポリシールーブリックに対して提案されたアクションを評価)とアクターモデル(アクションを生成して実行)とを分離し、クリティックの評価に合格したアクションのみがツール呼び出し層に到達することを保証します。不可逆アクション(ファイル削除、メール送信、データベース書き込み)が必要な場合に必須です。独立したコンテキストウィンドウを持つ別モデルのクリティックは同一コンテキストのクリティックよりも大幅に強力です。

AIエージェントのSupervisor-Workerパターンとは何ですか?

Supervisor-Workerはスーパーバイザーエージェントが目標を分解し、定義されたロールと制限されたツールセットを持つ専門的なワーカーエージェントにタスクをディスパッチするので、各ワーカーは最小権限で動作し、侵害されたワーカーは定義されたロール内のツールしか呼び出せません。ブラスト半径の封じ込めがパターンの主なセキュリティ上の利点です。

Mixture-of-Agents(MoA)とは何ですか?

Mixture-of-Agents(MoA)、Together AIのWangら(arXiv 2024年6月)は、反復的精緻化層を通じて複数のLLMプロポーザーインスタンスからの出力を集約し、モデルインスタンス間の無相関エラーを修正します。AlpacaEval 2.0で3層MoAはGPT-4oの57.5%に対して65.1%の勝率を達成しました。プロダクションコストは乗数的です: 約12倍のAPIコスト増。

ReAct、Plan-and-Execute、Reflexionの選び方は?

パターンの選択は3つの軸に従います: タスク期間、アクションの可逆性、自律性レベル。可逆的なアクションを持つ短いタスクにはReActが最もシンプルです。中期タスクにはPlan-and-ExecuteがコンテキストウィンドウをReActより40-60%削減します。エージェントが自分の失敗履歴から学べる繰り返しタスクにはReflexionが累積的なパフォーマンス向上をもたらします。アクションが不可逆的な場合はCritic-Actorを追加し、異なるタスクステップが本当に異なるツールセットを必要とする場合はSupervisor-Workerを追加します。