# MainAgent

## التعريف

MainAgent هو سلسلة الطلبات الرئيسية في Claude Code عندما لا يكون في وضع agent team. كل تفاعل بين المستخدم وClaude Code ينتج سلسلة من طلبات API، حيث تشكل طلبات MainAgent سلسلة المحادثة الأساسية — فهي تحمل system prompt الكامل وتعريفات الأدوات وسجل الرسائل.

## طريقة التعرف

في cc-viewer، يُعرَّف MainAgent من خلال `req.mainAgent === true`، ويتم تعيينه تلقائياً بواسطة `server/interceptor.js` عند التقاط الطلب.

شروط التحديد (يجب استيفاؤها جميعاً):
- جسم الطلب يحتوي على حقل `system` (system prompt)
- جسم الطلب يحتوي على مصفوفة `tools` (تعريفات الأدوات)
- يحتوي system prompt على نص مميز لـ "Claude Code"

## الفرق عن SubAgent

| الخاصية | MainAgent | SubAgent |
|---------|-----------|----------|
| system prompt | prompt رئيسي كامل لـ Claude Code | prompt مختصر مخصص للمهمة |
| مصفوفة tools | تحتوي على جميع الأدوات المتاحة | عادة تحتوي فقط على الأدوات اللازمة للمهمة |
| سجل الرسائل | يتراكم سياق المحادثة الكامل | يحتوي فقط على رسائل المهمة الفرعية |
| سلوك التخزين المؤقت | يوجد prompt caching (TTL 5 دقائق) | عادة بدون تخزين مؤقت أو تخزين مؤقت صغير |
