シスコAIがFAPOを発表:ステップレベルの障害属性とClaude Codeオーケストレーションによるパイプライン認識型プロンプト最適化
シスコ基礎AIは、Claude Code駆動のシステムであるFAPO(完全自動プロンプト最適化)をオープンソース化しました。これは、マルチステップLLMパイプラインをベースラインプロンプトから目標精度まで自律的に最適化します。チェーンを評価し、ステップレベルで障害を属性付け、プロンプト、パラメータ、チェーン構造の各レベルでバリアントを提案し、独立したレビュアーで検証します。シスコの評価では、18のモデル・ベンチマーク比較のうち15でGEPAを上回りました。
プロンプトを正しく作成することは、信頼性の高いLLMアプリケーションをリリースする上で依然として最も難しい部分です。小さな言い回しの変更で精度が20%も変動することがあります。少数の例でうまくいく方法は、スケールするとしばしば機能しなくなります。多段階パイプラインが誤った答えを返した場合、失敗したステップを見つけるには中間出力を手動で検査する必要があります。
シスコAIはこのボトルネックに対処するためにFAPOを導入しました。FAPOはFully Automated Prompt Optimization(完全自動プロンプト最適化)の略で、Claude Code駆動のシステムであり、ベースラインプロンプトから目標精度までLLMパイプラインを最適化します。ユーザーはデータセットと初期プロンプトを提供します。その後、FAPOは評価、障害の分類、バリアントの提案、検証、反復を行います。ループ全体はClaude Codeエージェントによって調整されます。このプロジェクトはApache 2.0ライセンスでオープンソース化されており、最適化エージェントとしてCodexもサポートしています。
シスコが報告した評価では、FAPOは最先端のプロンプト最適化手法であるGEPAを18のモデル・ベンチマーク比較のうち15で上回りました。FAPOがパイプライン変更にエスカレーションした2つのベンチマークでは、GEPAに対する平均ゲインは+33.8ppに達しました。
FAPOはマルチテナント評価・最適化フレームワークです。テナントは自己完結型の最適化プロジェクトであり、各テナントディレクトリには1つのタスクのプロンプト、データセット、チェーン定義、スコアラー、設定が含まれています。テナントは分離されているため、無関係なタスクが互いに干渉することなく並行して最適化できます。コアエンジンはhephaestusという名前で、ドメイン非依存です。評価、チェーン実行、スコアリングを処理します。チェーンは各テストケースを処理するLangGraph状態グラフです。初期状態で、FAPOはOpenAI、Baseten、SageMakerの3つのプロバイダーをサポートしています。
ユーザーが提供する必要がある唯一の入力はデータセットです。これは、成功を定義するペアの入力と期待される出力です。FAPOはそれを検証セットと保持テストセットに分割します。検証セットが反復を駆動し、テストセットは最終的な1回だけの評価にのみ使用されます。タスクの説明から、Claudeが残りの部分(初期プロンプト、チェーン、スコアラー)を足場作りできます。
最適化ループの仕組み:コンポーネントが揃うと、FAPOは目標精度に達するまで閉じたループを実行します。各サイクルは6つの段階で構成されます。評価:データセット上でチェーンを実行し、ケースごとのスコアとステップレベルの出力を収集。属性:ルールベースのヒューリスティックとLLM分析を使用して、失敗を根本原因ごとに分類。提案:主要な失敗クラスターをターゲットにしたバリアントを生成。レビュー:独立エージェントが提案のスコープ準拠とデータリークを検証。比較:以前の最良を改善する場合のみバリアントを受け入れ、それ以外は拒否。反復:目標精度に達するか、最適化予算が尽きるまで継続。
システムは3つのエスカレーションレベルで動作します。プロンプト編集は最もコストが低く、最初に試みられます。パラメータ変更はretrieval_kやtemperatureなどの設定値を調整します。構造変更はチェーントポロジーを変更し、例えば自己反映ノードの追加やReActパターンへの切り替えなどを行います。FAPOは1つのレベルを尽くしてから次のレベルにエスカレーションします。
ステップ属性は失敗を4つのクラスに分類します。検索失敗は空または無関係なコンテンツを返します。カスケード失敗は初期ステップが空の出力を生成したときに始まります。フォーマット失敗は正しい答えをスコアラーが解析できないテキスト内に隠します。推論失敗は良い入力でも誤った結論を生成する場合に発生します。フォーマットと推論の問題はプロンプトで対処可能であり、検索とカスケードの問題は構造で対処可能です。
過学習を防ぐためのガードレール:トレーニング分割ケースのみを検査し、検証とテストは集計スコアのみを公開。すべてのバリアントは新しい不変ファイルであり、その場で編集されることはありません。各提案は実行前に独立したレビュアーによってチェックされます。
ベンチマークケース:FAPO vs GEPA。シスコチームはFAPOをGEPA(Generalized Evolutionary Prompt Architecture)と評価しました。GEPAは進化的検索と遺伝的オペレーターを使用してマルチステップパイプラインのプロンプトを最適化する最先端の手法です。両システムは同一のベースラインパイプラインとプロンプトから開始しました。FAPOは属性がボトルネックを見つけた場合に構造変更にエスカレーションできましたが、GEPAはプロンプトレベルの最適化に制限されていました。
比較は6つのベンチマークと3つのタスクモデル(GPT-4.1-mini、GPT-5.4-mini、Gemma 3-12B)に及びました。Claude Opus 4.6はFAPOのオーケストレーターおよびGEPAのリフレクターの両方として機能しました。以下のスコアは3つのタスクモデルで平均化されています。
HoVer: ベースライン35.9, GEPA 48.5, FAPO 83.8, ゲイン +35.3pp;IFBench: 35.7, 48.5, 80.7, +32.2pp;LiveBench-Math: 51.0, 52.6, 62.0, +9.4pp;HotpotQA: 50.9, 61.8, 68.3, +6.5pp;Papillon: 73.6, 90.7, 94.9, +4.2pp;AIME: 16.7, 16.0, 12.9, -3.1pp。
FAPOは18のモデル・ベンチマーク比較のうち15で勝利し、平均ゲイン+14.1ppを達成しました。パイプライン変更にエスカレーションしたHoVerとIFBenchでは、FAPOは6つのモデル・ベンチマークペアすべてに勝利し、平均ゲイン+33.8ppでした。構造変更のない4つのベンチマークでは、FAPOはプロンプト最適化のみで12のうち9に勝利しました。AIMEはGEPAがリードした唯一のベンチマークで、差は3.1ppであり、これは確率的試行の標準偏差よりも小さい値です。
FAPOはマルチステップLLMパイプラインを対象としており、単一プロンプトではありません。具体的なユースケース:マルチホップ質問応答(HotpotQAベンチマークでFAPO 68.3% vs GEPA 61.8%)、指示追従(IFBenchでフォーマット制約の失敗によりエスカレーション、80.7%テスト精度)、分類、ReActエージェント(MCPワークフロー拡張によるツール呼び出し最適化)。
開始方法:最も速い方法はClaude Codeにテナントファイルを作成させることです。リポジトリからタスクを平易な英語で記述し、JSONLデータセットを追加します。各行はテストケースで、case_id、task_type、context、expected、metadataを含みます。スコアラーはチェーン出力と期待される答えを比較し、validate_caseとscore_caseを実装します。セットアップをベースライン評価で検証した後、テナントと設定、成功基準(例:composite_score >= 90)を指定して最適化エージェントを起動します。Claude Codeはスコープ契約を生成し、自律的に反復します。すべてのプロンプトバリアント、設定、バリアントごとの分析はディスクに書き込まれ、各実行は監査可能です。その後、ローカルの読み取り専用UI「FAPO Explorer」で成果物を閲覧できます。
強み:パイプライン認識型スコアリングにより、最終出力だけでなく原因となったステップに失敗を属性付け。3レベルエスカレーションでプロンプトだけでは修正できない失敗に対処。過学習防止のガードレール。Apache 2.0のオープンソースでClaude CodeとCodexをサポート。弱み:最適化品質はユーザーが提供するデータセットの品質とカバレッジに依存。プロジェクトは最近のものであり、独立した本番環境での実績は限定的。デフォルトループはスタンドアロン最適化ツールではなく、エージェンティックコーディングツール(Claude CodeまたはCodex)に依存。