a2ui README

The project's README from github.com/a2ui-project/a2ui. As one markdown file: README.md.

A2UI: Agent-to-User Interface

A2UI is an open-source project, complete with a format optimized for representing updatable agent-generated UIs and an initial set of renderers, that allows agents to generate or populate rich user interfaces.

Gallery of A2UI components

A gallery of A2UI rendered cards, showing a variety of UI compositions that A2UI can achieve.

⚠️ Status: Early stage public preview

Note: A2UI's current production release is v0.9.1, a patch release in the stable v0.9 protocol family. The v1.0 specification is a release candidate, while v0.8 is legacy. The specification and implementations are functional but are still evolving. We are opening the project to foster collaboration, gather feedback, and solicit contributions (e.g., on client renderers). Expect changes.

Summary

Generative AI excels at creating text and code, but agents can struggle to present rich, interactive interfaces to users, especially when those agents are remote or running across trust boundaries.

A2UI is an open standard and set of libraries that allows agents to "speak UI." Agents send a declarative JSON format describing the intent of the UI. The client application then renders this using its own native component library (Flutter, Angular, Lit, etc.).

This approach ensures that agent-generated UIs are safe like data, but expressive like code.

High-level philosophy

A2UI was designed to address the specific challenges of interoperable, cross-platform, generative or template-based UI responses from agents.

The project's core philosophies:

Use cases

Some of the use cases include:

Architecture

The A2UI flow disconnects the generation of UI from the execution of UI:

  1. Generation: An Agent (using Gemini or another LLM) generates or uses a pre-generated A2UI Response, a JSON payload describing the composition of UI components and their properties.
  2. Transport: This message is sent to the client application (via A2A, AG-UI, etc.).
  3. Resolution: The Client's A2UI Renderer parses the JSON.
  4. Rendering: The Renderer maps the abstract components (e.g., type: 'text-field') to the concrete implementation in the client's codebase.

Dependencies

A2UI is designed to be a lightweight format, but it fits into a larger ecosystem:

Getting started

Pick the path that matches where you want to start:

Path What you get Time
🍜 Quickstart Restaurant Finder Demo Full-stack A2UI running locally with a Gemini powered ADK agent and Lit renderer. Learn A2UI end-to-end and customize to your use case. ~5 min
⚛️ Use A2UI with Any Agent Framework & Harness Scaffold an AG-UI app or harness for your framework of choice, then enable A2UI rendering over AG-UI. ~5 min
🎨 A2UI Composer Generate A2UI JSON from a visual editor and paste it into any agent prompt — no install required. ~1 min
🎬 A2UI Theater Step through pre-built A2UI streaming scenarios across Lit, React, and Angular renderers — no install required. ~1 min

Restaurant Finder demo — Summary

Prerequisites: Node.js 18+ (with Corepack enabled), uv, and a Gemini API key.

git clone https://github.com/a2ui-project/a2ui.git
cd a2ui
export GEMINI_API_KEY="your_gemini_api_key"

# Enable Corepack (macOS Homebrew users: see tip below)
corepack enable

yarn install
cd samples/client/lit
yarn demo:restaurant

[!TIP] macOS Homebrew Users: If you previously installed standalone package managers, unlink conflicts before installing Corepack so Corepack can manage versions per-project:

brew unlink yarn pnpm
brew install corepack
corepack enable

These commands install dependencies across workspaces, build the renderers, start the Python agent, and open the client at http://localhost:5173. For step-by-step instructions, alternative demos, and troubleshooting see the full Quickstart.

Use A2UI with Any Agent Framework & Harness — Summary

npx create-ag-ui-app@latest

Use the AG-UI CLI with your framework or harness of choice (Google Chat, ADK, LangGraph, CrewAI, Mastra, Strands, Slack, Teams, etc.), then follow the AG-UI guide to enable A2UI rendering. Some scaffold paths use CopilotKit's A2UI runtime with Next.js under the hood, but the setup surface is AG-UI-first.

Other renderers

For Flutter, check out the GenUI SDK, which uses A2UI under the hood. See docs/public/reference/renderers.md for the full list of client implementations.

Roadmap

We hope to work with the community on the following:

Contribute

A2UI is an Apache 2.0 licensed project. We believe the future of UI is agentic, and we want to work with you to help build it.

See CONTRIBUTING.md for details on how to get started.

a2ui (a2ui-project/a2ui)

Searching Database…

16.7K ·GitHub
这是什么?A2UI 是一套开放协议和代码库,让 AI 智能体发送声明式的 JSON 界面描述,再由客户端应用使用自身的原生组件(如 Flutter、Angular、Lit、React 等)进行渲染,而不是执行智能体生成的代码。
它是 UI 框架,还是更像一种数据协议?它是协议或数据格式,而不是渲染框架:智能体输出一个扁平的 JSON 组件列表,组件之间通过 ID 相互引用,客户端再把这份抽象描述映射到自己的原生控件库上。
我该怎么试用?最简单的免安装方式是使用 A2UI Composer 或 Theater 演示;如果想在本地完整运行,可以试试 Quickstart Restaurant Finder 演示,它会启动一个由 Gemini 驱动、搭配 Lit 渲染器的 ADK 智能体;也可以通过 AG-UI CLI 为你所用的框架搭建一个 AG-UI 应用脚手架。
运行 Restaurant Finder 演示需要安装哪些东西?需要安装启用了 Corepack 的 Node.js 18+、uv,以及一个 Gemini API 密钥。
这个规范现在稳定到可以拿来开发吗?还不行。它目前是早期公开预览版,协议版本为 v0.9.1(v0.8 为旧版,v1.0 仅为候选发布版),因此预计会出现不兼容的变更。
目前哪些框架真正能渲染 A2UI?目前官方支持 Web(通过演示使用 Lit、Angular、React)和 Flutter(通过 GenUI SDK);React、Jetpack Compose 和 SwiftUI 还在路线图中。
A2UI 如何确保智能体生成的界面可以安全渲染?客户端维护一份可信的、预先批准的组件目录(例如 Card、Button、TextField),智能体只能从该目录中请求组件,而不能发送可执行代码。
智能体能否在对话过程中更新界面,而不是整体重新生成?可以。界面是由带 ID 引用的扁平组件列表构成的,LLM 很容易逐步生成这种结构,因此随着对话继续,界面可以渐进式、即时地更新。
A2UI 如何与 A2A 等智能体传输协议衔接?A2UI 的载荷与传输方式无关,可以通过 A2A Protocol、AG-UI 等现有智能体通信协议发送,因此任何能输出 JSON 的模型都能驱动它。
A2UI 中的“Smart Wrapper”是什么?它是一种注册表模式,开发者可以把服务端的组件类型映射到自定义的客户端实现上,例如原生控件、React 组件或沙箱 iframe,同时安全策略仍由开发者自己掌控。
Size
192 MB
Stars
16.7K
Age
1y
Commits · 90 Days