Ai agents

بناء وكلاء الذكاء الاصطناعي من الصفر: دليل شامل باستخدام Agno للمبتدئين

بناء وكلاء الذكاء الاصطناعي



دليل شامل لبناء وكلاء الذكاء الاصطناعي متعدد الوسائط من الصفر باستخدام Agno

مقدمة: عالم الوكلاء الذكائيين متعددي الوسائط

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

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

ما هي وكلاء الذكاء الاصطناعي وما هي مكتبة Agno؟

مكتبة Agno هي مكتبة برمجية خفيفة الوزن مخصصة لبناء وكلاء ذكاء اصطناعي متعددي الوسائط (Multimodal Agents). هذه الوكلاء قادرة على:

انضم لـ تجار كوم واستعرض الاف المنتجات المتاحة للتسويق بالعمولة
  • استقبال مدخلات متنوعة (نصوص، صور، صوت، فيديو)
  • معالجة هذه المدخلات باستخدام مجموعة من الأدوات
  • إنتاج مخرجات متعددة الوسائط (نصوص، صور، صوت، فيديو)

لفهم كيفية عمل هذه الوكلاء، دعونا نأخذ مثالاً عمليًا:

لنفترض أننا طلبنا من الوكيل إخبارنا بما يحدث في نيويورك. إذا كان الوكيل مزودًا بأداة بحث على الإنترنت، فسوف:

  1. يقوم بتشغيل أداة البحث للحصول على آخر الأخبار من نيويورك
  2. يقوم بتحليل وتركيب هذه النتائج
  3. يقدم لنا الإجابة المطلوبة

يمكننا تطوير هذا المثال ليكون أكثر تقدمًا. تخيل أننا نعطي الوكيل صورة لجسر البوابة الذهبية (Golden Gate Bridge)، مع الأدوات التالية:

  • أداة بحث على الإنترنت
  • أداة توليد صوت باستخدام ElevenLabs
  • أداة إرسال بريد إلكتروني

إذا طلبنا من الوكيل: “ابحث عن أهم الأخبار من هذه المدينة وأرسلها لي عبر البريد الإلكتروني كملف صوتي”، فسوف:

  1. يبحث عن أهم الأخبار من سان فرانسيسكو (لأنه يعرف أن الجسر يقع هناك)
  2. يحلل هذه الأخبار
  3. ينشئ مقطعًا صوتيًا باستخدام ElevenLabs
  4. يرسل المقطع الصوتي عبر البريد الإلكتروني

هذا مثال بسيط على كيفية أتمتة المهام متعددة الوسائط باستخدام وكلاء Agno الخفيفة الوزن.

المكونات الأساسية لوكلاء Agno

يتكون وكيل Agno من عدة مكونات أساسية:

1. النموذج (Model)

هو “العقل” المسؤول عن العمليات، حيث يحدد كيفية تحقيق المهام المطلوبة بناءً على المدخلات. في مثالنا، نستخدم GPT-4 كنموذج للوكيل.

2. الأدوات (Tools)

مجموعة من الأدوات التي يستخدمها الوكيل لتنفيذ مهامه، مثل:

  • أدوات ElevenLabs لتوليد الصوت
  • أدوات Replicate لتوليد الفيديو
  • واجهات برمجة التطبيقات (APIs) للبحث على الإنترنت
  • يمكنك إضافة أي أدوات أو واجهات برمجة تطبيقات خاصة بك

3. المعرفة (Knowledge)

بينما يمتلك النموذج معرفة عامة بناءً على بيانات التدريب، يمكننا تزويد الوكيل بمعرفة خاصة بمجال معين. على سبيل المثال، يمكننا تزويده بوثائق Agno المخزنة في قاعدة بيانات متجهات (Vector Database).

جميع هذه المكونات تتكامل بسلاسة مع Agno. بدون المكتبة، سيتطلب تجميع هذه القطع معًا وقتًا طويلاً لكتابة واجهات برمجة التطبيقات وإجراء عمليات التكامل وإدارة تحميل المحتوى وتخزينه. مع Agno، يمكن تحقيق كل هذا في حوالي 10 أسطر من الكود فقط!

مميزات مكتبة Agno الفريدة

1. الأداء العالي

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

نتيجة لهذا التركيز على الأداء:

  • يتم تشغيل وكلاء Agno في حوالي 2 ميكروثانية
  • البصمة الم記憶ية لكل وكيل حوالي 3.5 كيلوبايت فقط (تم اختبارها على جهاز M4 Pro)
  • يمكنك تشغيل آلاف هذه الوكلاء بسرعة كبيرة لتقديم أفضل تجربة للمستخدمين

2. مفتوحة المصدر بالكامل

Agno مكتبة مفتوحة المصدر يمكنك:

  • الوصول إلى مستودع GitHub الخاص بها عبر الرابط: Agno GitHub
  • استعراض مئات الأمثلة تحت قسم Cookbook
  • رؤية الكود المصدري بالكامل لفهم ما يحدث خلف الكواليس
  • التأكد من الأمان والخصوصية
  • تفرع (Fork) المستودع وتعديله حسب احتياجاتك

حتى وقت كتابة هذا الدليل، هناك حوالي 3000 تفرع (fork) لهذا المستودع، مما يدل على شعبيتها بين المطورين.

البدء في بناء وكلاء Agno: الإعداد الأولي

لنبدأ رحلتنا العملية في بناء وكلاء الذكاء الاصطناعي. أولاً، نحتاج إلى إعداد بيئة التطوير:

1. تنزيل المكتبة

قم باستنساخ مستودع Agno باستخدام الأمر التالي في الطرفية (Terminal):

git clone https://github.com/agno-ai/agno.git

2. إعداد البيئة الافتراضية

ننشئ بيئة افتراضية لبايثون باستخدام `uv` (يمكنك استخدام أي أداة أخرى تفضلها):

python -m venv agno-env
source agno-env/bin/activate  # للأنظمة المشابهة لنظام يونكس
agno-env\Scripts\activate    # لنظام ويندوز

3. تثبيت المتطلبات

نقوم بتثبيت المتطلبات اللازمة:

pip install -r requirements.txt

ستلاحظ أن Agno تأتي مع الحد الأدنى من التبعيات (dependencies) المطلوبة، مما يجعلها خفيفة الوزن وسريعة التثبيت.

4. إعداد مفاتيح الواجهات البرمجية

تحتاج إلى تصدير مفتاح OpenAI API الخاص بك:

export OPENAI_API_KEY='your-api-key-here'

إذا كنت تخطط لاستخدام أدوات الصوت مثل ElevenLabs، ستحتاج أيضًا إلى تصدير مفاتيحها البرمجية.

بناء أول وكيل بسيط

لنبدأ ببناء أبسط شكل من وكلاء Agno. افتح ملفًا جديدًا باسم `simple_agent.py` وأضف الكود التالي:

from agno import Agent

# إنشاء وكيل بسيط
simple_agent = Agent(
    name="NewsReporter",  # اسم الوكيل (اختياري)
    model="gpt-4",        # النموذج المستخدم (مطلوب)
    instructions="أنت مراسل أخبار محترف. شارك قصة إخبارية مثيرة للاهتمام من نيويورك وسان فرانسيسكو."
)

# تشغيل الوكيل
response = simple_agent.run()
print(response)

لتشغيل هذا الوكيل، استخدم الأمر في الطرفية:

python simple_agent.py

سيقوم الوكيل بإنشاء قصة إخبارية من نيويورك وسان فرانسيسكو. لكن لاحظ أن هذه القصة ستكون من اختلاق النموذج (hallucination) وليست أخبارًا حقيقية.

تحسين الوكيل بإضافة أدوات البحث

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

from agno import Agent
from agno.tools import DuckDuckGoSearchTool

# إنشاء وكيل مع أداة بحث
agent_with_tools = Agent(
    name="FactualNewsReporter",
    model="gpt-4",
    instructions="ابحث عن قصة إخبارية حديثة ومثيرة من نيويورك وسان فرانسيسكو. اختر الأكثر إثارة للاهتمام وقدم ملخصًا مع رابط المصدر.",
    tools=[DuckDuckGoSearchTool()]
)

# تشغيل الوكيل
response = agent_with_tools.run("شارك قصة إخبارية من نيويورك وسان فرانسيسكو")
print(response)

الآن عندما تطلب من الوكيل مشاركة قصة إخبارية، سيقوم بما يلي:

  1. البحث عن أخبار حديثة من نيويورك باستخدام أداة البحث
  2. البحث عن أخبار حديثة من سان فرانسيسكو
  3. اختيار القصة الأكثر إثارة للاهتمام
  4. تقديم ملخص مع رابط المصدر حتى يمكنك التحقق من صحته

يمكنك تطوير هذا الوكيل أكثر بإعطائه تعليمات لاختيار عدة قصص أو ترتيبها حسب الأهمية.

الانتقال إلى واجهة المستخدم الرسومية

بينما يعمل الوكيل جيدًا في الطرفية، من الأفضل تقديم واجهة مستخدم رسومية للتفاعل معه. لنستخدم واجهة Agno Playground:

1. تشغيل الخادم المحلي

أنشئ ملفًا جديدًا باسم `playground.py` وأضف الكود التالي:

from fastapi import FastAPI
from agno import Agent
from agno.tools import DuckDuckGoSearchTool

app = FastAPI()

# إنشاء الوكيل
agent = Agent(
    name="NewsReporter",
    model="gpt-4",
    instructions="أنت مراسل أخبار محترف. ابحث عن قصص إخبارية حديثة من مدن مختلفة وقدم ملخصًا مع المصادر.",
    tools=[DuckDuckGoSearchTool()]
)

@app.post("/chat")
async def chat(message: str):
    response = agent.run(message)
    return {"response": response}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=7777)

2. تشغيل الخادم

في الطرفية، قم بتشغيل:

python playground.py

سيبدأ الخادم على العنوان http://localhost:7777. يمكنك الآن الوصول إلى واجهة Playground عبر المتصفح والتفاعل مع الوكيل بطريقة أكثر جاذبية.

إضافة المعرفة الخاصة إلى الوكيل

لجعل الوكيل أكثر تخصصًا، يمكننا تزويده بمعرفة خاصة. لنفترض أننا نريد إنشاء وكيل دعم فني لـ Agno:

from agno import Agent
from agno.tools import DuckDuckGoSearchTool
from agno.knowledge import LanceDBKnowledge

# إنشاء وكيل مع معرفة
agent_with_knowledge = Agent(
    name="AgnoSupport",
    model="gpt-4",
    instructions="أنت وكيل دعم فني لـ Agno. استخدم معرفتك بالإجابة على أسئلة المستخدمين. كن مفيدًا ودقيقًا.",
    tools=[DuckDuckGoSearchTool()],
    knowledge=LanceDBKnowledge(
        data_source="path/to/agno_documentation",
        storage_path="temp/lancedb"
    )
)

# قبل التشغيل، تأكد من تحميل قاعدة المعرفة
agent_with_knowledge.load_knowledge()

# تشغيل الوكيل
response = agent_with_knowledge.run("أخبرني عن Agno")
print(response)

في هذا المثال:

  • نستخدم `LanceDB` لتخزين المعرفة محليًا
  • نقوم بتحميل وثائق Agno كمعرفة أساسية للوكيل
  • يمكن للوكيل الآن الإجابة على أسئلة محددة حول Agno بناءً على وثائقه الرسمية

إضافة نظام التخزين للذاكرة الطويلة

لجعل الوكيل يتذكر المحادثات السابقة، نضيف نظام تخزين:

from agno import Agent
from agno.storage import SQLiteStorage

# إنشاء وكيل مع تخزين
agent_with_storage = Agent(
    name="MemoryAgent",
    model="gpt-4",
    instructions="أنت وكيل محادثة ذكي يتذكر تاريخ المحادثات.",
    storage=SQLiteStorage(path="conversations.db")
)

# التشغيل مع تخزين المحادثة
response = agent_with_storage.run("مرحبًا، أنا أحمد")
print(response)

# في المرة القادمة، سيتذكر الوكيل المحادثة السابقة
response = agent_with_storage.run("ما هو اسمي؟")
print(response)  # سيجيب: "اسمك أحمد"

يدعم Agno عدة أنظمة تخزين:

  • SQLite (مضمن مع بايثون، جيد للتطوير المحلي)
  • PostgreSQL (للإنتاج)
  • MongoDB
  • DynamoDB
  • أو حتى تخزين بسيط في ملفات JSON/YAML

بناء وكيل متعدد الوسائط متكامل

لننهي هذا الدليل ببناء وكيل متعدد الوسائط متكامل يمكنه:

  • الإجابة على الأسئلة بناءً على معرفته
  • توليد الأكواد البرمجية
  • إنشاء الصور
  • توليد الصوت
  • تذكر المحادثات السابقة
from agno import Agent
from agno.tools import (
    DuckDuckGoSearchTool,
    PythonCodeTool,
    ElevenLabsAudioTool,
    DALLETool
)
from agno.knowledge import LanceDBKnowledge
from agno.storage import PostgreSQLStorage

# إنشاء الوكيل النهائي
agno_assistant = Agent(
    name="AgnoAssistant",
    model="gpt-4",
    description="وكيل مساعد متعدد الوسائط لـ Agno يمكنه الإجابة على الأسئلة، كتابة الأكواد، إنشاء الصور والصوت.",
    instructions="أنت وكيل الدعم الرسمي لـ Agno. استخدم معرفتك وأدواتك لمساعدة المستخدمين. كن دقيقًا ومفيدًا.",
    tools=[
        DuckDuckGoSearchTool(),
        PythonCodeTool(),
        ElevenLabsAudioTool(),
        DALLETool()
    ],
    knowledge=LanceDBKnowledge(
        data_source="path/to/agno_docs",
        storage_path="temp/lancedb"
    ),
    storage=PostgreSQLStorage(
        db_url="postgresql://user:password@localhost/agno_chats"
    )
)

# مثال للتفاعل مع الوكيل
response = agno_assistant.run(
    "أنشئ وكيلًا يمكنه البحث على الإنترنت باستخدام Agno، واعرض لي مثالاً مع خطوات التشغيل"
)
print(response)

response = agno_assistant.run(
    "اصنع صورة لهذا الوكيل على جسر البوابة الذهبية"
)
print(response)  # سيرجع رابط الصورة المولدة

response = agno_assistant.run(
    "اصنع مقطعًا صوتيًا يصف هذه البيئة"
)
print(response)  # سيرجع رابط المقطع الصوتي

خاتمة: آفاق التطوير المستقبلية

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

لكن هذا مجرد بداية! يمكنك تطوير وكلائك ليقوموا بمهام أكثر تعقيدًا مثل:

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

ننصحك باستكشاف مستودع Agno على GitHub لمشاهدة المئات من الأمثلة الإضافية وتطبيقات العالم الحقيقي.

تذكر أن مجال وكلاء الذكاء الاصطناعي يتطور بسرعة، لذا حافظ على تحديث معرفتك وجرب دائمًا أفكارًا جديدة. نتمنى لك رحلة ممتعة في بناء وكلائك الذكية!


سيرفر خدمات وتساب API السحابي سيرفر خدمات وتساب API السحابي

مقالات ذات صلة

اترك تعليقاً

زر الذهاب إلى الأعلى