Agent Frameworks

بناء سير عمل ذكاء اصطناعي حتمي باستخدام Temporal ومُرتِّبات الوكلاء المخصصة

أدى التطور السريع لنماذج اللغات الكبيرة (LLMs) إلى تحويل نموذج تطوير البرمجيات من المنطق الحتمي إلى الاستدلال الاحتمالي. بينما تتفوق نماذج LLM في توليد المحتوى وفهم السياق وحل المشكلات الإبداعي، إلا أنها بطبيعتها غير حتمية. يُدخل هذا الطابع الاحتمالي تحديات كبيرة عند دمج الذكاء الاصطناعي في العمليات التجارية الحرجة، مثل المعاملات المالية، والتشخيصات الصحية، أو اللوجستيات المعقدة لسلاسل التوريد.

لسد الفجوة بين إبداع الذكاء الاصطناعي وموثوقية المؤسسات، نحتاج إلى طبقة تنسيق قوية تضمن الاتساق، وتحمل الأعطال، والقابلية للمراقبة. هنا يأتي دور Temporal. من خلال دمج محرك التنفيذ الدائم الخاص بـ Temporal مع مُرتِّبات الوكلاء المخصصة، يمكن للمطورين بناء سير عمل للذكاء الاصطناعي ليس فقط ذكياً، بل أيضاً حتمياً تماماً في تدفق التحكم الخاص به.

تحدي عدم الحتمية في أنظمة الذكاء الاصطناعي

في البرمجيات التقليدية، إذا قمت بتشغيل نفس الكود مرتين بنفس المدخلات، تتوقع الحصول على نفس المخرجات. تنتهك نماذج LLM هذا المبدأ. حتى مع ضبط درجة الحرارة (temperature) على الصفر، يمكن أن تؤدي الاختلافات الطفيفة في العتاد أو تحديثات النموذج إلى نتائج متباينة. عندما تقوم بربط استدعاءات متعددة لنماذج LLM معاً في سير عمل وكيل معقد، تتراكم هذه الانحرافات الصغيرة، مما يؤدي إلى حالات نهائية غير متوقعة.

علاوة على ذلك، غالباً ما تتطلب وكلاء الذكاء الاصطناعي فحوصات للحالة الخارجية، أو تحديثات لقواعد البيانات، أو استدعاءات لواجهات برمجة التطبيقات (APIs) بين خطوات الاستدلال الخاصة بنماذج LLM. إذا حدثت مهلة زمنية للشبكة بعد أن قام نموذج LLM بتوليد رد ولكن قبل حفظ النتيجة، قد يفشل الميكرو سيرفيس التقليدي بشكل غير متسق. في سير عمل الذكاء الاصطناعي، يمكن أن يؤدي هذا إلى إجراءات مكررة، أو حالات متروكة، أو حلقات إعادة محاولة لا نهائية.

لماذا Temporal لتنسيق الوكلاء؟

Temporal هو منصة تنفيذ غير متزامنة مصممة لبناء تطبيقات قابلة للتوسع ومرنة. على عكس أطر العمل الخالية من الخوادم التقليدية، يوفر Temporal التنفيذ الدائم. هذا يعني أن حالة سير العمل الخاص بك يتم حفظها تلقائياً. إذا تعطلت العملية أو تم تقليل حجم البنية التحتية، يستأنف Temporal سير العمل بالضبط من حيث توقف، مما يضمن عدم فقدان أي خطوة وعدم تكرار أي خطوة.

بالنسبة لوكلاء الذكاء الاصطناعي، يترجم ذلك إلى:

  • دلالات التنفيذ مرة واحدة بالضبط (Exactly-Once Semantics): ضمان تنفيذ استدعاء API حرج يتم تشغيله بواسطة الوكيل مرة واحدة فقط، حتى إذا تعطلت عقدة العامل.
  • العمليات طويلة الأمد: غالباً ما تتضمن وكلاء الذكاء الاصطناعي خطوات تتطلب تدخلاً بشرياً أو موافقات خارجية قد تستغرق ساعات أو أياماً. يتعامل Temporal مع هذه سير العمل طويلة الأمد بكفاءة دون استهلاك موارد الخادم أثناء الانتظار.
  • القابلية للمراقبة: يتم تسجيل وتتبع كل خطوة في عملية صنع القرار الخاصة بالوكيل، مما يوفر إمكانية التدقيق المطلوبة لبيئات الإنتاج.

تنفيذ سير عمل وكيل حتمي

لنلقِ نظرة على مثال عملي. تخيل وكيل دعم عملاء يحتاج إلى التحقق من حالة طلب المستخدم، وتحديد ما إذا كان مؤهلاً لاسترداد المبلغ بناءً على السياسة، ثم تنفيذ الاسترداد إذا تمت الموافقة. سنستخدم SDK بايثون الخاص بـ Temporal لهيكلة هذا المنطق.

from temporalio.worker import Worker
from temporalio import workflow, activity
import openai

# Define the activities
@activity.defn
async def check_order_status(order_id: str) -> dict:
    # Logic to fetch order from database
    return {"status": "delivered", "eligible_for_refund": True}

@activity.defn
async def generate_refusal_reason(context: dict) -> str:
    # LLM call to explain why a refund might be denied
    return "Your order does not meet the criteria."

@activity.defn
async def execute_refund(order_id: str, amount: float):
    # Actual payment processing logic
    print(f"Refunding ${amount} for order {order_id}")

# Define the Workflow
@workflow.defn
class SupportAgentWorkflow:
    @workflow.run
    async def run(self, order_id: str) -> dict:
        # Step 1: Deterministic check
        order_data = await workflow.execute_activity(
            check_order_status,
            order_id,
            start_to_close_timeout=timedelta(seconds=10)
        )
        
        if order_data["eligible_for_refund"]:
            # Step 2: Retryable logic for LLM
            try:
                reason = await workflow.execute_activity(
                    generate_refusal_reason,
                    order_data,
                    start_to_close_timeout=timedelta(seconds=30)
                )
            except Exception as e:
                # Handle LLM service degradation gracefully
                return {"outcome": "error", "message": "AI service unavailable"}
            
            # Step 3: Critical financial operation
            await workflow.execute_activity(
                execute_refund,
                order_id,
                50.00,
                start_to_close_timeout=timedelta(seconds=30)
            )
            return {"outcome": "success", "refund_amount": 50.00}
            
        return {"outcome": "denied", "reason": "Not eligible"}

أفضل الممارسات للإنتاج

عند بناء هذه الأنظمة، افصل دائماً بين منطق اتخاذ القرار (الذي يجب أن يكون حتمياً ويتم التعامل معه بواسطة Temporal) ومنطق التوليد (الذي يتعامل معه نموذج LLM). استخدم Temporal لإدارة انتقالات الحالة، بينما دع نموذج LLM يعمل كأداة قوية داخل نشاط. بالإضافة إلى ذلك، حدد دائماً مهلات زمنية وسياسات إعادة المحاولة لأنشطتك للتعامل مع زمن الاستجابة المتأصل والأعطال العرضية لنقاط نهاية استنتاج الذكاء الاصطناعي.

الخاتمة

لا يكمن مستقبل تطبيقات الذكاء الاصطناعي في استبدال الأنظمة الحتمية، بل في تعزيزها. من خلال الاستفادة من Temporal كعمود فقري لمُرتِّبات الوكلاء الخاصة بك، يمكنك بناء أنظمة تكون ذكية وموثوقة في آن واحد. يتيح هذا النهج للمطورين تجاوز دفاتر الملاحظات التجريبية ونشر حلول الذكاء الاصطناعي التي تلبي المتطلبات الصارمة لبيئات إنتاج المؤسسات.

Share: