コンポーネント¶
コンポーネントは、A2UIの基本的な構成単位です。エージェントはこれらのコンポーネントを組み合わせてUIを構築します。
隣接リスト (Adjacency List) モデル¶
A2UIは、コンポーネントの親子関係を記述するために「隣接リスト」モデルを採用しています。これは、深くネストされたツリー構造をLLMが生成する際の困難さを解消するために設計されました。
エージェントは、すべてのコンポーネントをフラットなリストとして送信し、各コンポーネントは id を通じて他のコンポーネントを参照します。
例:ツリー構造をフラットに記述する
{
"surfaceUpdate": {
"surfaceId": "main",
"components": [
{
"id": "container",
"component": {
"Card": {
"title": "カードのタイトル",
"children": ["text-1", "button-1"]
}
}
},
{
"id": "text-1",
"component": {
"Text": {"text": {"literalString": "これはカードの中のテキストです"}}
}
},
{
"id": "button-1",
"component": {
"Button": {
"child": "button-text",
"action": {"name": "click_action"}
}
}
},
{
"id": "button-text",
"component": {
"Text": {"text": {"literalString": "クリックして"}}
}
}
]
}
}
標準コンポーネントカタログ¶
A2UIは、基本的な対話に必要な一連の標準コンポーネントを定義しています。
基本要素¶
- Text: テキストを表示します。
- Image: 画像を表示します。
- Button: クリック可能なボタンです。
入力要素¶
- TextField: 1行または複数行のテキスト入力。
- DateTimeInput: 日付と時間の選択。
- SelectionInput: ラジオボタン、チェックボックス、ドロップダウン。
レイアウト・コンテナ¶
- Card: 視覚的なグループ化。
- Timeline: 時系列データの表示。
- List: 重複する要素のリスト。
- FlexBox: 柔軟なレイアウト(水平・垂直方向)。
カスタムコンポーネント¶
標準コンポーネントに加えて、クライアントは独自の「カスタムコンポーネント」を定義してエージェントに公開できます。
カスタムコンポーネントを使用すると、Googleマップ、グラフ、複雑なビジネスウィジェットなど、アプリ固有のリッチな要素をエージェントから呼び出すことができます。
詳細は カスタムコンポーネントガイド を参照してください。
コンポーネントのプロパティ¶
各コンポーネントは、その動作や外観を制御する複数のプロパティを持ちます。多くのプロパティは データバインディング を介して動的に更新可能です。
完全なリストについては、コンポーネントリファレンス を確認してください。
次のステップ¶
- コンポーネントリファレンス:各コンポーネントの詳細な仕様
- データバインディング:コンポーネントとデータの紐付け
- カスタムコンポーネントガイド:独自のコンポーネントの追加