البرمجة بالوكلاء
وكلاء البرمجة (coding agents) هم نماذج ذكاء اصطناعي محادثة (conversational AI models) تمتلك إمكانية الوصول إلى أدواتٍ مثل قراءة/كتابة الملفات، والبحث في الويب، واستدعاء أوامر مُعالج الأوامر. يعيشون إمّا داخل بيئة التطوير (IDE) أو في أدواتٍ مستقلةٍ قائمةٍ على سطر الأوامر أو بواجهة رسومية. وكلاء البرمجة أدواتٌ قويةٌ ذاتيةٌ بدرجةٍ كبيرةٍ، تتيح مجموعةً واسعةً من حالات الاستخدام.
تبني هذه المحاضرة على مادة التطوير المدعوم بالذكاء الاصطناعي من محاضرة بيئة التطوير وأدواتها. كتجربةٍ سريعة، لنواصل المثال من قسم التطوير المدعوم بالذكاء الاصطناعي:
from urllib.request import urlopen
def download_contents(url: str) -> str:
with urlopen(url) as response:
return response.read().decode('utf-8')
def extract(content: str) -> list[str]:
import re
pattern = r'\[.*?\]\((.*?)\)'
return re.findall(pattern, content)
print(extract(download_contents("https://raw.githubusercontent.com/missing-semester/missing-semester/refs/heads/master/_2026/development-environment.md")))
يمكننا محاولة مطالبة (prompting) وكيل برمجةٍ بالمهمة التالية:
Turn this into a proper command-line program, with argparse for argument parsing. Add type annotations, and make sure the program passes type checking.
سيقرأ الوكيل الملف لفهمه، ثم يُجري بعض التعديلات، وأخيرًا يستدعي مدقّق الأنواع للتأكد من صحة تعليقات الأنواع. وإذا ارتكب خطأً تسبب في فشل فحص الأنواع، فمن المرجح أن يكرر المحاولة، وإن كانت هذه مهمةً بسيطةً بحيث لا يُرجَّح ذلك. ولأن وكلاء البرمجة يمتلكون إمكانية الوصول إلى أدواتٍ قد تكون ضارة، فإن بيئات الوكلاء (agent harnesses) تطالب المستخدم افتراضيًا بتأكيد استدعاءات الأدوات.
إذا ارتكب وكيل البرمجة خطأً — على سبيل المثال، إذا كان لديك الثنائي
mypyمتاحًا مباشرةً في$PATHلكن الوكيل يحاول استدعاءpython -m mypy— يمكنك إعطاؤه ملاحظاتٍ نصيةً لمساعدته على تصحيح مساره.
تدعم وكلاء البرمجة التفاعل متعدد الأدوار (multi-turn interaction)، لذا يمكنك التكرار على العمل عبر محادثةٍ ذهابًا وإيابًا مع الوكيل. يمكنك حتى مقاطعة الوكيل إذا كان يسير في المسار الخاطئ. قد يكون أحد النماذج الذهنية المفيدة هو تخيّل مديرٍ لمتدرب: سينجز المتدرب العمل الشاق، لكنه سيحتاج إلى التوجيه، وسيخطئ أحيانًا وسيحتاج إلى تصحيح.
لتجربةٍ توضيحيةٍ أكثر إيضاحًا، جرّب سؤال الوكيل كخطوةٍ تاليةٍ تشغيل السكربت الناتج. لاحظ المخرجات، وجرّب طلب تغييرٍ منه (مثلًا، اطلب منه تضمين الروابط المطلقة فقط).
كيف تعمل نماذج الذكاء الاصطناعي والوكلاء
الشرح الكامل للآلية الداخلية لـنماذج اللغة الكبيرة (LLMs) الحديثة والبنية التحتية مثل بيئات الوكلاء يخرج عن نطاق هذا المقرر. ومع ذلك، فإن امتلاك فهمٍ عالٍ المستوى لبعض الأفكار الأساسية يساعد في استخدام هذه التقنية الحديثة جدًا بفعاليةٍ وفهم حدودها.
يمكن النظر إلى نماذج اللغة الكبيرة باعتبارها نماذجَ لتوزيع الاحتمالات (probability distribution) لسلاسل الإكمال (المخرجات) بمعطيات سلاسل المطالبات (المدخلات). استدلال نموذج اللغة الكبيرة (ما يحدث عندما تقدم، مثلًا، استفسارًا لتطبيق محادثة) يأخذ عيناتٍ (samples) من هذا التوزيع الاحتمالي. تمتلك نماذج اللغة الكبيرة نافذة سياقٍ (context window) ثابتةً، وهي أقصى طولٍ لسلاسل الإدخال والإخراج.
تبني الأدوات الذكية مثل الدردشة المحادثة ووكلاء البرمجة على هذا الأساس. بالنسبة للتفاعلات متعددة الأدوار، تستخدم تطبيقات الدردشة والوكلاء علامات الأدوار (turn markers) وتزود السلسلة الكاملة لتاريخ المحادثة باعتبارها سلسلة المطالبة في كل مرة توجد فيها مطالبة مستخدمٍ جديدة، مستدعيةً استدلال نموذج اللغة الكبيرة مرةً واحدةً لكل مطالبة مستخدم. بالنسبة للوكلاء المستدعِينَ للأدوات (tool-calling agents)، يفسّر البيئة بعض مخرجات نموذج اللغة الكبيرة كطلباتٍ لاستدعاء أداةٍ، ويزوّد البيئة نتائج استدعاء الأداة إلى النموذج كجزءٍ من سلسلة المطالبة (لذا يعمل استدلال نموذج اللغة الكبيرة مرةً أخرى في كل استدعاء/استجابة أداة). يمكن تنفيذ المفاهيم الأساسية للوكلاء المستدعين للأدوات في 200 سطرٍ من الكود.
الخصوصية
معظم أدوات البرمجة الذكية في إعداداتها القياسية ترسل الكثير من بياناتك إلى السحابة. أحيانًا يعمل البيئة محليًا بينما يعمل استدلال نموذج اللغة الكبيرة في السحابة، وأحيانًا أخرى يعمل جزءٌ أكبر من البرمجيات في السحابة (وقد يحصل، مثلًا، مزود الخدمة فعليًا على نسخةٍ من مستودعك بالكامل بالإضافة إلى كل تفاعلاتك مع الأداة الذكية).
هناك أدوات برمجة ذكية مفتوحة المصدر ونماذج لغةٍ كبيرةٍ مفتوحة المصدر جيدةٌ إلى حدٍ ما (وإن لم تكن بنفس جودة النماذج المملوكة)، لكن في الوقت الحالي، سيكون تشغيل نماذج اللغة الكبيرة المفتوحة الحديثة محليًا غير مجدٍّ لمعظم المستخدمين بسبب قيود العتاد.
حالات الاستخدام
يمكن أن تكون وكلاء البرمجة مفيدةً لمجموعةٍ واسعةٍ من المهام. بعض الأمثلة:
- تنفيذ ميزاتٍ جديدة. كما في المثال أعلاه، يمكنك مطالبة وكيل برمجةٍ بتنفيذ ميزةٍ. إعطاء مواصفاتٍ جيدةٍ فنٌّ أكثر منه علمٌ في هذه المرحلة؛ تريد أن يكون المدخل إلى الوكيل وصفيًا بما يكفي ليقوم الوكيل بما تريده (على الأقل متجهًا في الاتجاه الصحيح حتى تتمكن من التكرار)، لكن ليس وصفيًا بشكلٍ مفرطٍ لدرجة قيامك بالكثير من العمل بنفسك. يمكن أن يكون التطوير القائم على الاختبار (TDD) فعالًا بشكلٍ خاص: اكتب الاختبارات (أو استخدم وكيل البرمجة لمساعدتك في كتابة الاختبارات)، ودقّقها للتأكد من أنها تلتقط ما تريد، ثم اطلب من وكيل البرمجة تنفيذ الميزة. تتحسن النماذج باستمرار، لذا سيتعين عليك تحديث حدسك دائمًا حول ما تَقدر عليه النماذج.
استخدمنا Claude Code لتنفيذ هذه الحواشي الجانبية بأسلوب Tufte.
- إصلاح الأخطاء. إذا كان لديك أخطاءٌ من مترجمك أو مدقّق الأسلوب (linter) أو مدقّق الأنواع أو الاختبارات، يمكنك مطالبة وكيلك بتصحيحها، مثلًا بمطالبةٍ كـ "أصلح مشكلات mypy". نماذج البرمجة فعالةٌ بشكلٍ خاص عندما تتمكن من إدخالها في حلقة ملاحظات (feedback loop)، لذا حاول إعداد الأمور بحيث يتمكن النموذج من تشغيل الفحص الفاشل مباشرةً، الأمر الذي سيسمح له بالتكرار بشكلٍ ذاتي. إذا كان هذا غير عملي، يمكنك إعطاء النموذج ملاحظاتٍ يدويًا.
في الالتزام f552b55 من مستودع missing-semester، طالبنا Claude Code بـ"راجع محاضرة البرمجة بالوكلاء بحثًا عن الأخطاء المطبعية والنحوية" ثم طلبنا منه إصلاح المشكلات التي وجدها، والتي تم التزامها في f1e1c41.
- إعادة الهيكلة (Refactoring). يمكنك استخدام وكلاء البرمجة لإعادة هيكلة الكود بطرقٍ مختلفة، من المهام البسيطة مثل إعادة تسمية دالةٍ (وهذا النوع من إعادة الهيكلة مدعومٌ أيضًا بواسطة الذكاء اللغوي) إلى المهام الأكثر تعقيدًا مثل فصل وظيفةٍ في وحدةٍ منفصلة.
استخدمنا Claude Code لفصل البرمجة بالوكلاء إلى محاضرةٍ خاصةٍ بها.
- مراجعة الكود. يمكنك مطالبة وكلاء البرمجة بمراجعة الكود. يمكنك إعطاؤهم توجيهاتٍ أساسيةً مثل "راجع أحدث تغييراتي غير الملتزمة". إذا كنت تريد مراجعة طلب سحب (pull request) وكان وكيل البرمجة لديك يدعم جلب الويب، أو كان لديك أدوات سطر أوامرٍ مثل GitHub CLI مثبّتة، فقد تتمكن حتى من مطالبة وكيل البرمجة بـ"راجع طلب السحب {الرابط}" وسيتولى الأمر من هناك.
- فهم الكود. يمكنك طرح أسئلةٍ على وكيل برمجةٍ حول قاعدة الكود، الأمر الذي يمكن أن يكون مفيدًا بشكلٍ خاصٍّ للانضمام إلى مشروعٍ جديد (onboarding).
- كمعالج أوامر. يمكنك مطالبة وكيل البرمجة باستخدام أداةٍ معيّنةٍ لحل مهمةٍ، بحيث يمكنك استدعاء أمر سطر أوامرٍ بلغةٍ طبيعية، مثل "استخدم أمر find للعثور على جميع الملفات الأقدم من 30 يومًا" أو "استخدم mogrify لتغيير حجم جميع ملفات jpg إلى 50% من حجمها الأصلي".
- البرمجة بالإحساس (Vibe coding). الوكلاء أقوياء بما يكفي بحيث يمكنك تنفيذ بعض التطبيقات دون كتابة سطرٍ واحدٍ من الكود بنفسك.
هنا مثالٌ على مشروعٍ حقيقيٍّ في العالم قام أحد المحاضرين ببرمجته بأسلوب الـvibe coding.
الوكلاء المتقدمون
هنا، نقدم نظرةً عامةً موجزةً على بعض أنماط الاستخدام الأكثر تقدمًا وقدرات وكلاء البرمجة.
- المطالبات القابلة لإعادة الاستخدام (Reusable prompts). أنشئ مطالباتٍ أو قوالبَ قابلةً لإعادة الاستخدام. على سبيل المثال، يمكنك كتابة مطالبةٍ مفصلةٍ للقيام بمراجعة كودٍ بطريقةٍ معينة، وحفظها كمطالبةٍ قابلةٍ لإعادة الاستخدام.
تتطور أدوات الوكلاء بسرعة. في بعض الأدوات، تُهمل المطالبات القابلة لإعادة الاستخدام كميزةٍ مستقلة. على سبيل المثال، في Codex وClaude Code، تم دمجها في المهارات (skills).
- الوكلاء المتوازيون (Parallel agents). يمكن أن تكون وكلاء البرمجة بطيئةً: يمكنك مطالبة الوكيل، ويمكنه العمل على مشكلةٍ لعشرات الدقائق. يمكنك تشغيل نسخٍ متعددةٍ من الوكلاء في الوقت نفسه، إمّا في العمل على نفس المهمة (نماذج اللغة الكبيرة عشوائية (stochastic)، لذا قد يكون من المفيد تشغيل نفس الشيء عدة مراتٍ وأخذ أفضل حل) أو مهام مختلفة (مثل تنفيذ ميزتين غير متداخلتين في الوقت نفسه). لإبقاء تغييرات الوكلاء المختلفين من التداخل مع بعضها، يمكنك استخدام أشجار العمل (git worktrees)، والتي نغطيها في محاضرة التحكم في الإصدارات.
- بروتوكولات MCP. MCP، اختصارًا لـ Model Context Protocol، هو بروتوكولٌ مفتوحٌ يمكنك استخدامه لربط وكلاء البرمجة لديك بالأدوات. على سبيل المثال، يمكن لـخادم Notion MCP هذا أن يتيح لوكيلك قراءة/كتابة مستندات Notion، مما يتيح حالات استخدامٍ مثل "اقرأ المواصفات المرتبطة في {مستند Notion}، وصمّم خطة تنفيذٍ كصفحةٍ جديدةٍ في Notion، ثم نفّذ نموذجًا أوليًا". لاكتشاف MCP، يمكنك استخدام دلائل مثل Pulse وGlama.
- إدارة السياق (Context management). كما لاحظنا أعلاه، تمتلك نماذج اللغة الكبيرة التي تقوم عليها وكلاء البرمجة نافذة سياقٍ محدودة. الاستخدام الفعال لوكلاء البرمجة يستلزم استخدامًا جيدًا للسياق. تريد التأكد من أن الوكيل يمتلك إمكانية الوصول إلى المعلومات التي يحتاجها، لكن تجنب السياق غير الضروري لتجنب إغراق نافذة السياق أو تدهور أداء النموذج (وهو ما يميل إلى الحدوث مع نمو حجم السياق، حتى لو لم يملأ نافذة السياق). تزود بيئات الوكلاء السياق تلقائيًا وتديره إلى حدٍّ ما، لكن يُترك الكثير من التحكم للمستخدم.
- مسح نافذة السياق. أبسط تحكمٍ، تدعم وكلاء البرمجة مسح نافذة السياق (بدء محادثةٍ جديدة)، وهو ما يجب أن تفعله للاستفسارات غير المرتبطة.
- إرجاع المحادثة للخلف. تدعم بعض وكلاء البرمجة التراجع عن الخطوات في تاريخ المحادثة. بدلًا من إعطاء رسالةٍ متابعةٍ توجّه الوكيل في اتجاهٍ مختلف، في المواقف التي يكون فيها "التراجع" أكثر منطقيةً، هذا يدير السياق بشكلٍ أكثر فاعلية.
- الضغط (Compaction). لتمكين محادثاتٍ غير محدودة الطول، تدعم وكلاء البرمجة ضغط السياق: إذا طال تاريخ المحادثة أكثر من اللازم، فستستدعي تلقائيًا نموذج لغةٍ كبيرةٍ لتلخيص بادئة المحادثة، واستبدال تاريخ المحادثة بالملخص. تمنح بعض الوكلاء المستخدم التحكم في استدعاء الضغط عند الرغبة.
- llms.txt. ملف
/llms.txtهو معيارٌ مقترحٌ لموقعٍ موثوقٍ لمستندٍ مخصصٍ لاستخدام نماذج اللغة الكبيرة في وقت الاستدلال. قد تحتوي المنتجات (مثل cursor.com/llms.txt) والمكتبات البرمجية (مثل ai.pydantic.dev/llms.txt) وواجهات برمجة التطبيقات (مثل apify.com/llms.txt) على ملفاتllms.txtتكون مفيدةً للتطوير. هذه المستندات أكثر كثافةً معلوماتيةً لكل رمز، لذا فهي أكثر كفاءةً في استهلاك السياق من مطالبة وكيل البرمجة بجلب وقراءة صفحة HTML. الوثائق الخارجية مفيدةٌ عندما لا يمتلك وكيل البرمجة معرفةً مدمجةً عن تبعيةٍ تحاول استخدامها (مثلًا، لأنها نُشرت بعد نقطة قطع المعرفة (knowledge cutoff) لنموذج اللغة الكبيرة). - AGENTS.md. تدعم معظم وكلاء البرمجة AGENTS.md أو ما يشابهها (مثلًا، يبحث Claude Code عن
CLAUDE.md) كملف README لوكلاء البرمجة. عندما يبدأ الوكيل، يملأ السياق مسبقًا بالمحتوى الكامل لـAGENTS.md. يمكنك استخدام هذا لإعطاء الوكيل نصائحَ شائعةً عبر الجلسات (مثلًا، توجيهه إلى تشغيل مدقّق الأنواع دائمًا بعد إجراء تغييراتٍ على الكود، أو شرح كيفية تشغيل اختبارات الوحدة، أو توفير روابطٍ لوثائق طرفٍ ثالثٍ يمكن للوكيل تصفحها). يمكن لبعض وكلاء البرمجة توليد هذا الملف تلقائيًا (مثل الأمر/initفي Claude Code). انظر هنا لمثالٍ حقيقيّ على ملفAGENTS.md. - المهارات (Skills). يُحمَّل محتوى
AGENTS.mdدائمًا، بالكامل، في نافذة سياق الوكيل. تضيف المهارات مستوىً واحدًا من التجريد لتجنب تضخم السياق: يمكنك تزويد الوكيل بقائمة مهاراتٍ مع أوصافها، ويمكن للوكيل "فتح" المهارة (تحميلها في نافذة سياقه) متى رغب. - الوكلاء الفرعيون (Subagents). تتيح لك بعض وكلاء البرمجة تعريف وكلاء فرعيين، وهم وكلاء لسير عملٍ مخصصٍ للمهام. يمكن لوكيل البرمجة الأعلى مستوىً استدعاء وكيلٍ فرعيٍّ لإكمال مهمةٍ معينة، الأمر الذي يتيح لكلٍّ من الوكيل الأعلى والوكيل الفرعي إدارة السياق بشكلٍ أكثر فاعلية. لا يتضخم سياق الوكيل الأعلى بكل ما يراه الوكيل الفرعي، ويمكن للوكيل الفرعي الحصول على السياق الذي يحتاجه لمهمته فقط. كمثالٍ واحد، تنفذ بعض وكلاء البرمجة البحث على الويب كوكلٍ فرعي: سيطرح الوكيل الأعلى استفسارًا على الوكيل الفرعي، الذي سيشغّل بحث الويب، ويستعيد صفحات الويب الفردية، ويحللها، ويقدم إجابةً على الاستفسار إلى الوكيل الأعلى. بهذه الطريقة، لا يتضخم سياق الوكيل الأعلى بالمحتوى الكامل لجميع صفحات الويب المستعادة، ولا يمتلك الوكيل الفرعي في سياقه بقية تاريخ محادثة الوكيل الأعلى.
بالنسبة للكثير من الميزات المتقدمة التي تتطلب كتابة مطالباتٍ (مثل المهارات أو الوكلاء الفرعيين)، يمكنك استخدام نماذج اللغة الكبيرة لبدء العمل. حتى أن بعض وكلاء البرمجة يمتلكون دعمًا مدمجًا للقيام بذلك. على سبيل المثال، يمكن لـClaude Code توليد وكيلٍ فرعيٍّ من مطالبةٍ قصيرة (استدعِ /agents وأنشئ وكيلًا جديدًا). جرّب إنشاء وكيلٍ فرعيٍّ بهذه المطالبة:
A Python code checking agent that uses `mypy` and `ruff` to type-check, lint, and format *check* any files that have been modified from the last git commit.
بعد ذلك، يمكنك استخدام الوكيل الأعلى مستوىً لاستدعاء الوكيل الفرعي صراحةً برسالةٍ مثل "استخدم وكيل فحص الكود". قد تتمكن أيضًا من جعل الوكيل الأعلى يستدعي الوكيل الفرعي تلقائيًا عند الاقتضاء، على سبيل المثال، بعد تعديل أي ملفات بايثون.
ما الذي يجب الانتباه إليه
يمكن أن ترتكب الأدوات الذكية أخطاءً. فهي مبنية على نماذج لغةٍ كبيرةٍ، وهي مجرد نماذج احتماليةٍ للتنبؤ بالرمز التالي. ليست "ذكيةً" بالطريقة نفسها التي يكون بها البشر. راجع مخرجات الذكاء الاصطناعي بحثًا عن أخطاء الصحة والأمان. أحيانًا قد يكون التحقق من الكود أصعب من كتابة الكود بنفسك؛ بالنسبة للكود الحرج، فكّر في كتابته يدويًا. يمكن للذكاء الاصطناعي الغوص في حفر الأرانب (rabbit holes) ومحاولة إقناعك بأشياء خاطئة (gaslighting)؛ كن واعيًا بدوامات التصفية (debugging spirals). لا تستخدم الذكاء الاصطناعي كعكازٍ، واحذر من الإفراط في الاعتماد عليه أو من امتلاك فهمٍ سطحي. لا تزال هناك فئةٌ ضخمةٌ من مهام البرمجة التي يعجز الذكاء الاصطناعي عن القيام بها. التفكير الحسابي (computational thinking) ما زال قيّمًا.
البرمجيات الموصى بها
تتضمن العديد من بيئات التطوير/إضافات البرمجة الذكية وكلاء برمجةٍ (انظر توصيات محاضرة بيئة التطوير). تشمل وكلاء البرمجة الشائعة الأخرى Claude Code من Anthropic، وCodex من OpenAI، والوكلاء مفتوحو المصدر مثل opencode.
تمارين
- قارن تجربة البرمجة يدويًا، وباستخدام الإكمال التلقائي الذكي، والدردشة المضمّنة، والوكلاء، بالقيام بنفس مهمة البرمجة أربع مرات. أفضل مرشحٍ هو ميزةٌ صغيرةٌ من مشروعٍ تعمل عليه بالفعل. إذا كنت تبحث عن أفكارٍ أخرى، يمكنك التفكير في إكمال مهام من نمط "القضية الجيدة الأولى" (good first issue) في مشاريع مفتوحة المصدر على GitHub، أو مسائل Advent of Code أو LeetCode.
- استخدم وكيل برمجةٍ ذكيًّا للتنقل في قاعدة كودٍ غير مألوفة. من الأفضل القيام بذلك في سياق الرغبة في تصفية خطأٍ أو إضافة ميزةٍ جديدةٍ لمشروعٍ تهتم به فعلًا. إذا لم يكن لديك أيٌّ منها في ذهنك، جرّب استخدام وكيلٍ ذكيّ لفهم كيفية عمل الميزات المتعلقة بالأمان في وكيل opencode.
- برمج بالـvibe coding تطبيقًا صغيرًا من الصفر. لا تكتب سطرًا واحدًا من الكود يدويًا.
- بالنسبة لوكيل البرمجة الذي اخترته، أنشئ واختبر ملف
AGENTS.md(أو ما يعادله لوكيلك، مثلCLAUDE.md)، ومهارةً (مثل مهارة في Claude Code أو مهارة في Codex)، ووكيلًا فرعيًا (مثل وكيل فرعي في Claude Code). فكّر متى تود استخدام أحدها مقابل الآخر. لاحظ أن وكيل البرمجة الذي اخترته قد لا يدعم بعض هذه الوظائف؛ يمكنك إمّا تخطيها، أو تجربة وكيل برمجةٍ مختلفٍ يدعمها. - استخدم وكيل برمجةٍ لتحقيق نفس الهدف كما في تمرين تعبيرات regex لنقاط قائمة Markdown من محاضرة جودة الكود. هل يكمل المهام عبر تعديلات ملفاتٍ مباشرة؟ ما عيوب وقيود قيام الوكيل بتعديل الملف مباشرةً لإكمال مثل هذه المهمة؟ اكتشف كيفية مطالبة الوكيل بحيث لا يكمل المهمة عبر تعديلات ملفاتٍ مباشرة. تلميح: اطلب من الوكيل استخدام إحدى أدوات سطر الأوامر المذكورة في المحاضرة الأولى.
- تدعم معظم وكلاء البرمجة شكلاً من أشكال "وضع يولو" (yolo mode) (مثلًا، في Claude Code،
--dangerously-skip-permissions). ليس من الآمن استخدام هذا الوضع مباشرةً، لكن قد يكون مقبولًا تشغيل وكيل برمجةٍ في بيئةٍ معزولةٍ مثل آلةٍ افتراضيةٍ أو حاويةٍ ثم تمكين التشغيل الذاتي. جهّز هذا الإعداد على جهازك. قد تفيدك وثائقٌ مثل حاويات التطوير الخاصة بـClaude Code أو صناديق رمل Docker / Claude Code. هناك أكثر من طريقةٍ لإعداد ذلك.