Google เปิดตัว A2UI Express ปฏิวัติความเร็ว Generative UI ขึ้น 3 เท่า
27 ต.ค. 2026
Google ตอบรับข้อกังวลเรื่องความเร็วของ A2UI และประสบการณ์การใช้งาน Generative UI ที่ผู้ใช้ต้องรอคอยขณะที่โมเดลกำลังสร้างหน้าจอ การอัปเดตครั้งนี้เพิ่มตัวเลือกให้คุณปรับความเร็วได้ตามความเหมาะสมของแต่ละหน้าจอ
เรายินดีที่จะแนะนำรูปแบบ Inference ที่สลับเปลี่ยนได้ พร้อมตัวอย่างการใช้ Decision Models ร่วมกับ A2UI เพื่อสร้าง Generative UI ที่รวดเร็วและเชื่อถือได้ การใช้ A2UI Express รูปแบบใหม่ช่วยลด Latency ได้สูงสุดถึง 3 เท่า และเร็วขึ้นถึง 80 เท่า เมื่อใช้ร่วมกับ Decision Models อย่าง Jev โดย Express ใช้ Token น้อยลงสูงสุด 3 เท่าเมื่อเทียบกับ Direct JSON ในการสร้าง UI ประเภทเดียวกัน
A2UI คือ Protocol สำหรับ Agent ในงาน Generative UI โดย Client จะประกาศแคตตาล็อกของคอมโพเนนต์ที่เชื่อถือได้เป็นสัญญา (Contract) จากนั้น Agent จะส่งข้อความ A2UI เพื่ออธิบาย User Interface และให้ Client เรนเดอร์หน้าจอออกมา (อ่านต่อได้ที่ Introducing A2UI)
เดิมที Agent ต้องสร้างข้อความ JSON โดยตรง ซึ่งการสร้างโครงสร้างที่ซับซ้อนตาม JSON Schema นั้นช้าและเกิดข้อผิดพลาดได้ง่ายสำหรับ LLM ทำให้การนำไปใช้กับ System One Decision Models ที่เร็วกว่านั้นทำได้ยาก
ปัจจุบัน Agent สามารถสร้าง A2UI Express ซึ่งเป็นรูปแบบกลางที่เน้นความเร็วและความแม่นยำในการทำ Inference โดยใช้โค้ดแบบ Deterministic ใน SDK เพื่อแปลเป็น JSON นักพัฒนาสามารถสลับไปใช้ DSL อื่นๆ ได้ตามต้องการ โดย SDK จะทำหน้าที่จัดการด้านความเข้ากันได้ในการเรนเดอร์ให้เอง
รูปแบบที่โมเดลสร้างขึ้นเรียกว่า inference_format ซึ่งตั้งค่าได้ผ่าน Argument เดียวเมื่อสร้าง Generator โดย SDK จะสร้าง Prompt และคอมไพล์การตอบกลับเป็นข้อความ A2UI มาตรฐาน ซึ่งจะอ้างอิงตาม Schema ของแคตตาล็อกคุณเท่านั้น ทำให้ไม่เกิดการสร้างคอมโพเนนต์ที่ไม่มีอยู่จริง
คุณสามารถเลือกรูปแบบที่ต้องการได้ง่ายๆ ดังนี้:
from a2ui.processor import A2uiGenerator, CatalogConfig
from a2ui.inference_formats import ExpressFormatFactory
catalog = CatalogConfig.from_path("catalog.json")
generator = A2uiGenerator(
[catalog],
examples=few_shot_examples, # written once as A2UI JSON
inference_format_factory=ExpressFormatFactory(),
)
processor = generator.create_processor(renderer_capabilities)
system_prompt = f"{instructions}\n\n{processor.prompt_snippet}"
parts = processor.parse_response(model_reply) # text parts + validated A2UI messagesA2UI Express พร้อมใช้งานแล้วใน SDK หลายภาษา ทั้ง Python (a2ui-agent-sdk 0.9.0), TypeScript (@a2ui/agent) และ Dart (a2ui_agent 0.0.1-wip004)
รูปแบบของ Express จะเขียนหนึ่งคำสั่งต่อหนึ่งบรรทัด คล้ายกับ Python โดยแต่ละบรรทัดจะกำหนดคอมโพเนนต์ให้กับตัวแปร และใช้ชื่อตัวแปรเป็น ID ตัวอย่างการสร้างการ์ดแจ้งเตือนในรูปแบบ Express:
surface("gallery-notification-permission")
$/description="Get alerts for order status changes"
$/icon="check"
$/title="Enable notification"
root=Card(main_column)
main_column=Column([icon, title, description, actions], _, "center")
icon=Icon($/icon)
title=Text($/title)
description=Text($/description, "body")
actions=Row([yes_btn, no_btn], "center")
yes_btn_text=Text("Yes")
yes_btn=Button(yes_btn_text, _, Event("accept", {}))
no_btn_text=Text("No")
no_btn=Button(no_btn_text, _, Event("decline", {}))นอกจากนี้ A2UI Express ยังรองรับการใช้มาโครใน Python SDK เพื่อดึงข้อมูลจริงจากระบบมาเติมในหน้าจอได้ทันที เช่น การเรียกใช้ OrderStatus("ord_42") เพื่อดึงข้อมูลคำสั่งซื้อมาแสดงผล (ดูรายละเอียดใน มาโคร README)
จากการทดสอบเปรียบเทียบ 4 รูปแบบ (Direct JSON, Express, Atom และ Elemental) บน Gemini-3.5-flash พบว่า Express ทำงานได้ดีเยี่ยมแม้จะปิดโหมดการคิด (Thinking) ซึ่งช่วยให้การทำ Inference รวดเร็วที่สุด
สำหรับหน้าจอที่มีรูปแบบแน่นอน เช่น หน้าตั้งค่าหรือการชำระเงิน เราสามารถใช้ Jev จาก TypeSafe ซึ่งเป็น System One Model ที่ออกแบบมาเพื่อตัดสินใจเชิงโครงสร้างอย่างรวดเร็ว (ประมาณ 100-300 ms) โดยไม่ต้องรอให้ LLM ออกแบบเลย์เอาต์ใหม่ทั้งหมด
เครื่องมือ Apparite (jev2ui) แสดงให้เห็นว่าการใช้ Jev ร่วมกับ A2UI สามารถสร้างคอมโพเนนต์ทรีได้ในเวลาเพียง 92-298 ms และเสร็จสมบูรณ์ทั้งหน้าจอภายใน 0.8-1.7 วินาที โดยใช้ Gemini-3.5-flash-lite มาช่วยเขียนเฉพาะส่วนที่เป็นข้อความ
สรุปสั้นๆ คือคุณควรเลือกใช้ตามความต้องการ: ใช้ แบบควบคุม (Controlled) ร่วมกับ Decision Model เมื่อเลย์เอาต์หน้าจอแน่นอนเพื่อความเร็วสูงสุด, ใช้ Express เมื่อต้องการความอิสระในการสร้าง UI ที่ซับซ้อน หรือ สร้างรูปแบบของคุณเอง เพื่อรองรับกรณีการใช้งานใหม่ๆ ในอนาคต

ความคิดเห็น (0)
เข้าสู่ระบบเพื่อร่วมแสดงความเห็น
สมัครสมาชิกมาเป็นคนแรกที่แสดงความเห็นกันเลยโบร
