AIエージェントが返す答えに、ボタンや入力フォーム、グラフが含まれる場面が徐々に増えてきている。だが、その動的UIをどう記述してクライアントに描かせるかの標準が、ここ半年で2つの陣営に分かれた。Googleは2026年4月17日に公開したA2UI(Agent to UI)v0.9で、AnthropicとOpenAIが共同で推すMCP Apps方式とは反対の道を選んだ。設計思想の差は、今後数年のエージェント体験の土台を分ける。

AD

宣言的JSONで描く、A2UI v0.9が持ち込んだ実装ピース

エージェントが「UIコンポーネントツリーをJSON(JavaScript Object Notation)で記述する」のがA2UIの基本動作だ。クライアント側は事前に承認したカタログのウィジェットにそのツリーをマッピングし、ホストアプリ自身のデザインシステムでレンダリングする。たとえば「ボタンコンポーネント、ラベル='送信', アクション=submit」という構造化データを送り、HTMLタグもCSSもエージェントは書かない。Google Developers Blogが公開時に強調した設計思想そのものだ。

v0.9で実装フェーズに踏み込めるレベルへ引き上げた変更のうち、開発者の体感を変えるのはクライアント定義関数とsendDataModel: trueフラグの導入だ。前者はバリデーション・データ変換・動的プロパティバインディングをクライアント側のコードで定義し、エージェントから参照させる仕組みで、関数はboolean返却が必須となっている。これにより「入力値が有効か」をクライアント側で即座に判定でき、サーバ往復を最小化しつつ型安全性も担保される。後者はclient-to-serverのデータ同期を可能にし、複数ユーザーの協調編集ユースケースを現実的な射程に入れた。

仕様面では、エラーハンドリングの改善とスキーマのモジュラー化(common_types.json / basic_catalog.json / server_to_client.json への分割)が同時に入った。これにより拡張カタログを実装する際のコストが下がり、第三者がカスタムウィジェット集を配るハードルも低い。

公式レンダラーはFlutter、Lit、Angular、Reactという主要フレームワーク向けに加え、共通のWeb-Coreライブラリが揃う。Agent SDK(Software Development Kit)はPython向けが先行し、pip install a2ui-agent-sdkで導入できる。GoとKotlinのSDKは近日対応が告知されている。トランスポートは非依存に設計されており、MCP(Model Context Protocol)、WebSockets、REST、AG-UI、A2Aプロトコルのいずれにも乗せられる。仕様本体はApache 2.0ライセンスで github.com/google/A2UIa2ui.org で公開済みだ。

参照実装としてGoogleが挙げているのは2つ。Rebel App Studioとデータ可視化スタジオCodemateが構築したPersonal Health Companion(Flutter製)と、Very Good VenturesがGemini + Flutter GenUI SDKで構築したLife Goal Simulatorで、いずれもエージェント生成UIをそのままFlutterのネイティブウィジェットに落とし込む構造を取っている。

コード実行か、データ記述か。Googleが選んだ「不自由な安全」

AnthropicとOpenAIが今年に入って共同提案したMCP Apps(SEP-1865)は、エージェントが返したミニWebアプリをサンドボックス内でレンダリングする方式を取る。Anthropic Artifacts(2024年6月)とOpenAI Apps SDKの延長線上にあり、ChatGPTやClaudeの中で動くアプリは事実上HTMLとJavaScriptのバンドルを送りつけている。エージェントが任意のUIを表現できる自由度は高い反面、サンドボックス境界の設計とコード署名の運用が常に問題になる。

A2UIはここで真逆に振った。A2UIプロジェクトのMinko Gechev氏(Google)は仕様について「宣言的であり、実行可能ではない」(declarative, not executable)と明言し、エージェントが送るのは「UIコンポーネントの記述であり、コードではない」(a description of UI components, not code)と説明している。送られてくるのがJSONであれば、ホストアプリは事前カタログにないウィジェットを拒否すれば済み、サンドボックスを実装する必要そのものがなくなる。

両陣営の強みは対照的だ。MCP Apps陣営はChatGPTとClaudeという数億ユーザー級の配布チャネルを持ち、エージェント開発者から見れば「アプリを書けば即座にユーザーに届く」強みがある。A2UI陣営はホストアプリの意匠を継承し、Flutter・Web・モバイルへ同じJSONペイロードで配信できるクロスプラットフォーム自由度を取った代わりに、配布力では後発だ。Generative UIの世界では「セキュリティと一貫性を取るか、配布力と表現力を取るか」が事実上の分岐点となっている。

UIペイロードフォーマットとしての位置づけはA2UIとMCP-UIが並ぶ層であり、その下にエージェント↔ツール通信のMCP、エージェント↔エージェント通信のA2A、エージェント↔フロントエンド・ランタイム通信のAG-UIが層をなす。CopilotKitのAgentic UI比較記事はこのスタック構造を整理しており、A2UIは「最上層のレンダリング契約」だと位置づけている。

AD

ローンチ即日でスタックを埋めた、Googleの巻き込み戦略

A2UIが公開初日からエコシステム記事を多数引き出したのは、Googleが事前にプロトコル・スタックの隣接プレイヤーを巻き込んでいたからだ。発表と同時にローンチパートナーとして名前が挙がったのは、エージェントフレームワークのAG2、UI配信側のVercel(json-rendererがA2UI対応)、エンタープライズのOracle(Open Agent SpecがA2UI対応を宣言)、そしてエージェント↔フロントエンド層のCopilotKit(AG-UIミドルウェア経由でA2UIエージェントを駆動可能にした)の主要パートナー陣だ。

巻き込み先の構成にはGenerative UIの実運用を前提とした役割分担が透けて見える。Vercelが「エージェントが返したUI記述を本番アプリで描く」レンダリング層、CopilotKitが「既存Reactアプリにエージェントを差し込む」統合層、Oracleが「エンタープライズ業務にエージェントを載せる」業務層、AG2が「マルチエージェントを組む」開発層を担い、Generative UIを実運用に乗せるために必要な複数の層がほぼ過不足なく揃っている。

Googleが目指したのは、仕様発表で終わらせず、その仕様で動く実装パートナーを同時に可視化することだった。Oracleが初日に公式ブログでA2UI、CopilotKit、AG-UIの3つを同列に挙げ、自社のAgent Specへの統合を宣言した重みは、単なる賛同表明とは性質が違う。エンタープライズ業務にAIエージェントを載せる検証を済ませた側からのお墨付きが、初日のうちにスタック側面から差し込まれた格好になる。

The New Stackは公開直後の解説で、Generative UI標準の競争を「Agent UI Standards Multiply」と表現した。MCP-UI、Apps SDK、A2UIが事実上同時並行で立ち上がっている状況下で、Googleは仕様公開と同時に「自分たちの仕様で動く周辺プレイヤー」を可視化することで、発表自体を採用実績に転化した格好だ。仕様の良し悪しよりも先に「誰が乗っているか」で勝負する局面に入っている。

標準分裂の落とし所はどこか、開発者が今週検討すべき3つの判断

Hacker Newsでは公開直後から、A2UI方式に対する技術的批判が複数挙がっている。事前承認カタログ方式であってもUIインジェクションやなりすましのリスクは消えないこと、宣言的JSONをサーバ往復で更新する設計は対話型UIでレイテンシが増すこと、そして「また似たような標準が増えた」というプロトコル疲れの3点に集約される。Googleが進歩的レンダリング(progressive rendering)を実現するためにJSONL(JSON Lines、改行区切りのJSON)ベースのストリーミングを採っているのは2点目への回答ではあるが、ホストアプリ側の実装負担は残る。

3点のうち実運用で最も重みを持つのは、レイテンシでもプロトコル疲れでもなく、カタログ方式のインジェクション耐性だ。レイテンシはJSONLストリーミングと部分更新で緩和の余地があり、プロトコル疲れは標準が淘汰される過程として避けがたい。一方、「ホストアプリが信頼境界を握る」というアーキテクチャ上の特性は、サンドボックス運用に常時負担を抱えるMCP Apps陣営にはない強みで、エンタープライズ要件を重視するチームにとっては選定の決定打になる。

開発者目線で短期的に見れば、判断軸は3つだ。自社プロダクトがChatGPTやClaudeの中で動くことを最優先するならMCP Apps系(OpenAI Apps SDKまたはAnthropic Artifacts)に張る。自社アプリのデザインシステムを保ったままエージェントUIを差し込みたい、あるいはFlutter・Web・モバイルへ同一仕様で配信したいならA2UIを採る。どちらに転んでもいいよう中間層に賭けたいなら、AG-UI + CopilotKitのミドルウェア経由でA2UIエージェントを呼び出す構成が現時点では最も柔軟だ。今後4〜6ヶ月で各陣営の生産環境導入事例とパフォーマンスベンチが積み上がり、その実績が事実上の決定打になる構図のため、判断を先送りするほど選択肢が狭まる。

A2UI v0.9はGoogle公式ブログでステータス語を明示していないため、本番投入の判断は各社のリスク許容度に委ねられる。ただし、Apache 2.0で公開された仕様、Flutter・Lit・Angular・React向け公式レンダラー、PythonのSDK、参照実装2件、エンタープライズ採用1件が初日に揃った事実は、「production-readyを強調する大型アップデート」として読むに足る。標準が割れている期間は、どちらの陣営も「先に動いた採用事例」を奪い合う。今週の選択がそのまま2027年のエージェントUIの勢力図を決める可能性は、想像より高い。


Sources