|
|
||
|---|---|---|
| .gemini | ||
| .github/workflows | ||
| a2a_agents | ||
| docs | ||
| editor | ||
| renderers | ||
| samples/client | ||
| specification | ||
| web | ||
| .gitignore | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| README.md | ||
| mkdocs.yaml | ||
| requirements-docs.txt | ||
README.md
A2UI (Agent to UI) Protocol
This repository contains the specification for the A2UI protocol, a JSONL-based, streaming UI protocol designed to be easily generated by Large Language Models (LLMs).
Project Overview
The A2UI protocol enables a server to stream a platform-agnostic, abstract UI definition to a client, which then renders it progressively using a native widget set. The core design principles are:
- LLM-Friendly: The protocol uses a simple, declarative, and flat structure that is easy for LLMs to generate.
- Progressive Rendering: The UI is streamed as a series of JSONL messages, allowing the client to render the UI as it arrives, improving perceived performance.
- Platform-Agnostic: The protocol defines an abstract component tree, and the client is responsible for mapping these abstract components to its native widget implementations.
- Separation of Concerns: The protocol separates the UI structure (components), the application state (data model), and the client-side widget rendering.
Repository Layout
The repository is structured as follows:
docs/: This directory contains general information about the A2UI protocol .specification/: Contains formal specification documents and JSON schemas for the protocol.