【AgentOps・カオスエンジニアリング編】”設計したはず”を壊して確かめる——エージェントの障害注入とゲームデーの運用規律|ツールのタイムアウト・429・壊れたツール応答・モデルの劣化・RAGの空振り・提供元のダウンを意図的に起こし、リトライ規律・フェイルオーバー・デグレード・キルスイッチが”本番で本当に効くか”を定期的に確かめる回復力テストの設計

連載ではこれまで、リトライ規律、提供元をまたぐフェイルオーバー、キルスイッチ、自動復旧(AI-SOAR)といった「壊れたときに効くはずの仕組み」を一通り作ってきた。だが、ここに一つ大きな穴がある。それらの仕組みが本番で本当に効くかを、誰も確かめていないことだ。

ネットワーク運用の現場では、冗長構成を組んだら切替試験をするのが当たり前だ。回線を抜き、ルーターを落とし、「設計どおりに副系へ切り替わり、想定時間内に戻るか」を保守時間帯に実際に確認する。確認していない冗長は、冗長ではなく”冗長のつもり”にすぎない。

ところがエージェントの現場では、この習慣がほとんど根付いていない。フェイルオーバーの設定は書いたが一度も発動させたことがない。キルスイッチは用意したが、押したら何秒で止まるのか誰も知らない。リトライ設定はSDKの既定値のまま。こうした状態で最初の”本番の障害”を迎えると、仕組みが効かないことを障害の最中に知ることになる。

本稿は、ツールのタイムアウト・429・壊れたツール応答・モデルの劣化・RAGの空振り・提供元のダウンといった障害を意図的に起こし、リトライ規律・フェイルオーバー・デグレード・キルスイッチが”本番で本当に効くか”を定期的に確かめる、エージェントの回復力テスト(カオスエンジニアリングとゲームデー)の設計をまとめる。想定読者は、エージェントを本番運用しているSRE・プラットフォームチーム・情シス、そしてAgentOpsの体制づくりを任された責任者だ。

  1. 本稿の位置づけ——”作る”の次は”壊して確かめる”
  2. なぜエージェントには”障害試験”が必要なのか
    1. “設計したはず”は、検証されるまで仮説にすぎない
    2. エージェントは”エラーを返さずに”壊れる
    3. ネットワーク運用の「切替試験」から学ぶ
  3. カオスエンジニアリングの5原則をエージェントに当てはめる
  4. 障害カタログ——何を注入するか
    1. インフラ系——”止まる・遅い・断られる”
    2. 意味系——”動いているが、中身が壊れている”
  5. 注入の仕組み——どこに”蛇口”をつけるか
    1. 注入ポイントは4か所
    2. 注入は”対象を絞って、印をつけて”行う
  6. 実験の設計——仮説・定常状態・爆発半径・中止条件
    1. 実験カードをつくる
    2. 定常状態は”正直さ”まで含める
    3. 段階を踏んで本番に近づける
  7. 確かめるべき6つの問い——仕組みごとの合格基準
  8. ゲームデー——仕組みではなく”人と手順”を試す
    1. 役割を決める
    2. 進行の例(半日)
    3. シナリオは”複合障害”まで育てる
    4. 振り返りを”還流”させる
  9. 定期化——”一度やった”で終わらせない
    1. 回復力スコアカードで”効き目”を記録する
  10. よくある落とし穴
  11. 回復力テスト・チェックリスト
  12. よくある質問(Q&A)
    1. Q1. 本番でわざと障害を起こすのは、危険ではないですか?
    2. Q2. AIレッドチーミングをすでにやっています。それとは何が違うのですか?
    3. Q3. 小規模なチームです。どこから始めればよいですか?
    4. Q4. 専用のカオスエンジニアリングツールは必要ですか?
    5. Q5. エージェントは非決定的なので、同じ実験でも結果が毎回違います。どう判定すればよいですか?
  13. まとめ——”効くはず”を”効いた”に変える
  14. 関連記事
  15. 参考リンク

本稿の位置づけ——”作る”の次は”壊して確かめる”

本稿は「障害」を扱うが、これまでの記事とは狙いが違う。混同しやすいので、先に線を引いておく。

記事扱ったもの本稿との違い
AIレッドチーミング運用(8/22)悪意ある入力への耐性(セキュリティ)本稿は故障への耐性(信頼性)。攻撃者がいなくても起きる壊れ方を扱う
AgentOps②・評価(8/14)正常な動作の品質をどう測るか本稿は異常時にどう壊れるかを測る。平常時の正答率が高くても、壊れ方が悪ければ本番では事故になる
AgentOps⑧・インシデント運用(9/5)障害が起きた後の対応規律本稿は障害が起きる前に、わざと起こして練習する。インシデント手順の”予行演習”にあたる
キャパシティ運用編(9/27)・緊急停止設計(8/9)・AI-SOAR(9/22)リトライ規律・フェイルオーバー・キルスイッチ・自動復旧という仕組みを作る話本稿はそれらを検証する話。作った仕組みの”効き目”を定期的に証明する

一言でいえば、これまでの記事が「設計書」だとすれば、本稿は「試験成績書」をつくる回だ。

なぜエージェントには”障害試験”が必要なのか

“設計したはず”は、検証されるまで仮説にすぎない

フェイルオーバーやキルスイッチは、普段はまったく使われない経路だ。普段使われない経路ほど、設定の誤り・権限の不足・依存先の変更・手順の陳腐化が静かに積み上がる。副系のAPIキーが失効している、切替先モデルのプロンプトが旧版のまま、キルスイッチのフラグを読むコードがリファクタリングで消えている——こうした不具合は、障害が起きて初めて表に出る。

定期的に”使ってみる”以外に、普段使わない経路の健全性を確かめる方法はない。

エージェントは”エラーを返さずに”壊れる

従来のシステムと比べて、エージェントの障害には厄介な特徴がある。

  • 失敗を取り繕う:ツールがタイムアウトしても、LLMは「取得できませんでした」と正直に言うとは限らない。それらしい値を推測で埋めて、タスクを”成功”として完了させることがある
  • 劣化が連続的:ネットワーク機器のように「動く/止まる」の二値ではなく、品質がじわじわ下がる。モデルの挙動変化やRAGの検索精度低下は、HTTPステータスには現れない
  • 非決定的:同じ障害を注入しても、毎回同じ反応をするとは限らない。1回の試験で「大丈夫だった」は証明にならない
  • 多段で増幅する:1タスクで何十回もLLMやツールを呼ぶため、1か所の小さな障害がリトライ・再計画・再検索を通じて全体に波及する

つまりエージェントでは、「落ちたことに気づけるか」「落ちたときに正直に劣化するか」自体が試験対象になる。これは従来の障害試験にはなかった観点だ。

ネットワーク運用の「切替試験」から学ぶ

ネットワーク運用には、障害試験の長い蓄積がある。

  • 冗長切替試験:主系回線を物理的に抜き、ルーティングが副系に収束するまでの時間と、パケットロスの量を測る
  • 切り戻し試験:主系を戻したとき、フラップ(切替の往復)せずに安定して戻るかを確かめる
  • 作業手順書(MOP)と中止基準:試験の前に「どの順で何をするか」「何が起きたら即中止して元に戻すか」を文書で決め、承認を取ってから実施する
  • 保守時間帯と事前告知:影響範囲を限定し、関係者に知らせたうえで実施する

エージェントのカオスエンジニアリングは、これらをほぼそのまま持ち込める。違うのは、注入する障害の種類と、”正常”の定義の難しさだけだ。

カオスエンジニアリングの5原則をエージェントに当てはめる

カオスエンジニアリングは、Netflixなどで体系化された「本番環境で乱れた状況に耐えられるという確信を、実験によって築く規律」だ。その基本原則(Principles of Chaos Engineering)をエージェントに読み替えると、次のようになる。

原則一般的な意味エージェントでの読み替え
定常状態の仮説を立てるシステムの”正常”を、出力の指標で定義するタスク成功率・p95所要時間・ツールエラー率に加え、「誤った成功」率(失敗を成功として報告した割合)を定常状態に含める
現実の事象を変化させる実際に起こりうる障害を注入するサーバー停止だけでなく、壊れたツール応答・モデルの劣化・RAGの空振りという”意味の障害”も注入する
本番環境で実験する本番のトラフィックでしか見えない挙動があるステージングで十分に回してから、本番はカナリア(ごく一部のトラフィック)に限定して行う
自動化して継続実行する一度きりではなく継続的に実験するモデル更新・プロンプト変更・ツール追加のたびに壊れ方が変わるため、CIと定期ジョブに組み込む
爆発半径を最小化する実験による影響を限定する対象テナント・エージェント・時間を絞り、中止条件と即時停止スイッチを実験側にも用意する

特に1行目が重要だ。エージェントの定常状態を「エラー率」だけで定義すると、障害を取り繕って”成功”したタスクを見逃す。定常状態には必ず、正直さの指標を入れる。

障害カタログ——何を注入するか

最初に、注入する障害の一覧(障害カタログ)をつくる。ここでは、エージェント特有の障害を「インフラ系」と「意味系」の2つに分けて整理する。

インフラ系——”止まる・遅い・断られる”

障害注入の方法(例)確かめたい仕組み期待する振る舞い
ツールのタイムアウトツール/MCPサーバーへのプロキシで応答を遅延させるタイムアウト設定・リトライ規律設定時間で打ち切り、リトライは1層だけ、上限回数で諦めて”取得できなかった”と報告する
429(レート制限)LLMゲートウェイで一定割合のリクエストに429とRetry-Afterを返すバックオフ+ジッター・リトライ予算・優先度キューRetry-Afterを尊重し、リトライが同期せず、優先度の高いタスクが先に通る
応答の遅延(スローダウン)LLM応答に数秒〜数十秒の遅延を加えるタスク全体のタイムアウト・デグレード全体の締め切りを守り、間に合わない場合は縮退モードに切り替える
提供元のダウン主系プロバイダ宛てのリクエストをすべて5xxまたは接続失敗にするフェイルオーバー・切り戻し決めた条件で副系に切り替わり、復旧後はフラップせずに段階的に戻る
依存サービスの部分障害特定のツールだけ、または特定リージョンだけを失敗させるサーキットブレーカー・影響範囲の分離壊れたツールだけが遮断され、他のツールを使うタスクは影響を受けない

意味系——”動いているが、中身が壊れている”

障害注入の方法(例)確かめたい仕組み期待する振る舞い
壊れたツール応答JSONの欠損・型違い・空配列・想定外のエラーメッセージを返すスキーマ検証・出力ガード検証で弾き、推測で値を埋めずに失敗として扱う
モデルの劣化一部のリクエストを小型・旧版のモデルに差し替える、温度を上げるオンライン評価・品質アラート品質指標の低下を検知し、アラートまたは自動切替が働く
RAGの空振りリトリーバが0件または無関係な文書を返す根拠なし時の応答方針「根拠が見つからない」と明示し、捏造した回答を返さない
古いデータの混入インデックスに期限切れの文書を混ぜる鮮度チェック・出典表示日付の古い根拠を識別し、注記または除外する
ツールの”成功したふり”200 OKを返すが、実際には処理していない事後検証(読み戻し確認)書き込み系ツールの結果を読み戻して確認し、不一致を失敗として扱う

意味系の障害は、従来のカオスエンジニアリングツールがあまり想定していない領域だ。しかしエージェントの本番事故の多くは、こちらで起きる。インフラ系で「止まり方」を、意味系で「正直さ」を試すと覚えておくとよい。

注入の仕組み——どこに”蛇口”をつけるか

注入ポイントは4か所

障害を注入する場所は、エージェントと外部の境界に置くのが基本だ。エージェント本体のコードに障害注入のロジックを書き込むと、本番コードが汚れ、切り忘れの事故も起きやすい。

  1. LLMゲートウェイ:全エージェントのLLM呼び出しが通る共通ゲートウェイで、429・5xx・遅延・モデル差し替えを注入する。キャパシティ編で導入したゲートウェイがあれば、そのまま注入点になる
  2. ツール/MCPプロキシ:ツール呼び出しの手前にプロキシを置き、タイムアウト・壊れた応答・成功したふりを注入する。TCPレベルの遅延や切断であれば、Toxiproxyのような汎用ツールも使える
  3. リトリーバ(RAG):検索結果を0件にする、無関係な文書に差し替える、古い文書を混ぜる
  4. クラウド基盤:AWS Fault Injection Service(FIS)やAzure Chaos Studioなどのマネージドサービスで、インスタンス停止・ネットワーク遅延・リージョン障害を起こす

注入は”対象を絞って、印をつけて”行う

注入の設定には、必ず次の3つを持たせる。

  • 対象の絞り込み:テナント・エージェント・リクエストヘッダー・トラフィックの割合で対象を限定する
  • 実験IDの付与:注入したリクエストのトレースに実験ID(例:chaos.experiment_id)を属性として付ける。これがないと、観測ダッシュボード上で「実験による失敗」と「本物の障害」を区別できない
  • 有効期限:注入設定には必ず終了時刻を持たせ、消し忘れても自動で無効になるようにする

ネットワーク運用でいえば、試験用のACLやルートマップに「試験後に必ず削除」と書いておくのと同じだ。消し忘れた試験設定が本番障害の原因になる、という事故は昔から繰り返されてきた。

実験の設計——仮説・定常状態・爆発半径・中止条件

実験カードをつくる

一つひとつの実験は、実施前に「実験カード」として文書化する。ネットワーク運用の作業手順書(MOP)にあたるものだ。

項目記入例
実験名主系LLM提供元の全面ダウン時のフェイルオーバー
仮説主系が5xxを返し続けた場合、切替条件を満たしてから所定時間内に副系へ切り替わり、P0タスクの成功率は定常状態から大きく下がらない
定常状態の指標タスク成功率、p95所要時間、誤った成功率、切替までの時間
注入する障害LLMゲートウェイで、主系宛てリクエストの100%に503を返す
対象(爆発半径)ステージング環境の全エージェント/本番では社内向けエージェントのトラフィック5%
実施時間30分(注入15分+切り戻し観察15分)
中止条件対象外のトラフィックでエラー率が上がった、P0タスクの成功率が許容値を下回った、副系のコストが想定を超えた
中止手順注入フラグを無効化 → 切替状態を手動で主系に戻す → 関係者に通知
担当・承認実施者、安全責任者、承認者
結果と対応仮説どおりか、ずれた点、修正チケット

定常状態は”正直さ”まで含める

実験中に見る指標は、次の5つを基本にする。

  • タスク成功率:実際に目的を達成したタスクの割合(評価編②のゴールデンセットや自動判定で測る)
  • p95所要時間:遅くなっても締め切り内に収まっているか
  • リトライ率・429率:リトライが増幅していないか
  • 誤った成功率:失敗したのに成功として報告したタスクの割合。本稿で最も重要な指標
  • 正直な失敗率:「できなかった」と正しく報告したタスクの割合。障害時にはこちらが増えるのが正しい

障害を注入したとき、成功率が下がること自体は問題ではない。問題なのは、成功率が下がらないのに中身が壊れていること、つまり誤った成功率が上がることだ。

段階を踏んで本番に近づける

  1. ローカル・CI:モックの提供元・ツールに障害を仕込み、単体の振る舞い(タイムアウト処理、スキーマ検証)を確かめる
  2. ステージング:本番に近い構成で、障害カタログを一通り流す。ここで大半の問題が見つかる
  3. 本番シャドー:本番トラフィックを複製し、結果をユーザーに返さない環境で実験する
  4. 本番カナリア:社内向けや影響の小さいタスクに限定し、ごく一部のトラフィックで実施する

いきなり本番で試す必要はない。ただし、ステージングだけで終わらせると「本番の設定だけ違っていた」という事故を見逃す。最終的には本番で、小さく確かめる。

確かめるべき6つの問い——仕組みごとの合格基準

これまでの連載で作ってきた仕組みごとに、「何を注入し、何が起きれば合格か」を決めておく。

仕組み問い注入する障害合格基準の例
リトライ規律リトライは輻輳を増幅していないか429を一定割合で返す、応答を遅延させるリトライする層が1つだけ、リトライ予算内に収まる、リトライ要求が同期して波にならない
フェイルオーバー決めた条件で切り替わり、きちんと戻るか主系提供元のダウン、部分的な5xx切替条件どおりに発動、切替後のP0タスクが通る、復旧後にフラップせず段階的に戻る
デグレード(縮退)“正直に”劣化するかツール停止、RAGの空振り、遅延縮退モードであることを利用者に明示し、推測で埋めた回答を返さない
キルスイッチ押したら、時間内に、全部止まるか実験中にキルスイッチを実際に発動する目標時間内に新規タスクの受付と実行中タスクの外部書き込みが止まる、停止を監査ログで確認できる
自動復旧(AI-SOAR)正しく直し、誤作動しないか自動復旧の対象障害と、対象外の紛らわしい障害の両方対象障害では手順どおりに復旧し、対象外では手を出さずに人へエスカレーションする
観測とアラート気づけるか、正しい人に届くか上記すべてアラートが所定時間内に鳴り、オンコール担当に届き、ダッシュボードで原因の層が特定できる

見落とされがちなのがキルスイッチだ。緊急停止の仕組みは「押さないこと」が前提のため、最も試されていない仕組みになりやすい。しかし、押すべき場面で効かなければ、あらゆる対策のなかで最も被害が大きくなる。キルスイッチは、定期的に実際に押す。これを運用規律として決めておく。

もう一つは自動復旧の誤作動だ。AI-SOARのような自動復旧は、対象の障害を直せるかと同じくらい、対象外の障害に手を出さないかが重要になる。紛らわしい障害を混ぜて注入し、自動復旧が”余計なこと”をしないかを確かめる。

ゲームデー——仕組みではなく”人と手順”を試す

自動化された障害注入が仕組みを試すものだとすれば、ゲームデーは人と手順を試すものだ。障害を起こし、オンコール担当が実際に検知・判断・対応する流れを、時間を区切って練習する。インシデント運用⑧で定めたSEV定義・エスカレーション・封じ込め手順は、ゲームデーで一度通して初めて”使える手順”になる。

役割を決める

役割やること
ゲームマスターシナリオを設計し、障害を注入し、進行を管理する。対応チームには詳細を事前に明かさない
対応チーム普段のオンコール手順どおりに検知・判断・対応する
観察者(記録係)時刻・判断・迷った点・手順書と実際のずれを記録する
安全責任者本番への想定外の影響を監視し、中止条件を満たしたら即座に止める権限を持つ

進行の例(半日)

時間内容
0:00〜0:15開始宣言、目的と中止条件の共有、関係部署への告知確認
0:15〜1:15シナリオ1:主系提供元のダウン。検知から切替・切り戻しまで
1:15〜2:15シナリオ2:ツールが”成功したふり”をする。誤った成功に気づけるか
2:15〜2:45シナリオ3:キルスイッチの発動。判断から停止確認まで
2:45〜3:30振り返り。記録をもとに、手順・仕組み・観測の不足を洗い出す

シナリオは”複合障害”まで育てる

最初は単一の障害から始める。慣れてきたら、現実の障害に近い複合シナリオに進む。

  • 主系提供元が遅延しているところに、ピーク時間帯の429が重なる
  • フェイルオーバー先の副系で、RAGのインデックスが古い
  • 障害対応の最中に、オンコール担当の主担当に連絡がつかない

本物の障害は、たいてい「想定した障害が、想定していない組み合わせで」起きる。ゲームデーの価値は、その組み合わせを安全な場で先に経験できることにある。

振り返りを”還流”させる

ゲームデーの振り返りは、インシデントのポストモーテムと同じ形式で書き、同じ場所に保管する。そのうえで、見つかった問題を次の3か所に戻す。

  • 仕組み:リトライ設定・切替条件・スキーマ検証などの修正チケット
  • 手順書(ランブック):実際の対応と手順書のずれを修正する
  • 評価セットと障害カタログ:ゲームデーで見つかった壊れ方を、評価ケースと自動実験に追加する

インシデント運用⑧で述べた「ポストモーテムを評価フライホイールへ還流する」流れに、ゲームデーを入口として加えるイメージだ。本物の障害を待たずに、フライホイールを回せる。

定期化——”一度やった”で終わらせない

エージェントは、モデル更新・プロンプト変更・ツール追加・提供元の仕様変更のたびに壊れ方が変わる。一度の試験で得た確信は、次の変更で失効する。そのため、回復力テストは頻度の違う複数の層で定期化する。

頻度内容主な目的
デプロイごとCIでモックに障害を注入する軽量テスト(タイムアウト・壊れた応答・429)基本的な壊れ方の退行を防ぐ
週次ステージングで障害カタログを自動で一巡仕組み全体の健全性を確認する
月次本番カナリアでの実験(フェイルオーバー・キルスイッチを含む)本番の設定と権限で効くことを確認する
四半期ゲームデー(複合シナリオ)人と手順を試し、組織としての対応力を上げる
変更時(随時)モデル移行・提供元追加・大きなツール追加の前後に対象を絞った実験変更による壊れ方の変化を確認する

頻度はあくまで目安だ。規模の小さいチームであれば、CIの軽量テストと四半期のゲームデーから始めれば十分に効果がある。

回復力スコアカードで”効き目”を記録する

実験の結果は、仕組みごとに「最後に検証した日」と「結果」を一覧にしておく。

  • フェイルオーバー:最終検証日、切替時間の実績、合否
  • キルスイッチ:最終検証日、停止までの時間の実績、合否
  • リトライ規律・デグレード・自動復旧・アラート:同様

「最終検証日が古い仕組み」は、それだけでリスクだ。スコアカードを経営層やリスク管理部門への報告に含めておくと、「対策はある」ではなく「対策が効くことを、いつ確認したか」を説明できるようになる。

よくある落とし穴

  • ステージングだけで満足する:本番とステージングでは、APIキー・クォータ・権限・切替条件の設定が違うことが多い。最後は本番で小さく確かめる
  • 成功率しか見ない:障害を取り繕った”成功”を見逃す。誤った成功率を必ず定常状態に入れる
  • 1回で判断する:エージェントは非決定的だ。同じ実験を複数回流し、結果のばらつきも含めて評価する
  • 実験に印をつけない:実験IDがないと、アラートが鳴ったときに実験か本物か区別できず、現場が混乱する
  • 注入設定の消し忘れ:有効期限を必ず設定する。手動の削除に頼らない
  • 見つけた問題を直さない:実験の目的は”弱点の発見”ではなく”弱点の解消”だ。修正チケットの消化までを実験の完了条件にする
  • 告知なしで始める:関係部署に知らせずに障害を起こすと、信頼を失い、以後の実験が続けられなくなる。まずは告知ありで始め、慣れてから抜き打ち形式を検討する

回復力テスト・チェックリスト

分類チェック項目
準備障害カタログ(インフラ系・意味系)を作成している
準備定常状態の指標に「誤った成功率」を含めている
注入注入点がエージェント本体の外(ゲートウェイ・プロキシ・リトリーバ・基盤)にある
注入注入リクエストに実験IDを付け、観測上で区別できる
注入注入設定に有効期限がある
安全実験ごとに実験カード(仮説・対象・中止条件・中止手順)がある
安全中止権限を持つ安全責任者を決めている
検証リトライ規律・フェイルオーバー・デグレード・キルスイッチ・自動復旧・アラートのそれぞれに合格基準がある
検証キルスイッチを定期的に実際に発動している
検証自動復旧が”対象外の障害”に手を出さないことを確かめている
人と手順四半期程度でゲームデーを実施している
人と手順振り返りを仕組み・手順書・評価セットに還流している
定期化CI・週次・月次・変更時の実験が組み込まれている
定期化回復力スコアカードで仕組みごとの最終検証日を管理している

よくある質問(Q&A)

Q1. 本番でわざと障害を起こすのは、危険ではないですか?

危険を管理したうえで行うのがカオスエンジニアリングだ。ステージングで十分に回し、本番では対象を小さく絞り、中止条件と即時停止の手段を用意してから実施する。「本番で試さないリスク」、つまり本物の障害のときに初めて仕組みが効かないと知るリスクと比べて判断してほしい。

Q2. AIレッドチーミングをすでにやっています。それとは何が違うのですか?

レッドチーミングは「悪意ある入力に対して、エージェントが誤った行動をしないか」を試すセキュリティの検証だ。本稿の回復力テストは「依存先が壊れたとき、エージェントが正しく壊れるか」を試す信頼性の検証だ。攻撃者がいなくても障害は起きるため、両方が必要になる。

Q3. 小規模なチームです。どこから始めればよいですか?

まずは3つで十分だ。①ツールのタイムアウトと壊れた応答をCIでモック注入する、②ステージングで提供元ダウンを起こしてフェイルオーバーを一度発動させる、③キルスイッチを一度実際に押して停止までの時間を測る。この3つだけでも、多くのチームで”効かない仕組み”が見つかるはずだ。

Q4. 専用のカオスエンジニアリングツールは必要ですか?

必須ではない。エージェント特有の障害(429・壊れたツール応答・RAGの空振り・モデル差し替え)は、LLMゲートウェイやツールプロキシに数十行の注入ロジックを足すだけで再現できることが多い。インスタンス停止やネットワーク障害など基盤レベルの実験には、AWS FISやAzure Chaos Studioなどのマネージドサービスが便利だ。

Q5. エージェントは非決定的なので、同じ実験でも結果が毎回違います。どう判定すればよいですか?

1回の成否ではなく、複数回実行したときの分布で判定する。たとえば「同じ実験を一定回数流し、誤った成功が一度も出ないこと」「P0タスクの成功率が許容値を下回らないこと」のように、統計的な合格基準を置く。評価編②で扱った評価の考え方を、そのまま異常時に適用するイメージだ。

まとめ——”効くはず”を”効いた”に変える

リトライ規律・フェイルオーバー・キルスイッチ・自動復旧は、普段は使われない経路だ。使われない経路ほど、静かに壊れていく。そしてエージェントは、壊れたことを取り繕って”成功”を報告することがある。だからこそ、壊れる前にわざと壊し、効き目を確かめ続ける規律が要る。

  1. 障害カタログで”何を壊すか”を決める:タイムアウト・429・提供元ダウンといったインフラ系に加え、壊れたツール応答・モデルの劣化・RAGの空振りといった意味系の障害を注入し、「止まり方」と「正直さ」の両方を試す
  2. 実験カードで”安全に壊す”:仮説・定常状態(誤った成功率を含む)・爆発半径・中止条件を事前に決め、注入はエージェントの外側で、実験IDと有効期限つきで行う
  3. 定期化と還流で”効き目を保つ”:CI・週次・月次・ゲームデーの層で回し、キルスイッチは実際に押し、見つかった弱点を仕組み・手順書・評価セットに戻す

ネットワーク運用の世界では、「切替試験をしていない冗長は冗長ではない」というのが常識だ。エージェントの運用も同じだ。”設計したはず”の仕組みを、”本番で効いた”と言える仕組みへ。回復力は作るものではなく、確かめ続けることで維持するものだ。

関連記事

参考リンク

※本記事は2026年9月時点の公開情報および一般的な運用手法に基づく情報提供であり、特定の製品・サービスの動作や、記載した手法による障害の防止を保証するものではありません。本番環境での障害注入は、自社の変更管理・承認プロセスに従い、影響範囲と中止手順を確認したうえで実施してください。記載した頻度・時間・指標は目安であり、システムの規模や業務要件に応じて調整してください。

コメント

タイトルとURLをコピーしました