من Microservices إلى Agentic AI
هلًا، شكرًا إنك انضميتلي النهارده. أنا راجعت الـ proposal بتاعك للـ architectural roadmap.
إحنا عندنا بالفعل Backend قوي مبني على Microservices، وبدأنا نجرب شوية Generative AI وPrompts بسيطة.
وإنت بتقترح إننا نتحرك ناحية الـ Agentic AI. في البداية، ممكن تشرحلي التطور ده؟ يعني إيه بالظبط AI Agent، وإيه الفرق الجوهري بينه وبين اللي إحنا بنعمله حاليًا؟
التطور من Microservices إلى Agentic AI
ببساطة، إحنا بنتطور كده:
Microservices
إحنا اللي محددين الـ workflow:
Generative AI
بنسأل الـ LLM سؤال، وهو بيطلع لنا إجابة.
AI Agent
بنديله هدف + أدوات ، وهو يقرر يستخدم أنهي tool، وبأي ترتيب، ويراجع النتيجة ويكمل لحد ما يحقق الهدف.
مثلًا، بدل ما نقوله:
نقوله:
وهو يقرر:
- يجيب بيانات العميل.
- يراجع الـ orders.
- يكلم الـ billing service.
- ياخد الـ action المناسب.
والأهم إننا مش بنستبدل الـ Microservices ؛ الـ Agent بيبقى طبقة فوقها.
- MAF يبني ويدير الـ Agents.
- MCP يربط الـ Agent بالـ tools.
- A2A يخلي Agent يكلم Agent تاني.
حماية الـ Agent والـ Guardrails
تمام، شرحت الفكرة بشكل مباشر. خليني أتحقق من فهمك أكتر.
لما تقول إن الـ Agent بياخد هدف وبيقرر الأدوات والخطوات، إزاي بتتأكد إن القرارات اللي بياخدها الـ Agent مش هتأثر على استقرار النظام أو تسبب مشاكل؟
وخصوصًا، لو الـ Agent بدأ يشتغل بطرق غير متوقعة؟
بالضبط، ودي من أهم نقاط الـ Agentic Architecture: إحنا مش بندي الـ Agent صلاحيات مفتوحة.
بنحط حواليه Guardrails:
- كل Agent له tools محددة وصلاحيات محددة .
- الـ Business Rules الحساسة تفضل جوه الـ Microservices، مش جوه الـ LLM.
- العمليات الخطيرة زي refund أو حذف بيانات تحتاج approval أو confirmation.
- بنعمل validation + authorization قبل تنفيذ أي action.
- بنحط timeouts, retries, rate limits وcircuit breakers عشان نحافظ على استقرار النظام.
- وبنعمل logging, tracing, monitoring عشان نعرف الـ Agent قرر إيه وليه.
- ولو الـ Agent بدأ يتصرف بشكل غير متوقع، نقدر نوقف الـ execution أو نسحب صلاحيات الـ tools.
الـ Agent يقدر يقرر، لكن مش هو اللي يملك النظام.
هو يقترح ويختار من capabilities محددة، لكن الـ Microservices والـ security/business rules هما اللي يفرضوا الحدود النهائية.
التعامل مع الـ Non-Determinism
جميل جدًا، أنا شايف إنك ركزت على فكرة الحماية ووضع قيود واضحة، ودي نقطة مهمة جدًا.
بس خليني أضغط أكتر شوية: إزاي بتتعامل مع مشكلة الـ non-determinism في الـ Agents؟
يعني، الـ Agents ساعات بتطلع قرارات مختلفة لنفس السيناريو نتيجة طبيعتهم الاحتمالية. في نظامنا اللي قائم على استقرار المخرجات، إزاي بنقلل المخاطرة دي؟
أيوه، ودي نقطة جوهرية: إحنا مش بنحاول نخلي الـ Agent deterministic 100% ؛ بنحط الـ Agent في المكان اللي الـ variability فيه مقبولة، ونخلي الـ critical operations deterministic .
- نقلل الـ temperature ونستخدم models/configuration أكثر استقرارًا.
- نخلي الـ Agent يختار من tools محددة بدل ما يقدر ينفذ أي حاجة.
- الـ Microservices تفضل هي صاحبة الـ business rules والـ validations النهائية.
- العمليات الحساسة نخليها deterministic أو محتاجة human approval.
- نستخدم structured outputs وschemas عشان شكل النتيجة يفضل ثابت.
- نعمل evaluation وtesting على مجموعة scenarios ونقيس الـ consistency قبل الـ production.
- نحط limits, timeouts, fallbacks لو الـ Agent خرج عن المتوقع.
الـ Agent مسؤول عن الـ reasoning، لكن مش مسؤول لوحده عن الـ correctness.
يعني ممكن الـ Agent يقرر بطريقتين مختلفتين، لكن في النهاية الـ business service تقول: "القرار ده مسموح أو مرفوض."
وبكده نستفيد من مرونة الـ Agent من غير ما نضحي باستقرار الـ system.
إمتى ما نستخدمش Agentic AI؟
تمام، منتظر توضح الحالات اللي ماينفعش فيها نستخدم Agentic AI.
إيه الأنظمة أو السيناريوهات اللي بتشوف إن الـ determinism فيها ضروري جدًا؟
أيوه، في حالات معينة الـ Agentic AI مش مناسب أصلًا، خصوصًا لما أي اختلاف في القرار ممكن يعمل risk كبير.
أهم الأمثلة:
- Financial Transactions: تحويل فلوس، حساب فوائد، settlement.
- Security & Authorization: مين مسموح له يدخل أو يعمل action معين.
- Safety-Critical Systems: طب، طيران، مصانع، أنظمة طوارئ.
- Core Business Rules: pricing, tax, eligibility, limits .
- Data Integrity: عمليات database الحساسة أو حذف/تعديل بيانات مهمة.
- Regulatory / Compliance: قرارات لازم تكون قابلة للتفسير وإعادة الإنتاج بدقة.
- High-Volume Deterministic Workflows: لو العملية معروفة وثابتة، مش محتاجين Agent يقرر كل مرة.
القاعدة الأساسية
القاعدة اللي بمشي بيها:
لو المطلوب "نفس الـ input لازم ينتج نفس الـ outcome"، خليها deterministic.
أما لو المشكلة فيها غموض، reasoning، context ، أو محتاجة اختيار بين كذا خطوة، هنا الـ Agent بيبقى مناسب.
Hybrid Architecture
فالأفضل غالبًا:
الـ Agent يعمل الـ reasoning والـ orchestration، والـ deterministic services تفضل هي صاحبة الـ business rules والـ critical decisions.
Comments
Post a Comment