Sub-Agents

قم بإنشاء وكلاء فرعيين للمهام المعقدة أو طويلة المدى. كل وكيل فرعي له سياقه الخاص ويمكنه العمل بشكل مستقل.

متى تستخدم Sub-Agents

  • المهام المعقدة: المشاريع متعددة الخطوات التي تحتاج إلى سياق مخصص
  • العمل طويل المدى: المهام التي تستغرق > 5 دقائق
  • التنفيذ المتوازي: تشغيل مهام متعددة في نفس الوقت
  • المهام المجدولة: الوكلاء الفرعيون يمكنهم الاستمرار بعد انتهاء الجلسة الرئيسية

إنشاء Subagent

{
  "tool": "subagent",
  "action": "spawn",
  "label": "data-processor",
  "prompt": "معالجة ملف CSV وإنشاء تقرير",
  "channel": "telegram",
  "replyTo": "<message-id>"
}

المعاملات:

  • label: معرف فريد للوكيل الفرعي
  • prompt: المهمة/التعليمات للوكيل الفرعي
  • channel: أين يرسل النتائج
  • replyTo: ID الرسالة للرد عليها
  • model (اختياري): نموذج LLM للاستخدام
  • thinkingLevel (اختياري): off | low | medium | high

إدارة Subagents

قائمة الوكلاء الفرعيون:

{"tool":"subagent","action":"list"}

إيقاف Subagent:

{"tool":"subagent","action":"kill","label":"data-processor"}

إرسال رسالة إلى Subagent:

{"tool":"agent_send","target":"data-processor","message":"ما هي الحالة؟"}

أفضل الممارسات:

  • استخدم labels وصفية للوكلاء الفرعيين
  • قدم تعليمات واضحة في prompt
  • راقب الوكلاء الفرعيون النشطة بانتظام
  • قم بالتنظيف بعد اكتمال المهمة

دورة حياة Subagent

  1. Spawn: إنشاء وكيل فرعي بـ label و prompt
  2. Execute: الوكيل الفرعي يعمل على المهمة بشكل مستقل
  3. Report: يرسل تحديثات/نتائج إلى channel
  4. Complete: الوكيل الفرعي ينتهي ويرسل الرسالة النهائية

مثال: معالج دفعات

// 1. إنشاء subagent
{
  "tool": "subagent",
  "action": "spawn",
  "label": "batch-processor",
  "prompt": "معالجة جميع ملفات CSV في /data/ وإنشاء تقرير ملخص",
  "channel": "telegram"
}

// 2. التحقق من الحالة
{"tool":"subagent","action":"list"}

// 3. التواصل إذا لزم الأمر
{"tool":"agent_send","target":"batch-processor","message":"ما النسبة المئوية للاكتمال؟"}

// 4. الانتظار حتى يرسل الوكيل الفرعي النتائج
// (سيرسل إلى Telegram تلقائيًا عند الانتهاء)

الإعدادات

{
  agents: {
    defaults: {
      subagents: {
        maxConcurrent: 5,
        defaultModel: "anthropic/claude-sonnet-4-5",
        defaultThinkingLevel: "low"
      }
    }
  }
}