Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions specification/v0_9/docs/a2ui_protocol.md
Original file line number Diff line number Diff line change
Expand Up @@ -577,6 +577,22 @@ The [`standard_catalog.json`] provides the baseline set of components and functi
| **email** | Checks that the value is a valid email address. |
| **string_format** | Does string interpolation of data model values and registered functions. |

### Theme

The standard catalog defines the following theme properties that can be set in the `createSurface` message:

| Property | Type | Description |
| :----------------- | :----- | :-------------------------------------------------------------------------------------------------------- |
| **primaryColor** | String | The primary brand color used for highlights throughout the UI (e.g., primary buttons, active borders). The renderer may generate variants, such as lighter shades, as needed. Format: Hexadecimal code (e.g., '#00BFFF'). |
| **iconUrl** | URI | A URL for an image (e.g., logo or avatar) that identifies the agent or tool associated with the surface. |
| **agentDisplayName**| String | Text to be displayed next to the surface to identify the agent or tool that created it (e.g. "Weather Bot").|
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There's a minor formatting issue in the markdown table. The agentDisplayName property is missing a space before the closing pipe |, which might cause rendering issues in some markdown viewers. Adding a space will ensure the table is correctly formatted.

Suggested change
| **agentDisplayName**| String | Text to be displayed next to the surface to identify the agent or tool that created it (e.g. "Weather Bot").|
| **agentDisplayName** | String | Text to be displayed next to the surface to identify the agent or tool that created it (e.g. "Weather Bot").|


#### Identity and Attribution

The `iconUrl` and `agentDisplayName` fields are used to provide attribution to the user, identifying which sub-agent or tool is responsible for a particular UI surface.

In multi-agent systems or orchestrators, the orchestrator is responsible for setting or validating these fields. This ensures that the identity displayed to the user matches the actual agent server being contacted, preventing malicious agents from impersonating trusted services. For example, an orchestrator might overwrite these fields with the verified identity of the sub-agent before forwarding the `createSurface` message to the client.

### The `string_format` function

The `string_format` function supports embedding dynamic expressions directly within string properties. This allows for mixing static text with data model values and function results.
Expand Down
11 changes: 10 additions & 1 deletion specification/v0_9/json/standard_catalog.json
Original file line number Diff line number Diff line change
Expand Up @@ -736,8 +736,17 @@
"theme": {
"primaryColor": {
"type": "string",
"description": "The primary UI color as a hexadecimal code (e.g., '#00BFFF').",
"description": "The primary brand color used for highlights (e.g., primary buttons, active borders). Renderers may generate variants of this color for different contexts. Format: Hexadecimal code (e.g., '#00BFFF').",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"iconUrl": {
"type": "string",
"format": "uri",
"description": "A URL for an image that identifies the agent or tool associated with the surface."
},
"agentDisplayName": {
"type": "string",
"description": "Text to be displayed next to the surface to identify the agent or tool that created it."
}
},
"$defs": {
Expand Down
Loading