# A2Aを本番運用すると、何が壊れるか

著者：Kotaro OKUYAMA / AgentCollusion  
資料確認日：2026年9月7日  
対応する記事：`/news/a2a-production-identity-provenance-failures`

遠隔のAIエージェントがデモで正しく答えても、本番で同じように役立つとは限らない。境界を越えて渡す必要があるのは、質問と回答に加え、依頼者の権限、回答の根拠、そして完了できなかった場合の状態だ。

Eonは8月26日、本番で経験した三つの失敗を報告した。非ストリーミングの依頼が60秒のゲートウェイ制限に当たること、遠隔側のエラーが統括AIへの入力から消えること、遠隔側の会話履歴がコンテキスト上限に達することだ。依頼者のIDと、根拠を運ぶDataContextも追加している。実運用はA2A 0.3で、記事ではv1.0にも言及する。[AAIF掲載のEon報告](https://aaif.io/blog/what-we-learned-putting-a2a-into-production)

## タイムアウトしても、仕事が止まったとは限らない

ここからは、運用アシスタントに大量のバックアップを点検させる架空の例を使う。専門エージェントの点検に90秒かかる一方で、途中のゲートウェイが先に接続を閉じるとする。

呼び出し側に見えるのは通信の失敗である。専門エージェントが停止したのか、まだ処理中なのか、別の場所に結果を保存したのかまでは分からない。

進捗をストリーミングすれば、無通信時間に対するタイムアウトは回避できる場合がある。ただし、イベントが間に合う必要があり、接続の絶対的な時間制限まで消えるわけではない。処理の完了も保証しない。

設計上は、進捗をどれだけ待つか、仕事全体を何分まで許すか、切断後にどこで状態を照会するかを分けて決めたい。再試行するときには、元の操作との関係も必要になる。点検のやり直しなら資源の無駄で済む場合があるが、保存期間を変更する操作なら、二度実行した影響を考えなければならない。

## エラーが消えると、回答の意味が変わる

バックアップ点検で、一つのストレージアカウントだけ調査に失敗したとする。統括AIに成功分の結果しか渡らなければ、「すべて正常です」と答えてしまうかもしれない。

失敗が見えなくなったことで、一部の点検が、全体を確認した証拠に変わってしまう。AgentCollusionとしては、少なくとも次の意味を区別して引き継ぐ設計を提案する。

| 観測できた状態 | 利用者に伝えられること |
| --- | --- |
| タスクを受け付けた | 点検を依頼した |
| 進捗を受信した | 点検が進行している |
| 接続が切れた | 結果を照会する必要がある |
| 一つのアカウントで失敗した | 点検結果は一部未完了である |
| 必要な結果をすべて検証した | 指定範囲の点検が完了した |

接続用のアダプターは、プログラムが処理する構造化エラーと、統括AIが読める短い説明を残す。どのタスクに影響したか、どの範囲が未確認か、次に何をしてよいかまで伝えると、失敗を無視して回答することを減らせる。

その後の再試行が成功したら、該当タスクの状態も更新する。過去の一回のエラーが、サービス全体の恒久的な不具合として記憶され続けないようにするためだ。以上は本稿の設計案であり、独自に試験した結果ではない。

## 利用者IDは、確認できる経路で渡す

Eonの`context_id`に依頼者を埋め込む方式は、両端を自社で管理する前提の工夫だ。[報告のIDに関する説明](https://aaif.io/blog/what-we-learned-putting-a2a-into-production)

外部から送られた文字列に利用者名が書かれていても、それだけでは代理実行の権限を証明できない。架空の点検サービスでも、受け手が認証済みの主体とタスクを結び付け、データを読む前に利用者やテナントの範囲を確認する必要がある。

[A2A v1.0の仕様](https://a2a-protocol.org/v1.0.0/specification/)には、セキュリティの仕組みとタスクの状態管理がある。一方で、自社のアクセス方針を実際に適用するのはアプリケーションの役割だ。A2Aの入口を呼べるかと、下流のストレージで何をしてよいかは、それぞれ判断する。

## 会話をリセットしても、仕事の根拠は残す

遠隔の会話を新しくすると、履歴の容量問題は解消できるかもしれない。しかし、その仕事に必要な許可や未完了の操作まで失う可能性がある。

復旧用の記録には、確認済みの主体、依頼の範囲、未解決の操作、取得した根拠への参照を残したい。再開時には現在の権限も確認する。古い会話を丸ごとコピーしてしまえば、同じ容量問題を繰り返すことになる。

根拠にも寿命がある。専門エージェントが「18件のバックアップに確認が必要」と答えた場合、どの時点の一覧か、「確認が必要」の定義は何か、どのアカウントを含むかが必要だ。要約の数字だけが残り、元のデータは更新されていることも考えられる。

通常の情報閲覧なら、根拠が取得できていないと表示して文章を見せる運用もありうる。一方、自動削除や適合性の判定に使うなら、根拠の欠落を理由に操作を保留する方針が必要かもしれない。その違いを、メタデータの解析に失敗した際の偶然の挙動に任せず、業務として決めることが大切だ。

[MicrosoftのA2A権限を扱った記事](https://agentcollusion.ai/news/microsoft-a2a-agent-permissions)で追った委任の連鎖は、本番ではこの状態管理と結び付く。次のAIに、前のAIの仕事を確かめるための情報が届いているか。通信が成功したことに加え、その確認を行えることが、エージェント連携の信頼性を左右する。
