本番で稼働するAIエージェント——LLMがツールを呼び出し、外部APIやデータベースに接続して業務を実行するシステム——は、技術的には「分散システム」そのものです。 ネットワーク越しの呼び出しは部分的・一時的に失敗し得て、失敗は"例外"ではなく"通常状態の一部"として設計されるべきものです。本記事では、分散システムの信頼性パターンをエージェント運用に適用し、障害の分類から失敗注入による測定、ドリフト検知、安全対策までを「検知→隔離→修正」の運用ループとして統合する方法を解説します。
この記事の位置づけ
対象読者はビジネスサイド(CS責任者・プロダクトオーナー・運用マネージャー等)です。ソースコードやスクリプトは載せず、図解・表・箇条書きで「何ができるか・なぜそうするか」を中心に解説します。数値はすべて出典付き、設計提案には「推測」と明示しています。
なぜ「分散システムの信頼性パターン」をエージェントに持ち込むべきか
エージェントは分散システムである
本番のエージェントは、LLMへの問い合わせ、ツールの呼び出し、外部APIへのアクセス、データベースの参照といった複数のネットワーク越しの処理を連鎖的に実行します。これは分散システムの基本特性——「部分的・一時的な失敗が常に起こり得る」——をそのまま引き継ぎます。
AWS(Amazon Web Services)のBuilder's Libraryは、遅延が伸びるとクライアント・サーバ双方の有限資源(接続・ポート等)を保持し続け、資源枯渇を招くため、タイムアウトの設計が不可欠であると説明しています。この原則は、LLMの応答待ちやツール実行にもそのまま当てはまります。
障害の70%は「変更」に起因する
Google SRE(Site Reliability Engineering)の知見によれば、本番障害の約70%は稼働中システムへの変更に起因します。この経験則はエージェント運用においてさらに重要度が増します。なぜなら、エージェント環境での「変更」は従来以上に日常的に発生するためです。
- モデル更新 — プロバイダーによるモデルバージョンの切り替え
- プロンプト改修 — 業務要件に応じた指示文の変更
- ツール仕様変更 — 連携先ツールのAPI仕様変更
- 依存APIの挙動変化 — 外部サービスのレスポンス形式や認証方式の変更
- RAGドキュメント更新 — 参照する知識ベースの内容変化
これらの変更が「いつの間にか壊れる」確率を高めるため、障害パターンの整理→失敗注入→検知→隔離→修正を一体として組み立てる必要があります。
依存が増えるほど可用性が制約される
「依存先の数だけ障害点が増える」という算術も重要です。エージェントはLLM、外部API、ツール、データベースなど多数の依存先を持つため、SLO(サービスレベル目標)を満たすための"検知時間+復旧時間"の要求がよりシビアになります。
障害パターンの整理 — 失敗を4種類に分類する
エージェントのツール呼び出しや外部依存で発生する障害を信頼性パターンとして分類すると、対策の選択が体系的になります。以下は設計パターンとしての分類であり、環境により調整が必要です。
| 障害種別 | 具体例 | 推奨対策 | 注意点 |
|---|---|---|---|
| 一時障害(Transient) | タイムアウト、ネットワーク瞬断、過渡的な5xxエラー | 短いタイムアウト+限定回数のリトライ(指数バックオフ+ジッター) | 再試行回数と総時間の上限を必ず設定 |
| 過負荷・レート制限 | 429(Too Many Requests)、混雑時の遅延増大 | Retry-Afterヘッダを最優先で尊重し、キュー・バッチへ迂回 | リトライストームを防ぐための送出量制御が重要 |
| 持続障害(Persistent) | 依存APIの仕様変更、長期障害、認証失効 | サーキットブレーカーで遮断し、縮退動作・代替経路・人手介入へ | 復旧判定の基準と手順を事前に定義 |
| 意味的失敗(Semantic) | 入力不正、権限不足、"成功コードでエラー内容を返す"ケース | リトライではなく、入力修正・仕様確認・回帰テスト追加 | リトライしても改善しない障害を見分ける仕組みが必要 |
「意味的失敗」を見落とさない
ツールが正常なHTTPステータスコード(200 OK等)を返しつつ、実際にはエラー内容を含む応答を返すケースがあります。この場合、単純なステータスコード監視では異常を検知できません。応答内容の検証を観測設計に組み込むことが重要です。
信頼性パターンの適用 — タイムアウト・リトライ・サーキットブレーカー
タイムアウト — 「待ち続けない」ことが出発点
タイムアウトの設計は信頼性の基本です。AWSのBuilder's Libraryが指摘するように、長い待ちを許すほど資源保持が延び、全体のスループットが低下し、障害時にさらに悪化します。
OpenAI公式SDKのデフォルトタイムアウトは10分と設定されていますが、業務エージェントでは以下の4つの要素を同時に満たす「総時間上限」を制御層で管理するのが現実的です(推測)。
- (a) ユーザー体験上の許容待ち時間
- (b) 依存先の典型的な応答時間と尾部遅延(最も遅いケース)
- (c) 再試行回数の上限
- (d) 依存先の操作に副作用があるかどうか
リトライ — 「再試行すれば直る」障害だけに限定する
リトライは一時的な障害に有効ですが、誤った適用は「リトライストーム」を引き起こし、復旧途上の依存先に追い打ちをかけます。MicrosoftのAzure Architecture Centerは、以下の原則を具体的に述べています。
- 無限ループ的な再試行を避け、試行回数と総時間を制限する
- 指数バックオフで待ち時間を増やし、負荷を分散する
- ジッター(ランダムなゆらぎ)を加え、複数クライアントの再試行が同時に集中することを防ぐ
- 失敗時のふるまい(中断・エラー返却・縮退動作)を設計時に織り込む
gRPC公式ガイドも、再試行に適した失敗を理解し、パラメータと回数を定め、リトライ指標を監視することを求めています。エージェントのツール呼び出しでも、再試行が安全な操作と危険な操作を明示的に区別することが運用品質の安定に直結します。
429対策 — Retry-Afterヘッダの尊重が最優先
OpenAI公式ドキュメントは、429(Too Many Requests)エラーへの対応として、バックオフやリトライロジックは「レート制限とレスポンスヘッダを尊重する」形で実装すべきだと明記しています。
IETFではRateLimit系ヘッダの標準化ドラフトが進んでおり(2025年9月時点)、429とRetry-After、レート制限ポリシー表現の併用が示されています。したがって、実務的な優先順位は次のようになります。
- Retry-Afterヘッダがあれば最優先で従う
- なければ指数バックオフ+ジッターを適用
- レート制限"前"に送出量を調整する設計(スロットリング、キューイング、バッチ化)
サーキットブレーカー — 壊れた依存先を一時遮断する
サーキットブレーカーは、失敗が続く依存先へのアクセスを一時的に止めて回復時間を与え、全体の安定性を確保するパターンです。エージェント運用では、特定のツールやAPIが長時間応答しない場合に、そのツールを一時的に使用停止にして縮退動作(機能を制限しつつ応答する)に切り替える判断を自動化できます。
制御層での一元管理が鍵
2026年2月のエージェントアーキテクチャ論文は、認知(LLM)と実行を分離し、制御層にステートマシン・ポリシー・リトライ・サーキットブレーカーを持たせるレイヤード構造を示しています。これにより、LLMの思考プロセスと信頼性制御を独立に設計・改善できるようになります。
失敗注入で信頼性を測る — chaos engineeringの小規模適用
なぜ「わざと壊す」のか
失敗注入(fault injection / chaos engineering)は、運用の信頼性を「測定可能な仮説」に落とすための手法です。Principles of Chaos Engineeringは、次の4ステップを提示しています。
- 定常状態を定義する — 測定可能な出力(成功率、応答時間等)を決める
- 仮説を置く — 「この障害が起きても、指標の悪化はこの範囲に収まる」
- 現実的な障害を注入する — テスト環境で障害を再現する
- 仮説を検証する — 定常状態との差分を観測する
Google Cloudの公式ブログ(2025年10月)も、定常状態仮説を置き、現実的な失敗条件を模倣することを"始め方"として強調しています。
エージェント向けの「小さく始める」方法
AWS FIS(Fault Injection Service)のユーザーガイドは、「最初はテスト環境から」「小さく単純な実験から」「優れたモニタリングとアラートが前提」と具体的な運用手順を示しています。
エージェントでは、インフラ破壊をいきなり行うのではなく、まずツール呼び出しの失敗注入から始めるのが現実的です(推測)。注入の原則(定常状態、仮説、現実的条件、差分観測)は一次資料の手法をそのまま適用できます。
仮説フォーマット — AWS FISの型をエージェントに転用
AWS FISの仮説フォーマットをエージェント向けに整理すると、次の3要素になります。
- 定常状態(SLI候補) — タスク成功率、p95タスク時間、ツール呼び出し成功率、429比率、再試行回数分布、縮退回答率
- 仮説 — 「〔障害注入〕をしたとき、〔ビジネス/技術指標〕の悪化が〔閾値〕を超えない」
- ストップ条件 — SLO逸脱、エラーバジェット消費、コスト急増
2025年11月には、AWS FISのシナリオライブラリに「AZ内の遅延増(Application Slowdown)」のような"部分的劣化"シナリオが追加され、観測設定の検証やアラート閾値調整に使えることが紹介されています。
日本市場での導入のコツ
AWS FISのガイドラインにある「まずテスト環境で反復し、監視・アラートが整ってから段階的に広げる」という手順は、規制産業や委託開発・運用分離が多い体制でも導入しやすい進め方です。本番環境での失敗注入は十分な準備と関係者の合意のもとで行いましょう。
ドリフト検知の統合 — 「いつの間にか壊れる」を防ぐ
ドリフトとは、エージェントの性能や品質が時間とともに劣化する現象です。「モデルが悪くなった」だけではなく、複数の要因が複合的に作用します。
ドリフトの4つの発生源
- (a) 入力分布の変化 — ユーザーの問い合わせ内容や傾向が変わる
- (b) 外部知識の変化 — RAGで参照するドキュメントの更新
- (c) モデル挙動の変化 — プロバイダーによるモデル更新・仕様変更
- (d) ツール・APIの変化 — 連携先サービスのレスポンス形式や挙動の変更
これらを個別に監視すると"穴"ができやすいため、観測設計を統合するのがポイントです(推測)。
入力分布ドリフトの検知
Vertex AI Model Monitoring(Google Cloud)は、ドリフトを「ベースライン分布からの逸脱」として捉え、閾値超えで通知し、再評価や再学習に繋げる流れを示しています。v2ではモデルバージョンに紐づけた監視や、Jensen-Shannon divergence等の統計指標もサポートされています。
Amazon SageMaker Model Monitorも、本番の品質問題を検知して通知し、ルールに基づくドリフト検出・アラートの枠組みを提供しています。
一方で、Azure Machine Learningのデータドリフト機能(preview)は2025年9月1日にリタイアされ、Model Monitorへ移行する方針が明記されました。これは監視ツール自体の変更が運用上のドリフト要因になる例であり、依存製品の変更を監視に組み込む必要性を示しています。
モデル挙動の変化を追跡する
OpenAIのヘルプページでは、モデルリリースノートやModel Specの更新(2025年10月27日等)が告知されています。エージェントの安全・品質要件は時間とともに変わるため、ドキュメント更新もドリフトとして追跡する必要があります。
OpenAIは「chain-of-thought monitorability(思考過程の監視可能性)は、訓練手順やデータソースの変化に対して脆い可能性がある」とも述べており(2025年12月18日)、評価スイートを作って追跡可能にする姿勢を示しています。
さらにOpenAIは"evals"(評価)を、曖昧な目標を仕様化し測定し改善する枠組みとして位置づけ、信頼性向上や重大エラー減少に資すると述べています(2025年11月19日)。これはドリフト検知=統計検知+継続評価(eval)として統合する方向性を裏付けます。
依存API変更の早期検知 — 契約テストの活用
依存するAPIの変更を「壊れる前」に検知するために、契約テスト(contract testing)が有効です。Pact Docsは、テストが過度に厳密だと脆くなるため「必要十分に緩く」書くべきと警告しています(2025年5月16日)。
Pactの2025年5月アップデート記事では、以下の2つのドリフトが明示されています。
- Provider drift — API仕様と実装の乖離
- Consumer drift — 実際に使っているAPI表面の変化
バージョニング(SemVer等)が付いていても壊れる前提で、契約テストと監視を組み合わせることが重要です(推測)。
エージェント観測の標準化 — OpenTelemetryの動向
OpenTelemetryは、AIエージェント観測のセマンティック規約(semantic conventions)の標準化に取り組んでいます。Datadogは、OpenTelemetry GenAI Semantic Conventions(v1.37+)をサポートし、プロンプト・応答・トークン使用量・ツール呼び出し・エージェント呼び出し等を標準語彙で計装できることを説明しています(2025年12月1日)。
この流れは、ドリフト検知と障害パターン検知を一つのトレース基盤に載せる現実的なルートを提供します(推測)。
安全対策と隔離 — Prompt Injectionと依存変更への防御
Prompt Injectionの脅威
エージェントの信頼性は、可用性だけでなく「攻撃により誤作動する」リスクも含みます。OWASP Top 10 for LLM Applications(version 1.1)は、Prompt Injectionを筆頭のリスクに挙げ、Training Data Poisoning、Model Denial of Service、Supply Chain Vulnerabilitiesなども列挙しています。
OWASPのPrompt Injection Prevention Cheat Sheetは、自然言語の指示とデータが分離されない設計が根本原因であると説明しています。英国NCSC(国家サイバーセキュリティセンター)も「Prompt injectionはSQL injectionとは違う(より悪い可能性がある)」という論点で、混同させられる代理人(confused deputy)的な性質を強調しています(2025年12月8日)。
「入力フィルタ」だけでは不十分 — 隔離の設計
OpenAIの「安全なエージェント構築」ドキュメントは、未信頼テキストが入力に混入して指示を上書きし、下流のツール呼び出しでデータ流出や不整合アクションが起き得ると説明しています。
MITRE ATLAS OpenClaw Investigation(2026年2月9日)は、実観測に基づく高リスク攻撃連鎖として、直接・間接プロンプトインジェクション、AIエージェントのツール呼び出し悪用、エージェント設定改変などを挙げています。緩和策として以下が明示されています。
- 未信頼データに基づくツール呼び出しの制限
- Human-in-the-loop(重要な操作に人間の承認を挟む)
- AI Telemetry Logging(エージェントの行動ログの記録)
- メモリハードニング(エージェントの記憶領域の保護)
- コンポーネント分離と権限設定
単一エージェントが未信頼入力の取り込みと高権限の実行を同時に担う設計は危険であり、信頼性パターンとしてのワークロード隔離・権限境界・承認ゲートがセキュリティ面でも必須になります。
継続的レッドチームの必要性
日本のAISI(AIセーフティ・インスティテュート)のレッドチーミング手法ガイド(Version 1.10, 2025年3月31日)は、「運用環境における悪意ユーザーへの耐性評価」や「継続的レッドチームで見落としがちな不備に対処できる」と述べています。
OpenAIの実務ガイドは、関連度分類器・安全分類器(jailbreak/prompt injection検知)・PIIフィルタ・ツール安全策など、エージェントに複数のガードレイヤを重ねる設計を例示しています。安全対策は単一の防壁ではなく、多層防御(defense in depth)として組み立てるのが鉄則です。
検知→隔離→修正の運用ループ
ここまでの要素を統合し、「検知→隔離→修正」の運用ループとして要約します(推測。ただし構成要素は一次資料に基づきます)。
検知 — 何を同一の観測面に載せるか
以下の5つの監視カテゴリを統合的に管理します。
- SLO/SLI — タスク成功率、応答時間、可用性
- ツール失敗率 — 429比率、タイムアウト率、エラー分布
- ドリフト指標 — 入力分布変化、モデル挙動変化、ドキュメント更新検知
- 安全モニタ — Prompt Injection検知、異常パターン検出
- トレース — OpenTelemetry標準セマンティクスによるエージェント行動の記録
隔離 — 影響を封じ込める
- サーキットブレーカー — 失敗が続く依存先を一時遮断
- 縮退動作 — 機能を制限しつつ安定したサービスを継続
- ツール呼び出し制限 — 未信頼データ経由の実行を禁止
- Human-in-the-loop — 高リスク操作に人間の承認を介在
- 権限境界・コンポーネント分離 — 入力処理と実行を分離
修正 — 原因を除去し、再発を防ぐ
- ロールバック・設定更新 — 問題のある変更を巻き戻す
- 契約テスト追加 — 依存APIの変更を早期に検知する仕組みを強化
- 評価(eval)更新 — ドリフトに対応した評価基準の見直し
- 監視閾値調整 — 検知精度を改善するための閾値チューニング
- 失敗注入の再実施 — 修正が「効いた」ことを実証的に確認
あわせて読みたい
まとめ:信頼性は設計するもの
エージェントの信頼性について、本記事のポイントを整理します。
- エージェントは分散システムである — ネットワーク越しの呼び出しは部分的・一時的に失敗し得る。失敗を"例外"ではなく"設計上のイベント"として扱うことが出発点
- 障害を4種類に分類する — 一時障害、過負荷・レート制限、持続障害、意味的失敗の区分により、対策の選択が体系的になる
- 制御層に信頼性パターンを集約する — タイムアウト、リトライ(指数バックオフ+ジッター)、サーキットブレーカーをLLMの思考と分離した制御層で管理する
- 失敗注入で効果を測る — 定常状態の定義→仮説設定→障害注入→差分観測の4ステップを、まずツール呼び出しレベルで小さく始める
- ドリフト検知を統合する — 入力分布、モデル挙動、依存API、ドキュメント更新を一つの観測面で監視し、統計検知と継続評価(eval)を組み合わせる
- 安全対策は多層防御で — Prompt Injection対策は入力フィルタだけでなく、隔離・権限境界・承認ゲート・継続的レッドチームを重ねる
- 検知→隔離→修正のループを回す — 単発の対策ではなく、運用ループとして回し続けることで信頼性を維持・改善する
エージェントの信頼性設計についてご相談ください
Agenticベースでは、本記事で解説した信頼性パターンの適用、失敗注入テストの設計、ドリフト検知の導入など、エージェント運用の品質向上を支援しています。「自社のエージェントにどこから手をつけるべきか」「監視設計のレビューをしてほしい」といったご相談も歓迎です。お気軽にお問い合わせください。
この記事の著者
Agentic Base 編集部
AIエージェントとWebメディア運用の知見を活かし、実践的なナレッジを発信しています。



