コンセプト概要¶
A2UIは、AIエージェントが任意のコードを実行することなく、リッチでインタラクティブなUIを生成できるように設計されています。これを実現するために、いくつかの主要なコンセプトに基づいています。
3つのコア要素¶
A2UIのメッセージは、通常以下の3つの要素を分離して扱います:
- UI構造 (Structure): どのコンポーネントをどこに配置するかを定義します。
- アプリケーションの状態 (State / Data Model): UIに表示される実際のデータを保持します。
- レンダリング開始 (Signals): UIを表示する準備が整ったことをクライアントに伝えます。
これらを分離することで、エージェントはデータのみを更新したり、UIの構造を段階的に構築したりすることができ、ストリーミングに最適化された柔軟な対話が可能になります。
主要なコンセプト¶
1. サーフェス (Surface)¶
サーフェスは、UIがレンダリングされる独立した「キャンバス」です。ダイアログ、サイドバー、メインチャットウィンドウなど、アプリ内の特定の領域を指します。
2. コンポーネント (Component)¶
コンポーネントは、A2UIの基本的なビルディングブロックです。Button, Text, TextField, Card などの標準的なUI要素が含まれます。
3. データバインディング (Data Binding)¶
データバインディングは、コンポーネントのプロパティをデータモデル内の特定の値に紐付けます。これにより、データが更新されるとUIが自動的に反映されます。
4. データフロー (Data Flow)¶
データフローは、エージェントからクライアントへメッセージがどのように流れ、ユーザーのアクションがどのようにエージェントにフィードバックされるかを定義します。