العوامل كأدوات

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

ماذا يحدث عندما تنمو مسؤوليات وكيلك بما يتجاوز ما يمكن لمجموعة واحدة من التعليمات التعامل معها بشكل جيد؟ نظرا لأن العامل يتراكم الأدوات، فإن اختيار الأدوات يتدهور - النماذج أفضل في الاختيار من بين عدد قليل من الأدوات الموصوفة جيدا من الفرز من خلال العشرات. مع توسيع الإرشادات، يتدهور التركيز — فإن مطالبة النظام التي تحاول تغطية حجز السفر والإبلاغ عن النفقات وإدارة التقويم تعطي النموذج العديد من الأدوار التي لا يمكن التوفيق بينها.

الوكلاء كأدوات يحلون هذا عن طريق السماح لك بإنشاء عوامل: يمكن لعامل واحد (العامل الخارجي ) استدعاء عامل آخر (العامل الداخلي ) كما لو كان أداة دالة عادية. كل عامل داخلي له نطاق ضيق - تعليماته الخاصة، وأدواته الخاصة، وخبراته الخاصة. يقرر العامل الخارجي متى يتم التفويض وما يجب طلبه — تماما بنفس الطريقة التي يقرر بها وقت استدعاء أي أداة أخرى.

متى يتم استخدام هذا

استخدم العوامل كأدوات عندما:

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

Tip

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

الاعتبارات

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

كيف يعمل

يعتمد الوكلاء كأدوات على حلقة استدعاء الأدوات التي تعرفها بالفعل. الفرق الوحيد هو أن "الوظيفة" التي يتم استدعاؤها هي نفسها عامل.

┌──────────────────────────────────────────────────────────┐
│  User: "Book me a flight to Paris and file the expense"  │
└──────────────┬───────────────────────────────────────────┘
               ▼
┌──────────────────────────────────────────────────────────┐
│  Outer agent reasons about the request                   │
│  → decides to call the travel-booking agent first        │
└──────────────┬───────────────────────────────────────────┘
               ▼
┌──────────────────────────────────────────────────────────┐
│  Inner agent (travel-booking) runs as a tool:            │
│  • receives: "Book a flight to Paris"                    │
│  • uses its own tools (search_flights, book_flight)      │
│  • returns: "Booked Flight AF123, $450"                  │
└──────────────┬───────────────────────────────────────────┘
               ▼
┌──────────────────────────────────────────────────────────┐
│  Outer agent receives the tool result                    │
│  → decides to call the expense-filing agent next         │
└──────────────┬───────────────────────────────────────────┘
               ▼
┌──────────────────────────────────────────────────────────┐
│  Inner agent (expense-filing) runs as a tool:            │
│  • receives: "File expense for Flight AF123, $450"       │
│  • uses its own tools (create_expense, attach_receipt)   │
│  • returns: "Expense report filed"                       │
└──────────────┬───────────────────────────────────────────┘
               ▼
┌──────────────────────────────────────────────────────────┐
│  Outer agent synthesizes both results:                   │
│  "Done! Booked Flight AF123 to Paris for $450 and filed  │
│   expense report."                                       │
└──────────────────────────────────────────────────────────┘

نقاط رئيسية:

  1. يبدو العامل الداخلي أداة دالة. من منظور العامل الخارجي، لا يختلف استدعاء عامل داخلي عن استدعاء get_weather() أو search_database(). يعالج إطار العمل تحويل العامل إلى أداة باسم ووصف ومعلمة إدخال.
  2. يعمل العامل الداخلي بشكل مستقل. لديها تعليماتها وأدواتها واستدعاءات LLM الخاصة بها. لا يرى المحادثة الكاملة للعامل الخارجي — فقط الإدخال الذي تم تمريره عبر استدعاء الأداة.
  3. يرى العامل الخارجي النتيجة النهائية فقط. الخطوات الوسيطة للعامل الداخلي (استدعاءات الأداة، المنطق، إعادة المحاولة) غير مرئية للعامل الخارجي. يتلقى استجابة نصية، تماما مثل أي نتيجة أداة.

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

الآن بعد أن أصبح بإمكانك إنشاء عوامل ضمن عملية واحدة، فإن الخطوة التالية هي Agent-to-Agent (A2A) - مما يتيح للوكلاء الاتصال عبر حدود الخدمة والمؤسسة باستخدام بروتوكول قياسي.

انتقل إلى أبعد من ذلك: