Chuyển đến nội dung chính

Bài đăng

Hiển thị các bài đăng có nhãn GenUI

GenUI: when agents compose widgets instead of markdown — hướng dẫn Flutter

Chat UIs trained users to accept walls of markdown. GenUI flips the contract to structured UI. Bài này chuyển quan sát đó thành một mô hình nhỏ để bạn có thể kiểm thử, đo lường và giữ cho code dễ bảo trì khi app lớn lên. Vấn đề cốt lõi A2UI and the Flutter GenUI SDK build live UI from structured agent output. Câu hỏi hữu ích không phải API hay pattern có đẹp riêng lẻ hay không, mà là state nằm ở đâu, boundary nào chịu trách nhiệm khi lỗi xảy ra, và người dùng phục hồi thế nào khi happy path biến mất. Mô hình thực tế Catalog-constrained widgets + critic loops beat unconstrained generation for reliability. Hãy bắt đầu bằng một owner rõ ràng cho behavior. Widget chỉ nên render và phát intent; IO, persistence, permission và retry nên nằm sau một interface nhỏ. Nhờ vậy bạn có seam để fake trong test và một chỗ ghi lại các dữ kiện cần theo dõi ở production. Trong app Flutter, boundary thường có dạng: Widget phát intent như load, submit, refresh hoặc retry. Controller hoặc use case ...

GenUI: when agents compose widgets instead of markdown

Chat UIs trained users to accept walls of markdown. GenUI flips the contract to structured UI. This article turns that observation into a small implementation model you can test, measure, and keep boring when the app grows. The problem in one sentence A2UI and the Flutter GenUI SDK build live UI from structured agent output. The useful question is not whether the API or pattern looks elegant in isolation. It is where state lives, which boundary owns failure, and how a user recovers when the happy path disappears. A practical model Catalog-constrained widgets + critic loops beat unconstrained generation for reliability. Start with one explicit owner for the behavior. Keep widgets responsible for rendering and user intent; keep IO, persistence, permissions, and retries behind a small interface. That gives you a seam for a fake in tests and a place to record the facts that matter in production. For a Flutter app, the boundary usually looks like this: The widget emits an intent su...

GenUI: when agents compose widgets instead of markdown — hướng dẫn Flutter

Chat UIs trained users to accept walls of markdown. GenUI flips the contract to structured UI. Bài này chuyển quan sát đó thành một mô hình nhỏ để bạn có thể kiểm thử, đo lường và giữ cho code dễ bảo trì khi app lớn lên. Vấn đề cốt lõi A2UI and the Flutter GenUI SDK build live UI from structured agent output. Câu hỏi hữu ích không phải API hay pattern có đẹp riêng lẻ hay không, mà là state nằm ở đâu, boundary nào chịu trách nhiệm khi lỗi xảy ra, và người dùng phục hồi thế nào khi happy path biến mất. Mô hình thực tế Catalog-constrained widgets + critic loops beat unconstrained generation for reliability. Hãy bắt đầu bằng một owner rõ ràng cho behavior. Widget chỉ nên render và phát intent; IO, persistence, permission và retry nên nằm sau một interface nhỏ. Nhờ vậy bạn có seam để fake trong test và một chỗ ghi lại các dữ kiện cần theo dõi ở production. Trong app Flutter, boundary thường có dạng: Widget phát intent như load, submit, refresh hoặc retry. Controller hoặc use case ...

GenUI: when agents compose widgets instead of markdown

Chat UIs trained users to accept walls of markdown. GenUI flips the contract to structured UI. This article turns that observation into a small implementation model you can test, measure, and keep boring when the app grows. The problem in one sentence A2UI and the Flutter GenUI SDK build live UI from structured agent output. The useful question is not whether the API or pattern looks elegant in isolation. It is where state lives, which boundary owns failure, and how a user recovers when the happy path disappears. A practical model Catalog-constrained widgets + critic loops beat unconstrained generation for reliability. Start with one explicit owner for the behavior. Keep widgets responsible for rendering and user intent; keep IO, persistence, permissions, and retries behind a small interface. That gives you a seam for a fake in tests and a place to record the facts that matter in production. For a Flutter app, the boundary usually looks like this: The widget emits an intent su...

GenUI và A2UI: agent ghép widget, không chỉ markdown

Chat UI dạy người dùng chấp nhận tường markdown. Generative UI (GenUI) đảo hợp đồng: model đề xuất cấu trúc UI — list, form, card — và Flutter render widget thật với state thật. A2UI là gì A2UI là protocol mở mô tả agent và client cùng nhau ghép UI và quản lý state. GenUI SDK của Flutter là client. Lượt tải package tăng mạnh trong 2026 khi team ship thật (ví dụ app học ngôn ngữ tự ghép UI bài học). Kiến thức kiến trúc Intent người dùng tới backend/agent. Agent emit cấu trúc A2UI (không phải text tự do). GenUI map cấu trúc → widget Flutter trong catalog bị chặn. Event trả về dạng action có cấu trúc agent xử lý được. Ràng buộc thiết kế Catalog hơn hỗn loạn. Chỉ cho phép widget bạn thiết kế; đừng để model bịa layout physics. Vòng critic. Validate output trước khi paint (empty state, overflow, nhãn a11y). Template để nhanh. Hybrid: template mạnh + slot model điền ổn định hơn generate thuần. Cạm bẫy Coi GenUI là engine theming — nó là protocol composition. Bỏ UI ...

GenUI and A2UI: agents that compose widgets, not markdown

Chat UIs trained users to accept walls of markdown. Generative UI (GenUI) flips the contract: the model proposes UI structure — lists, forms, cards — and Flutter renders real widgets with real state. What A2UI is A2UI is an open protocol describing how an agent and a client collaborate on UI composition and state. Flutter’s GenUI SDK implements the client side. Package downloads grew sharply through 2026 as teams shipped beyond demos (for example language-learning apps that compose lesson UI on the fly). Architecture sketch User intent goes to your backend/agent. Agent emits A2UI structure (not free text). GenUI maps structure → Flutter widgets in a constrained catalog. Events flow back as structured actions the agent can handle. Design constraints that make it work Catalog over chaos. Allow only widgets you designed; do not let the model invent layout physics. Critic loop. Validate agent output before paint (empty states, overflow, a11y labels). Templates for spe...

GenUI và A2UI: agent ghép widget, không chỉ markdown

Chat UI dạy người dùng chấp nhận tường markdown. Generative UI (GenUI) đảo hợp đồng: model đề xuất cấu trúc UI — list, form, card — và Flutter render widget thật với state thật. A2UI là gì A2UI là protocol mở mô tả agent và client cùng nhau ghép UI và quản lý state. GenUI SDK của Flutter là client. Lượt tải package tăng mạnh trong 2026 khi team ship thật (ví dụ app học ngôn ngữ tự ghép UI bài học). Kiến thức kiến trúc Intent người dùng tới backend/agent. Agent emit cấu trúc A2UI (không phải text tự do). GenUI map cấu trúc → widget Flutter trong catalog bị chặn. Event trả về dạng action có cấu trúc agent xử lý được. Ràng buộc thiết kế Catalog hơn hỗn loạn. Chỉ cho phép widget bạn thiết kế; đừng để model bịa layout physics. Vòng critic. Validate output trước khi paint (empty state, overflow, nhãn a11y). Template để nhanh. Hybrid: template mạnh + slot model điền ổn định hơn generate thuần. Cạm bẫy Coi GenUI là engine theming — nó là protocol composition. Bỏ UI ...

GenUI and A2UI: agents that compose widgets, not markdown

Chat UIs trained users to accept walls of markdown. Generative UI (GenUI) flips the contract: the model proposes UI structure — lists, forms, cards — and Flutter renders real widgets with real state. What A2UI is A2UI is an open protocol describing how an agent and a client collaborate on UI composition and state. Flutter’s GenUI SDK implements the client side. Package downloads grew sharply through 2026 as teams shipped beyond demos (for example language-learning apps that compose lesson UI on the fly). Architecture sketch User intent goes to your backend/agent. Agent emits A2UI structure (not free text). GenUI maps structure → Flutter widgets in a constrained catalog. Events flow back as structured actions the agent can handle. Design constraints that make it work Catalog over chaos. Allow only widgets you designed; do not let the model invent layout physics. Critic loop. Validate agent output before paint (empty states, overflow, a11y labels). Templates for spe...