Google A2UI v0.9: واجهات يولّدها الـ AI بدون كود خطر — متى تعتمد عليها
لو في أبريل 2026 شغّلت agent بيولّد واجهات عن طريق إنه يكتب React code على الطاير، إنت بتخلط مخاطر أمنية وتجربة مستخدم في نفس المكان. في 17 أبريل 2026 Google طلّعت A2UI v0.9، بروتوكول ساكت ومهم: الـ agent مش بيكتب كود، بيختار من كتالوج مكوّنات موثوق إنت محدّده. المقال ده بيقولك بالظبط متى تتبنّاه على شغلك، ومتى هو overkill.
المشكلة باختصار
فيه موجة AI بتقول "اديني prompt، هرجّعلك واجهة كاملة". المنتج شكله لطيف في الـ demos، لكن في production بتواجه تلاتة مشاكل: حقن كود ضار من hallucinations، مكوّنات مش بتطابق الـ design system بتاعك، وصعوبة اختبار سلوك بيتغيّر في كل طلب. A2UI بيحل التلاتة بطريقة واحدة: الـ agent مش بيبعت HTML أو JSX، بيبعت JSON وصفي (declarative) بيقول "ارندر Button اسمها ادفع، جواها Card فيها TextField رقم الفاتورة". الـ renderer عندك (React أو Flutter أو Angular أو Lit) هو اللي بيرسمها من كتالوجك إنت.
هنفهمها بمثال الأول
تخيّل مطعم قائمته ثابتة. العميل لما بيقعد، ميدخلش المطبخ يطبخ اللي عايزه؛ بيختار من المنيو اللي الشيف جهّزه. A2UI بالظبط كدا. الـ agent (العميل) بيختار من مكوّنات الواجهة اللي إنت (الشيف) جهّزتها وأمّنتها قبل كده. لو طلب حاجة مش في القائمة، المطبخ بيرفض. مفيش "اطبخ لي حاجة إنت بتقرّر شكلها"، الكل بيتحرّك داخل حدود واضحة.
التعريف العلمي بعد المثال
A2UI (Agent to UI) هو بروتوكول declarative لنقل نوايا واجهة المستخدم بين agent و client renderer. الـ agent بيبعت شجرة component descriptors في JSON مع props لكل مكوّن، والـ renderer على جهاز المستخدم بيستدعي المكوّن المطابق من كتالوج trusted pre-registered. لا يوجد code execution، لا eval، ولا HTML خام راجع من الـ LLM. ده بيلغي تمامًا فئة هجمات الـ UI injection وبيخلّي السلوك قابل للاختبار unit-by-unit.
اللي جديد فعلاً في v0.9
الإصدار ده (17 أبريل 2026) بيضيف 4 حاجات بيفرقوا في production:
- Python Agent SDK رسمي: لحد دلوقتي، أغلب الـ backends المتكاملة مع A2UI كانت بتُكتب بـ TypeScript. Go و Kotlin في الـ Roadmap.
- React renderer رسمي بجانب تحديثات لـ Flutter و Lit و Angular تحت web core library موحّدة.
- Client-defined functions: تقدر تعرّف validation logic على الـ client، والـ agent بيطلب استدعاءها. مفيد جدًا للـ forms اللي قواعدها بتتغيّر حسب بيانات المستخدم.
- Client-to-server data syncing: بيفتح الباب لـ collaborative editing بين الـ user والـ agent في الوقت الحقيقي بدون ما تبني WebSocket layer من الصفر.
مثال تنفيذي: form ديناميكي في أقل من 30 سطر
هنبني endpoint agent بيولّد form فاتورة، وفي الـ client هنرندره بـ React من كتالوج بتاعنا.