# Agent

يُطلق وكيلاً فرعياً مستقلاً من Claude Code مزوَّداً بنافذة سياق خاصة به لمعالجة مهمة محددة وإعادة نتيجة موحَّدة واحدة. هذه هي الآلية القياسية لتفويض البحث المفتوح، أو العمل المتوازي، أو التعاون الجماعي.

## متى يُستخدم

- عمليات البحث المفتوحة عندما لا تعلم بعدُ أي الملفات ذات صلة وتتوقع جولات متعددة من `Glob` و`Grep` و`Read`.
- العمل المتوازي المستقل — أطلق عدة وكلاء في رسالة واحدة للتحقيق في مناطق منفصلة في آنٍ واحد.
- عزل الاستكشاف المزدحم عن المحادثة الرئيسية حتى يبقى سياق الأصل مضغوطاً.
- التفويض إلى نوع وكيل فرعي متخصص مثل `Explore` أو `Plan` أو `claude-code-guide` أو `statusline-setup`.
- إطلاق زميل فريق مُسمَّى داخل فريق نشط للعمل المنسَّق متعدد الوكلاء.

لا تستخدمه عندما يكون الملف أو الرمز المستهدف معروفاً بالفعل — استخدم `Read` أو `Grep` أو `Glob` مباشرةً. عملية بحث من خطوة واحدة عبر `Agent` تُهدر نافذة سياق كاملة وتزيد من زمن الاستجابة.

## المعاملات

- `description` (سلسلة، مطلوب): تسمية قصيرة من 3 إلى 5 كلمات تصف المهمة؛ تُعرض في الواجهة والسجلات.
- `prompt` (سلسلة، مطلوب): الموجز الكامل والمكتفي ذاتياً الذي سينفذه الوكيل. يجب أن يتضمن جميع السياق والقيود والصيغة المتوقعة للإرجاع.
- `subagent_type` (سلسلة، اختياري): شخصية جاهزة مثل `general-purpose` أو `Explore` أو `Plan` أو `claude-code-guide` أو `statusline-setup`. القيمة الافتراضية `general-purpose`.
- `run_in_background` (قيمة منطقية، اختياري): إذا كانت `true`، يعمل الوكيل بشكل غير متزامن، ويمكن للأصل متابعة العمل؛ تُسترجع النتائج لاحقاً.
- `model` (سلسلة، اختياري): تجاوُز النموذج لهذا الوكيل — `opus` أو `sonnet` أو `haiku`. الافتراضي هو نموذج جلسة الأصل.
- `isolation` (سلسلة، اختياري): اضبطها على `worktree` لتشغيل الوكيل داخل worktree معزول خاص بـ git حتى لا تتعارض عمليات كتابته مع الأصل.
- `team_name` (سلسلة، اختياري): عند الإطلاق داخل فريق موجود، معرِّف الفريق الذي سينضم إليه الوكيل.
- `name` (سلسلة، اختياري): اسم زميل الفريق القابل للعنونة داخل الفريق، ويُستخدم بوصفه هدف `to` في `SendMessage`.

## أمثلة

### مثال 1: بحث برمجي مفتوح

```
Agent(
  description="Find auth middleware",
  subagent_type="Explore",
  prompt="Locate every place in this repo where JWT verification is performed. Return a bulleted list of absolute file paths with a one-line note about each site's role. Do not modify any files."
)
```

### مثال 2: تحقيقات مستقلة متوازية

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

### مثال 3: إطلاق زميل فريق في فريق قيد التشغيل

```
Agent(
  description="Data layer specialist",
  team_name="refactor-crew",
  name="db-lead",
  prompt="You are db-lead on team refactor-crew. Audit all Prisma schema files and propose a migration plan. Use SendMessage to report findings to the team leader."
)
```

## ملاحظات

- ليس لدى الوكلاء ذاكرة بالجولات السابقة. كل استدعاء يبدأ من الصفر، لذا يجب أن يكون `prompt` مكتفياً ذاتياً تماماً — أدرج مسارات الملفات والاصطلاحات والسؤال والشكل الدقيق للإجابة التي تريدها.
- يُعيد الوكيل رسالة نهائية واحدة فقط. لا يمكنه طرح أسئلة توضيحية في منتصف التنفيذ، لذا يتحول الغموض في الموجه إلى تخمينات في النتيجة.
- تشغيل عدة وكلاء بالتوازي أسرع بكثير من الاستدعاءات المتسلسلة عندما تكون المهام الفرعية مستقلة. اجمعها في كتلة استدعاء أدوات واحدة.
- استخدم `isolation: "worktree"` متى كان الوكيل سيكتب ملفات وأردت مراجعة التغييرات قبل دمجها في شجرة العمل الرئيسية.
- فضِّل `subagent_type: "Explore"` للاستطلاع للقراءة فقط و`Plan` لأعمال التصميم؛ و`general-purpose` هو الافتراضي للمهام المختلطة قراءةً وكتابةً.
- تناسب الوكلاء العاملون في الخلفية (`run_in_background: true`) المهام طويلة الأمد؛ تجنَّب الاستقصاء في حلقة `sleep` — يُخطَر الأصل عند الاكتمال.
