TL;DR
- Google launch A2UI v0.9 (draft) ngày 17/04/2026 — protocol mở cho Generative UI.
- v0.9 ship prompt-first generation, bidirectional messaging, modular schemas, Agent SDK mới, cùng với
createSurface, client-side functions, custom catalogs, extension spec. - Agent emit flat streaming JSONL → client render bằng component catalog của bạn (React, Angular, Flutter, Lit, native mobile) — không code thi hành, không iframe, không injection.
- Apache 2.0, free, commercial OK. Transport mặc định là A2A, khuyến nghị AG-UI cho frontend app.
- CopilotKit là launch partner, ship Day-0 với CLI
npx copilotkit@latest create my-app --framework a2ui.
Có gì mới trong v0.9
A2UI v0.9 là bản draft của protocol do Google khởi xướng, CopilotKit và cộng đồng đóng góp. So với v0.8 stable (đã có surfaces, components, data binding, adjacency list model), v0.9 bổ sung:
createSurface— agent chủ động khởi tạo surface mới trong phiên.- Client-side functions — callback chạy phía client, giảm round-trip về agent.
- Custom catalogs — mỗi app tự định nghĩa component catalog riêng.
- Extension specification — cộng đồng mở rộng spec chính thức.
- Agent SDK mới — SDK đi kèm cho việc emit A2UI từ bất kỳ agent framework nào.
- Prompt-first generation — LLM viết JSONL trực tiếp, không cần DSL trung gian.
CopilotKit đi kèm Day-0: scaffold npx copilotkit@latest create my-app --framework a2ui sinh app React pre-wired với A2UI renderer và AG-UI runtime. Repo ví dụ with-agent-spec minh hoạ stack React + Python + LangGraph/WayFlow.
Tại sao quan trọng
Hầu hết agent hôm nay vẫn trả text trong chat box. Nhưng khi agent bắt đầu làm việc — đặt bàn, duyệt đơn, điền form — text thành bottleneck: tool execution ẩn sau message, input người dùng mơ hồ, flow nhiều bước thành hộp đen. Generative UI đảo ngược: agent render UI đúng lúc cần, thu structured input, hiển thị progress real-time.
Vấn đề còn lại là cách agent nói UI với frontend. A2UI chọn declarative: agent emit JSON mô tả component, client render bằng design system của mình. Không HTML thô (không UI injection), không iframe (không vỡ style), không phải hardcode mọi layout trước (không giới hạn khả năng). Đây là điểm khác biệt trung tâm của tuyên bố "your own design system".

Technical facts
A2UI dùng flat streaming JSONL — dễ cho LLM sinh tăng dần, không cần JSON hoàn chỉnh ngay. Protocol stream xoay quanh 3 message envelope:
| Envelope | Vai trò |
|---|---|
surfaceUpdate | Định nghĩa component tree cho surface |
dataModelUpdate | Cập nhật state / data binding |
beginRendering | Signal bật render — tránh flash UI dở |
Luồng end-to-end: user message → agent emit A2UI JSONL stream → SSE đến client → client buffer → beginRendering signal → render native widget → user interact → userAction gửi ngược về agent qua A2A message riêng → agent emit surface/data mới.
Renderer: Angular, Flutter, Lit, Markdown, React (CopilotKit A2UI renderer), native mobile. License: Apache 2.0. Transport: A2A mặc định, nhưng spec độc lập — AG-UI là lựa chọn ưa thích khi pair với frontend đa framework.
So với MCP-UI & Open-JSON-UI
Generative UI hiện có 3 pattern chính:
| Pattern | Control vs Freedom | Spec tiêu biểu | Trade-off |
|---|---|---|---|
| Controlled / Static | cao / thấp | useFrontendTool (CopilotKit AG-UI) | An toàn, dễ đoán — phải tự build hết UI upfront |
| Declarative | cân bằng | A2UI, Open-JSON-UI | Framework-agnostic, an toàn, linh hoạt — cần catalog mapping |
| Open-ended | thấp / cao | MCP-UI / MCP Apps (iframe HTML) | Linh hoạt tối đa — an ninh/perf yếu, styling inconsistent, web-only |
AG-UI không phải spec generative UI — nó là transport bi-directional chạy bên dưới cả 3 pattern. A2UI trả lời what UI to show, AG-UI lo how to deliver it. Cùng với MCP và A2A, 4 protocol này đang thành nền của agentic stack thế hệ mới.
Use cases thực tế
- Landscape Architect (Google demo) — user upload ảnh sân, Gemini phân tích, agent sinh form landscaping custom.
- Restaurant Finder (CopilotKit tutorial) — "Chinese in New York" → agent stream danh sách restaurant có nút book/reserve.
- Calendar assistant (Oracle + CopilotKit Agent Spec, 12/03/2026) — click event →
userActionvề agent → agent update surface tiếp. - Interactive charts & Google Maps — agent chọn chart cho câu hỏi số liệu, Map cho câu hỏi location.
- Travel / comparison — itinerary cards + map + expandable; sortable tables cho compare.
Phù hợp nhất với: enterprise workflow cần human-in-the-loop, approval flow, multi-step form có validation, data-heavy app. Dev profile: React/Next/Angular/Flutter frontend + Python agent backend (LangGraph, WayFlow, Google ADK). Trước khi tay viết JSON, dùng A2UI Composer tại a2ui.org/composer sinh template, paste vào system prompt để agent học 3 envelope.

Limitations & pricing
- Giá: free. Apache 2.0. Commercial use OK.
- Status: v0.8 stable production; v0.9 draft — có thể breaking change trước khi ổn định.
- Catalog-only: agent chỉ dùng component đã pre-approve — feature an toàn chứ không phải giới hạn ngẫu nhiên, nhưng không invent layout ngẫu hứng.
- Frontend gánh mapping: A2UI không tự render. Phải viết renderer map JSON → native component.
- Cần transport: spec không tự gửi — ghép AG-UI, WebSocket, SSE hoặc transport tuỳ chọn.
- Prompting: LLM cần ví dụ template trong system prompt. A2UI Composer sinh template → inject vào
prompt_builder.py. - Benchmark: chưa có số công khai về render latency, token cost hay streaming throughput.
What's next
Roadmap chính thức trên a2ui.org đã có mục riêng nhưng chưa công bố chi tiết, cũng chưa ấn định ngày v1.0. Ecosystem đang nở: renderer Angular/Flutter/Lit/Markdown/React đã có, Oracle ship Open Agent Spec support cho A2UI qua CopilotKit AG-UI (12/03/2026). CopilotKit CEO Atai Barkai đã lên sân khấu Google Cloud Next 2026 (10/04) — 7 ngày trước khi v0.9 release. Khả năng cao v1.0 và thêm renderer sẽ đến trước Google I/O.
Thử nhanh: chạy scaffold npx copilotkit@latest create my-app --framework a2ui, vào a2ui.org/composer sinh template contact form, paste vào system prompt, stream thử với Gemini hoặc GPT.
Nguồn: a2ui.org, CopilotKit blog, AG-UI & A2UI Explained, CopilotKit/generative-ui, Oracle AI blog.
