العودة إلى الرئيسية

ربما لا تحتاج إلى إطار عمل للوكيل

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

القراءة الصوتية غير متاحة في هذا المتصفح
ربما لا تحتاج إلى إطار عمل للوكيل

الوسوم

ملخص سريع

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

ربما لا تحتاج إلى إطار عمل للوكلاء الذكيين

يشهد مجال الذكاء الاصطناعي حاليًا طفرة في أطر عمل الوكلاء الذكيين التي تعد بتبسيط تطوير الأنظمة المستقلة. من LangChain إلى AutoGPT و Semantic Kernel من مايكروسوفت، تقدم هذه الأدوات تجريدات للتخطيط واستخدام الأدوات والذاكرة. ومع ذلك، يرى عدد متزايد من الممارسين أنه في معظم حالات الاستخدام الواقعية، لا تحتاج إلى إطار عمل ثقيل على الإطلاق. تستكشف هذه المقالة لماذا غالبًا ما يتفوق النهج المباشر البسيط على طبقات التنسيق المعقدة، وتقدم دليلًا عمليًا لبناء وكيل بسيط باستخدام واجهة برمجة تطبيقات OpenAI فقط ولغة بايثون القياسية.

لماذا قد تكون أطر العمل مبالغًا فيها

تقدم أطر العمل تبعيات ومنحنيات تعلم وسلوكيات خفية. وفقًا لتحليل حديث نُشر على **Towards Data Science** (المصدر 1)، فإن العديد من أطر عمل الوكلاء تجرد منطق اتخاذ القرار الحاسم، مما يجعل التصحيح صعبًا ويزيد من زمن الاستجابة. الفكرة الأساسية هي أن "الوكيل" هو في الأساس حلقة: نموذج يتلقى مطالبة، ويقرر إجراءً، وينفذه، ويراقب النتيجة. يمكنك تنفيذ هذه الحلقة في أقل من 100 سطر من بايثون.

تؤكد أخبار OpenAI الخاصة (المصدر 2) على استدعاء الوظائف والمخرجات المنظمة باعتبارها اللبنات الأساسية للوكلاء. وتسلط مدونة مايكروسوفت للذكاء الاصطناعي (المصدر 3) الضوء بالمثل على أن أكثر الأنظمة المستقلة موثوقية تستخدم أنماط استدعاء أدوات بسيطة بدلاً من المنسقين المتجانسين. وتؤكد أخبار Anthropic (المصدر 4) أن الوكلاء الفعالين غالبًا ما يكونون مجرد نماذج مدفوعة جيدًا مع عدد قليل من الأدوات الخارجية.

المتطلبات

قبل أن نبدأ، تأكد من أن لديك ما يلي:

  • بايثون 3.10 أو أحدث مثبتة على نظامك
  • مفتاح API من OpenAI (مع الوصول إلى `gpt-4o` أو `gpt-4-turbo`)
  • إلمام أساسي بسطر الأوامر
  • محرر نصوص (VS Code موصى به)

التثبيت خطوة بخطوة

سنقوم بإنشاء وكيل بسيط يمكنه الإجابة على الأسئلة عن طريق إجراء عمليات بحث على الويب أو حسابات. لا إطار عمل، لا تبعيات ثقيلة.

الخطوة 1: إعداد بيئة افتراضية

اعزل تبعيات مشروعك لتجنب التعارضات.

python -m venv agent-env
source agent-env/bin/activate  # على ويندوز: agent-env\Scripts\activate

الخطوة 2: تثبيت الحزم المطلوبة

نحتاج فقط إلى عميل OpenAI للبايثون و `requests` لاستدعاءات HTTP الاختيارية.

pip install openai requests

الخطوة 3: تعيين مفتاح API الخاص بك

قم بتخزين مفتاحك بشكل آمن كمتغير بيئة. استبدل `your-key-here` بمفتاحك الفعلي.

export OPENAI_API_KEY="your-key-here"  # على ويندوز: set OPENAI_API_KEY=your-key-here

الخطوة 4: إنشاء سكريبت الوكيل

قم بإنشاء ملف باسم `minimal_agent.py` وافتحه في المحرر الخاص بك.

# minimal_agent.py
import json
import os
from openai import OpenAI

client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

# تعريف الأدوات المتاحة (الوظائف التي يمكن للنموذج استدعاؤها)
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "الحصول على الطقس الحالي لمدينة",
            "parameters": {
                "type": "object",
                "properties": {
                    "city": {"type": "string", "description": "اسم المدينة"}
                },
                "required": ["city"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "calculate",
            "description": "إجراء عملية حسابية رياضية",
            "parameters": {
                "type": "object",
                "properties": {
                    "expression": {"type": "string", "description": "تعبير رياضي مثل '2+2'"}
                },
                "required": ["expression"]
            }
        }
    }
]

# تطبيقات الأدوات البسيطة
def get_weather(city: str) -> str:
    # في الإنتاج، استخدم واجهة برمجة تطبيقات طقس حقيقية
    return f"الطقس في {city} مشمس، 22°م."

def calculate(expression: str) -> str:
    try:
        result = eval(expression)  # استخدم بحذر في الإنتاج
        return f"النتيجة: {result}"
    except Exception as e:
        return f"خطأ: {str(e)}"

# حلقة الوكيل
def agent_loop(user_input: str, max_turns: int = 5):
    messages = [{"role": "user", "content": user_input}]
    
    for turn in range(max_turns):
        response = client.chat.completions.create(
            model="gpt-4o",
            messages=messages,
            tools=tools,
            tool_choice="auto"
        )
        
        assistant_message = response.choices[0].message
        
        # إذا كان النموذج يريد استدعاء أداة
        if assistant_message.tool_calls:
            messages.append(assistant_message)
            for tool_call in assistant_message.tool_calls:
                function_name = tool_call.function.name
                arguments = json.loads(tool_call.function.arguments)
                
                if function_name == "get_weather":
                    result = get_weather(**arguments)
                elif function_name == "calculate":
                    result = calculate(**arguments)
                else:
                    result = f"وظيفة غير معروفة: {function_name}"
                
                messages.append({
                    "role": "tool",
                    "tool_call_id": tool_call.id,
                    "content": result
                })
        else:
            # النموذج استجاب مباشرة
            return assistant_message.content
    
    return "تم الوصول إلى الحد الأقصى لعدد الأدوار."

if __name__ == "__main__":
    query = input("أدخل سؤالك: ")
    print(agent_loop(query))

**الشرح**: يعرّف هذا السكريبت أداتين (الطقس والآلة الحاسبة)، وينفذ حلقة الوكيل التي تستدعي واجهة برمجة تطبيقات OpenAI مع تعريفات الوظائف، وتعالج استدعاءات الأدوات تلقائيًا. يقرر النموذج متى يستخدم أداة مقابل متى يجيب مباشرة.

أمثلة الاستخدام

المثال 1: سؤال أساسي

قم بتشغيل الوكيل واسأل سؤالًا بسيطًا.

python minimal_agent.py

عند الطلب، أدخل:

ما هي عاصمة فرنسا؟

**المخرجات المتوقعة**: سيجيب النموذج مباشرة دون استدعاء أي أدوات، ويعيد شيئًا مثل "عاصمة فرنسا هي باريس."

المثال 2: سؤال بمساعدة أداة

اسأل سؤالًا يتطلب استدعاء أداة.

python minimal_agent.py

أدخل:

ما هو الطقس في طوكيو؟

**المخرجات المتوقعة**: يحدد النموذج أنه يحتاج إلى أداة `get_weather`، ويستدعيها مع `city="طوكيو"`، ويتلقى النتيجة، ويعيد: "الطقس في طوكيو مشمس، 22°م."

المثال 3: تفكير متعدد الخطوات

اسأل سؤالًا يتطلب حسابًا.

python minimal_agent.py

أدخل:

ما هو 15 بالمائة من 200؟

**المخرجات المتوقعة**: يستدعي النموذج أداة `calculate` مع `expression="15/100*200"`، ويحصل على `النتيجة: 30.0`، ويجيب: "15 بالمائة من 200 هو 30."

متى قد يساعد إطار العمل

على الرغم من البساطة أعلاه، يمكن أن تكون أطر العمل مفيدة في سيناريوهات محددة:

  • **أنظمة متعددة الوكلاء المعقدة** حيث يحتاج الوكلاء إلى التواصل وتفويض المهام لبعضهم البعض
  • **إدارة الذاكرة على مستوى الإنتاج** مع قواعد بيانات المتجهات والاحتفاظ بالسياق طويل المدى
  • **المراقبة المدمجة** لتتبع وتسجيل وتصحيح السلاسل المعقدة
  • **تكاملات مبنية مسبقًا** مع عشرات الخدمات وواجهات برمجة التطبيقات الخارجية

ومع ذلك، كما تشير مقالة **Towards Data Science** (المصدر 1)، فإن معظم المشاريع لا تصل أبدًا إلى هذا المستوى من التعقيد. ابدأ بدون إطار عمل؛ أضف التعقيد فقط عندما تثبت الحاجة إليه.

الخلاصة

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

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

المصادر

أسئلة شائعة

عن ماذا يتحدث هذا المقال؟

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

لمن يفيد هذا المقال؟

يفيد القراء المهتمين بفهم أدوات وتقنيات الذكاء الاصطناعي بطريقة عملية وواضحة.

ما الخطوة التالية؟

اقرأ المقال كاملاً، راجع المصادر المرفقة، ثم جرّب الأفكار المناسبة لاحتياجك بحذر.