تخطي إلى المحتوى
المواضيع

بيئة التطوير والبنية التحتية لمشاريع AI

Docker وAWS وVPS والمزيد. افهم البنية التحتية التي توصي بها أدوات الذكاء الاصطناعي.

36 مقالات

رتّب المقالات للعثور على ما تحتاجه

مقالات في بيئة التطوير والبنية التحتية

ما هي Projects في Claude Code: كيف يوزّع Claude الخيوط، ومن يستطيع استعمالها، وشرط GitHub، وتكلفة التوكنات

ما هي Projects في Claude Code: كيف يوزّع Claude الخيوط، ومن يستطيع استعمالها، وشرط GitHub، وتكلفة التوكنات

أُعيد بناء Projects في Claude Code. فقد كان المشروع حتى الآن مجلّدًا يضمّ المحادثات والموادّ المرجعية، أما Projects الجديدة فمحادثة واحدة: تكتب ما تحتاجه، فيقسّمه Claude إلى خيوط، وتعمل الخيوط بالتوازي في السحابة، ويفتح كلٌّ منها طلب سحب ويعود إليك بتقرير حين ينتهي، وإغلاق حاسوبك لا يوقفها. لكن ثلاثة أمور تستحقّ التحقّق قبل أن تندفع: الحسابات التي تستطيع استعمالها ما تزال محدودة (تجربة عامّة لخطّتي Pro وMax، تُطرح أوّلًا على الحسابات التي لا مشاريع لها)، وgithub.com مع Claude GitHub App شرطان عمليًّا، ومعدّل التهامها لحدّ استخدامك لا يشبه جلسة واحدة في شيء. يتناول هذا المقال كيف تعرف أن الطرح وصلك، وما الذي يبدأ به الخيط، بما في ذلك الفخّ الذي تكفّ فيه قواعد الأذونات والخطّافات عن السريان متى ضمّ المشروع أكثر من مستودع واحد، ومن أين تأتي تكلفة التوكنات بما فيها الوضع الافتراضي Opus بشدّة high، وكيف تختار بين الطرق الخمس للعمل بالتوازي: الوكلاء الفرعيون، وagent view، وفرق الوكلاء، وسير العمل الديناميكي، وProjects — كل ذلك من الوثائق والمدوّنة الرسميتين.

ما هو opusplan في Claude Code؟ التخطيط على Opus والتنفيذ على Sonnet تلقائيًا: الإعداد وما يجب الانتباه إليه

ما هو opusplan في Claude Code؟ التخطيط على Opus والتنفيذ على Sonnet تلقائيًا: الإعداد وما يجب الانتباه إليه

تريد أن تُسند التخطيط وحده إلى نموذج ذكي، وأن تترك التنفيذ لنموذج أسرع وأرخص. وopusplan في Claude Code تحديدٌ للنموذج يفعل ذلك تلقائيًا: يعمل على Opus ما دمت في plan mode، وعلى Sonnet في ما عدا ذلك، ويمكن استخدامه عبر ‎/model opusplan‎ أو عبر model في settings.json. لكنه لا يظهر في قائمة ‎/model‎، ولأن النموذج يتبدّل في كل مرة تدخل فيها plan mode أو تخرج منه، تُعاد قراءة المحادثة كلها من دون تخزين مؤقت في كل تبديل. يرتّب هذا المقال، استنادًا إلى الوثائق الرسمية وسجل التغييرات وبلاغات GitHub حتى 15 سبتمبر 2026، طريقة الإعداد (بما في ذلك تثبيت الإصدارات وسياق 1M)، والانتقال من plan mode إلى الموافقة ثم التنفيذ، وكيف أُزيل من شاشة الاختيار في v2.0.0 وشرح أحد العاملين في Anthropic لذلك، وتقدير تكلفة التخزين المؤقت الناتجة عن التبديل وطرق خفضها، والفرق بينه وبين أداة advisor والوكلاء الفرعيين، والأعمال التي يناسبها والتي لا يناسبها.

تشغيل الوكلاء الفرعيين في Claude Code بنموذج مختلف: إسناد العمل إلى Sonnet وHaiku، الإعدادات والقياسات

تشغيل الوكلاء الفرعيين في Claude Code بنموذج مختلف: إسناد العمل إلى Sonnet وHaiku، الإعدادات والقياسات

هل يمكن إبقاء الجلسة الرئيسية في Claude Code على Opus 5، وإسناد أعمال مثل الترجمة أو المراجعات الكثيرة وحدها إلى وكلاء فرعيين على Sonnet أو Haiku؟ الجواب: نعم. يُحدَّد نموذج الوكيل الفرعي بهذا الترتيب: التحديد عند الاستدعاء، ثم model في ملف التعريف، ثم متغير البيئة CLAUDE_CODE_SUBAGENT_MODEL، ثم نموذج الجلسة الرئيسية، ويمكن كذلك تحديد الجهد (effort) لكل وكيل فرعي. يرتّب هذا المقال، استنادًا إلى الوثائق الرسمية حتى 15 سبتمبر 2026، اختلاف هذا الترتيب بين الإصدارات، والإعداد CLAUDE_CODE_SUBAGENT_MODEL_FORCE الذي يثبّت الجميع على نموذج واحد، واختلاف وجهة الأسماء المختصرة بحسب جهة الاتصال، وأن Explore المدمج صار منذ v2.1.198 يرث نموذج الجلسة الرئيسية. ثم يعرض نتائج تشغيل وكلاء فرعيين فعليًا بنماذج أخرى والتحقق منها في سجلات المحادثة: أنها عملت بالنماذج المحدَّدة، وأن كل وكيل يقرأ عشرات آلاف التوكنات لمجرد التشغيل، وأن التخزين المؤقت للوكلاء الفرعيين ينتهي بعد 5 دقائق حتى مع الاشتراك، والفروق في الوقت والتكلفة وجودة الترجمة حين أُسندت الترجمة نفسها إلى Opus 5 وSonnet 5 وHaiku 4.5 مرتين لكلٍّ منها. وأخيرًا يلخّص أثر ذلك في التكلفة وحدود الاستهلاك، وما يُستند إليه في تحديد الأعمال التي تُنقل إلى نموذج أرخص.

استهلاك Claude Code حسب الجلسة: كيف تعرف أيّ جلسة تلتهم خطتك

استهلاك Claude Code حسب الجلسة: كيف تعرف أيّ جلسة تلتهم خطتك

حين تشغّل عدّة جلسات بالتوازي، تبدأ في التساؤل عن الجلسة التي تلتهم حدّك الأسبوعي. لكنّ ‎/usage‎ في Claude Code لا يعرض إلا أرقام الجلسة الحالية، إضافةً إلى استهلاك الخطة كلها مقسّمًا بحسب المهارة والوكيل الفرعي والإضافة وخادم MCP، أما حصّة كل جلسة فلا تظهر في حلقة الاستهلاك بتطبيق سطح المكتب ولا في صفحة الإعدادات على claude.ai (حتى سبتمبر 2026). الجواب موجود في سجلات المحادثة المحفوظة على جهازك (ملفات JSONL في ‎~/.claude/projects‎)، لكنّ جمعها كما هي يعطي نتيجة خاطئة، لأن الردّ الواحد يُكتب على عدّة أسطر، سطرًا لكل كتلة محتوى، ولأن سجلات الوكلاء الفرعيين موجودة في ملفات منفصلة. وفي قياس على جهازي، بلغ المجموع الساذج قرابة ضعف القيمة الصحيحة، ولأن حجم الخطأ اختلف من جلسة إلى أخرى، تبدّل حتى الترتيب. يتناول هذا المقال ما تعرضه الشاشات الرسمية وما لا تعرضه، وكيف تعدّ السجلات عدًّا صحيحًا بسكربت تجميع من نحو 50 سطرًا، ونتيجة القياس التي استحوذت فيها جلسة واحدة على قرابة ثلث الاستهلاك كله، وحدود ما تستطيع الأرقام أن تخبرك به، وكيف تضبط OpenTelemetry إن أردت المتابعة بمرور الوقت.

لماذا يردّ Claude فجأةً بالإنجليزية؟ ثلاثة أنماط، ولكلٍّ منها علاج

لماذا يردّ Claude فجأةً بالإنجليزية؟ ثلاثة أنماط، ولكلٍّ منها علاج

تكتب إلى Claude بالعربية، فيأتيك الردّ بالإنجليزية. المستودع الرسمي لـClaude Code يتلقّى البلاغ نفسه مرة بعد مرة، وقد وجد الباحثون أنه حين تختلف لغة الطلب عن لغة الردّ المطلوب، لا تستطيع حتى أقوى النماذج الردّ باللغة المحدّدة على نحو ثابت. لكنّ السبب ليس واحدًا. فهناك ثلاثة أنماط: تسلّل تدريجي للإنجليزية كلما قرأ Claude الشيفرة ومخرجات الأدوات، وارتداد إلى الإنجليزية بعد الضغط الذي يلخّص المحادثة مباشرة، وتحوّل إلى لغة أخرى غير الإنجليزية أصلًا، ولكلٍّ منها علاج مختلف. يشرح هذا المقال كيف تميّز بين الأنماط الثلاثة، ولماذا يظلّ إعداد language في Claude Code ساريًا بعد الضغط لأنه يثبّت التعليمة في مُوجّه النظام، ثم يتناول مشكلة بدأت البلاغات عنها في سبتمبر 2026، هي الجلسات الطويلة التي تنهار فيها المخرجات نفسها، مع الفصل بين ما تأكّد وما لم يتأكّد بعد.

ما الذي يلتهم سياق Claude Code فعلًا؟ كيف تقيسه، وبماذا تبدأ الحذف

ما الذي يلتهم سياق Claude Code فعلًا؟ كيف تقيسه، وبماذا تبدأ الحذف

«كثرة المهارات تزاحم سياقك» — نصف هذه المقولة صحيح ونصفها الآخر خاطئ. فوفق وثائق Claude Code الرسمية، يستهلك فهرس المهارات ميزانية ثابتة مقدارها 1% من نافذة سياق النموذج، ومهما أضفت من مهارات فإنه يتوقّف عند ذلك الحدّ. وبدلًا من أن يتضخّم، يحدث شيء آخر: المهارات تكفّ عن أن تُستدعى، إذ يُسقط Claude Code عند الفيض أوصاف المهارات الأقلّ استدعاءً ولا يُبقي إلا أسماءها. والمهارة التي فقدت وصفها لم تعد ترتبط بما طلبته، ومع ذلك لا يظهر خطأ ولا يبطؤ شيء. يتناول هذا المقال اختلاف أدوار أدوات القياس الثلاث (‎/context و‎/usage و‎/skill-doctor)، وتعريف فقدان التخزين المؤقت بأنه 5% و2,000 توكن، وتغيّر عمر التخزين المؤقت من ساعة واحدة إلى خمس دقائق بحسب الخطة، وسبب بقاء أدوات CLI أخفّ رغم أن تعريفات أدوات MCP صارت تُحمَّل تحميلًا مؤجَّلًا افتراضيًا، والأساس الذي يقوم عليه إبقاء CLAUDE.md دون 200 سطر، ثم بماذا تبدأ الحذف بعد أن تقيس، مقتصرًا في ذلك كله على ما أمكن التحقّق منه في الوثائق الرسمية.

The model returned no content — الأسباب والحل: معنى رسالة خطأ Claude يتغيّر بحسب مَن كتبها

The model returned no content — الأسباب والحل: معنى رسالة خطأ Claude يتغيّر بحسب مَن كتبها

يتوقف بك العمل أثناء استخدام Claude، فتبحث عن الرسالة كما ظهرت حرفيًا، ولا يأتي البحث بشيء يُذكر. وخمسة نصوص تتصرف هكذا: The model returned no content because the response was blocked by content filtering، وThe response was blocked by the provider's content filter، وStreaming response ended before any complete data was received، وCould not locate the Claude CLI on PATH، وConnection to Claude's response was lost. Claude may still be working. ما يجمعها أنها ظهرت أثناء استخدام Claude، ومع ذلك يبدو أن البحث في مواد Claude نفسها لا يأتي بشيء، والسبب بسيط: البرنامج الذي كتب الرسالة على شاشتك ليس بالضرورة البرنامج الذي تظنّه. لا يشرح هذا المقال كل سبب على حدة من الصفر، وإنما هو مدخل يحدّد من كتب الرسالة ثم يوجّه القارئ إلى المقال الصحيح. يقسم أولًا المواضع التي قد تُكتب فيها الرسالة إلى أربع طبقات، وهي الواجهة الخلفية التي تقدّم النموذج، وClaude Code نفسه، والبرنامج المُطلِق من امتداد محرر أو غلاف، وعملاء الطرف الثالث، ثم يجري المطابقة. وتبيّن أن اثنين من الخمسة بندان في مرجع الأخطاء الرسمي لـ Claude Code. فالتعريف الرسمي لرسالة البثّ هو أن الترويسات عادت بينما لم يحمل الجسم أي رسالة من واجهة Claude البرمجية، وهذا ليس انقطاعًا في المنتصف إطلاقًا، وقراءتها على أنها اتصال سقط تأخذك في الطريق الخطأ. أما Could not locate the Claude CLI on PATH فترد في فصل مستقل عنوانه Wrapper and IDE errors، موصوفة بأن البرنامج المُطلِق يطبعها لا Claude Code نفسه، وقد يبلغ النص المعروض فعلًا أربع جمل بينما العنوان الرسمي جملة واحدة، ولهذا لا يأتي البحث عنه بشيء. وفي المقابل فإن نصّي مرشِّح المحتوى من مفردات الطرف الثالث، ويبلّغ البلاغ ‎#35736 في OpenCode بأن ثلاثة أعطال منفصلة تمامًا، وهي 404 في Vertex وانقطاع مقبس ورفض حقيقي، تظهر جميعها بالجملة نفسها عن الحجب بمرشِّح المحتوى. والصياغة صحيحة في واحد من الثلاثة فقط، فتصديقها وتخفيف صياغة المُوجّه لن يصلحا معرّف نموذج مضبوطًا خطأ. وتنصّ وثائق GitHub الرسمية كذلك على أن مُوجّهات الإدخال وإكمالات الإخراج تمرّ عبر مرشِّحات محتوى GitHub Copilot عند استخدام Claude، فاستخدام Claude لا يعني أن ترشيح Anthropic هو ما أوقفك. أما النص الباقي فلا يرد في مرجع الأخطاء الرسمي ولا في وثيقة Remote Control، فلم يتحدّد مصدره، ولا تُسمّى له أي أداة، وتُعرض بدلًا من ذلك أربع خطوات لتتبّعه في بيئتك أنت. وما تأكّد وما لم يتأكّد موسوم في المقال كله.

التغييرات الجذرية الثلاثة في Claude Fable 5.1 وكيفية الانتقال

التغييرات الجذرية الثلاثة في Claude Fable 5.1 وكيفية الانتقال

الانتقال إلى Claude Fable 5.1 ليس مجرد استبدال معرّف النموذج ثم اعتبار الأمر منتهيًا. فـ Anthropic تصنّف ثلاثة من التغييرات بوصفها جذرية، واثنان منها يظهران بعيدًا عن الموضع الذي نشآ فيه. الأول يرمي خطأً فورًا: تمرير النوع القسري إلى معامل اختيار الأداة يعيد خطأ طلب غير صالح برمز 400، لأن إجبار النموذج على استدعاء أداة يتخطّى التفكير الذي يمارسه دائمًا، فتنخفض معه جودة وسائط الاستدعاء. أما الثاني فهو الصامت. صارت كتل التفكير تسجّل أي نموذج أنتجها ولا تُنقل إلا في اتجاه واحد، فالمحادثة التي تنتقل إلى Fable 5.1 تحتفظ باستدلالها، بينما الموجّه أو الاحتياطي الذي يعيدها إلى جيل أسبق يفقد ذلك الدور بالكامل. وافتراضيًا تتخلّص الواجهة من الكتل غير المقروءة قبل أن يراها النموذج، ولأن الرموز المطروحة لا تُحتسب ولا تُفوتر فلا يظهر شيء في الفاتورة. وإظهار ذلك يتطلب ترويسة بيتا مخصصة. أما الثالث فهو الأوسع أثرًا: تغيير أي شيء يسبق كتلة تفكير من Fable 5.1، بما في ذلك مطالبة النظام أو مصفوفة الأدوات أو أي رسالة أسبق، يُبطلها ويُبطل كل كتلة بعدها. وسريان ذلك يتوقف على تاريخ إنشاء حسابك، ما يعني أن بيئة اختبار أنشأتها للتو قد تفشل بينما لا يفشل الإنتاج. ويتناول المقال أيضًا ما لم يسُؤ: الدخل باقٍ عند $10 والخرج عند $50 لكل مليون رمز، بينما تهبط قراءة الذاكرة المؤقتة إلى $0.25، أي 0.025 من سعر الدخل الأساسي مقابل 0.1 في بقية نماذج Claude. وتذكر Anthropic وفرًا يقارب الربع في أحمال العمل المعتادة ويصل إلى نحو النصف تقريبًا في الأعمال ذات الطابع الوكيلي الكثيف. وهناك سبعة سلوكيات تتغيّر دون تغيير أي شيفرة، منها تراجع الاستدعاءات المتوازية للأدوات، وتقلّص سرد التقدم عند الجهد المرتفع، وكثرة الإجابة من الذاكرة عند الجهد المنخفض. وتُحصي Anthropic خمس إضافات، إحداها خفض سعر قراءة الذاكرة المؤقتة الذي أُفرد له قسم مستقل، وبين الأربع الباقية ميزات بيتا وُضعت تحديدًا لتحل محل الأنماط التي منعتها التغييرات الجذرية.

البرمجة بنموذج محلي عبر Ollama و Cline: ما الذي يعمل فعلًا، والإعداد الوحيد الذي يكسره

البرمجة بنموذج محلي عبر Ollama و Cline: ما الذي يعمل فعلًا، والإعداد الوحيد الذي يكسره

ظلّت النماذج المحلية قادرة على كتابة الشيفرة سنوات، لكن بوصفها إكمالًا فحسب: ملء بقية السطر الذي بدأت كتابته. أما النمط الوكيلي، حيث يقرأ النموذج المستودع ويعدّل عدة ملفات ويشغّل الاختبارات، فكان أثقل من أن يعمل في البيت. وقد تغيّر ذلك عبر أواخر 2025 و2026، وأوضح دليل عليه أن مطوّري النماذج صاروا يسوّقون له مباشرة: فبطاقة نموذج Qwen تذكر CLINE بالاسم وتقدّم صيغة استدعاء دوال مصمَّمة لهذا الغرض، وأطلقت Mistral نموذج Devstral Small 2 بحجم 24B برخصة Apache 2.0 إلى جانب Devstral 2 بحجم 123B في 9 ديسمبر 2025. ويرتّب هذا المقال ما يمكن بلوغه فعليًا اليوم اعتمادًا على المصادر الأولية وحدها، لأن عدة مقالات تجميع تبيّن أنها نسبت درجة نموذج بحجم معيّن إلى نموذج بحجم آخر. والعقبة المركزية تفصيلة ضبط لا يكاد أحد يذكرها: فـ Ollama لا يستعمل طول سياق افتراضيًا ثابتًا، بل يشتقّه من مقدار VRAM لديك، أي 4k تحت 24 GiB، و32k من 24 إلى 48 GiB، و256k فوق ذلك. وحاسوب الألعاب المعتاد يقع في الصف الأول، فيتجاوز الوكيل النافذة فورًا ويُقتطع أول المحادثة بصمت. ولا يظهر أي خطأ. ينسى التعليمات، ويكرّر العمليات، ويفقد الهدف، فيبدو الأمر كله كأنه نموذج غبيّ لا كأنه سياق مرميّ. ويوثّق Ollama ضرورة 64000 رمز على الأقل لأدوات البرمجة، وتُضبط عبر متغيّر البيئة الخاص بطول السياق، لكن رفعها يرفع استهلاك الذاكرة أيضًا، فيلزم التأكّد من أن النموذج ما زال يتّسع على المعالج الرسومي. ويغطّي المقال كذلك لماذا Continue و Cline أداتان مختلفتان بمتطلّبات عتاد مختلفة، والدرجات المنشورة لـ Qwen3.6-35B-A3B (73.4 على SWE-bench Verified، و3B نشطة من أصل 35B) و Devstral Small 2 (68.0%)، وأحجام التنزيل وإرشاد الذاكرة بحسب فئة VRAM، وإعدادًا من أربع خطوات، ولماذا لم تعد مقارنات «المحلي بلغ كذا بالمئة من السحابة» تصمد بعد أن كفّ جانب الطليعة عن نشر SWE-bench Verified، ومحاسبة صريحة لما تكلّفه «المجانية» فعلًا.

GPU process gone: يتجمّد Claude Desktop فتموت كل جلسات Claude Code دفعةً واحدة — السبب والعلاج

GPU process gone: يتجمّد Claude Desktop فتموت كل جلسات Claude Code دفعةً واحدة — السبب والعلاج

تكون منهمكاً في عملك حين يتجمّد Claude Desktop فجأة، فتموت معه كل جلسات Claude Code المفتوحة دفعةً واحدة، وحين تغلقه قسراً وتحاول تشغيله من جديد قد تجده لم يعد يبدأ أصلاً — وآخر سطر في السجلّ يكون في الغالب GPU process gone مصحوباً بالرمز exitCode 101457950 أي 0x060C201E. يبدأ هذا المقال بالفصل الذي يوفّر عليك وقتاً طويلاً: المنهار ليس Claude Code بل عملية GPU في تطبيق سطح المكتب المبني على Electron، والتمييز سهل لأن السطر السابق مباشرةً لإعادة التشغيل في %APPDATA%\Claude\logs\main.log يحسم الأمر، فيما ينقطع السجلّ عند تلك النقطة ويأتي بعده Starting app. ثم يشرح لماذا تُجرّ جلسات لا علاقة لها بالأمر: عملية GPU في Chromium مورد مشترك لا توجد منه سوى نسخة واحدة لكل تطبيق، تتشاركها كل النوافذ والألسنة والجلسات، ولذلك تُسقط صفحة ثقيلة واحدة كل ما هو مفتوح، ولا يستطيع المستخدم عزلها بأي إعداد. وعن المُشغِّل، يوضّح المقال أن المتصفح المدمَج هو الأكثر تكراراً في المشكلات المعلَنة (#80444، و#82967 الذي يحصر السبب في التقاط لقطة الشاشة الخاصة بالمعاينة، و#83478 مع معاينة تتحدّث باستمرار)، لكنه ليس الوحيد: إذ يبلّغ #68049 عن السقوط بالرمز نفسه عند بدء التشغيل على بيئة ARM64 دون أي تعامل مع المتصفح. كما يحذّر المقال من دليل زائف شائع، فتحذير requestAdapter الذي يظهر في السجلّ نفسه رسالة عادية من Chromium حول عدم فاعلية powerPreference على Windows، ولا يصحّ اتّخاذ وجوده دليلاً على انهيار. ويأتي بعد ذلك الجانب العملي: ثلاثة ملفات تكفي للجزم، وجدول يفرّق بصمة هذه الحالة عن رمزَي الخروج الطبيعيَّين، وترتيب الاستعادة حين لا يعود التطبيق يبدأ، أي إنهاء العمليات المقيمة ثم خيار «إصلاح» ثم إعادة التثبيت أخيراً، مع الإشارة إلى بلاغ وصلت فيه الحزمة إلى Modified, NeedsRemediation فلم ينفع «إصلاح» إطلاقاً ولم تُعدها سوى إزالة تثبيت كاملة. وعن البيانات: ما حُفظ يبقى على القرص، أما العمل الذي كان قيد التنفيذ فلا يعود، وهناك بلاغ بضياع نتائج وكلاء فرعيين كانوا يعملون بالتوازي. ويختم بقائمتين صريحتين لما ينفع وما لا ينفع: لا يمكن استخدام disable-gpu على إصدار MSIX لأنه يُرفض برسالة رفض الوصول، وتعطيل ميزة المتصفح يوقف ما ينشأ عن المتصفح فقط ولا ينفع مع عائلة السقوط عند بدء التشغيل، ونصيحة تثبيت أفضلية البطاقة في التركيبات الهجينة لم يرد أي بلاغ بنفعها في هذا العَرَض تحديداً. ويضيف تمييزاً لظاهرة يسهل الخلط بينها وبينه، وهي الإنهاء القسري الذي يفرضه تحديث Microsoft Store، ويُعرف بسطر Windows session ending (close-app) دون ظهور GPU process gone.

ما تعلّمناه من حذف لوحة الإدارة بالكامل — متى تبقى الواجهة في زمن الذكاء الاصطناعي، ومتى يمكن أن تذهب

ما تعلّمناه من حذف لوحة الإدارة بالكامل — متى تبقى الواجهة في زمن الذكاء الاصطناعي، ومتى يمكن أن تذهب

لا تستطيع دعوى عامة أن تجيب عن سؤال "إن كان الذكاء الاصطناعي قادرًا على التعديل مباشرة، فهل ما زلنا بحاجة إلى لوحة إدارة؟"، لأن عبارة "لوحة الإدارة" وحدها تغطّي كومة من الوظائف مختلفة الطبائع تمامًا. وهذا المقال، المبني على تجربة حذف لوحة إدارة هذا الموقع بالكامل، يستبدل بذلك السؤال سؤالًا أحدّ: هل تقدّم تلك الشاشة شيئًا لا يقدّمه أصلًا كلٌّ من CLI والذكاء الاصطناعي؟ وما كشفه الحذف الكامل هو أن معظم الوظائف التي أُزيلت لم تكن "غير مستعمَلة" بل "معطّلة بنيويًا". فعمليات CRUD للمقالات لم يكن ممكنًا أن تعمل أصلًا، لأن مصدر الحقيقة للمقالات يعيش في الشيفرة وكل عملية نشر تكتب فوق قاعدة البيانات، فأي شيء يُحرَّر في الشاشة كان يتبخّر عند النشر التالي. وكان طابور اعتماد التعليقات فارغًا على الدوام لأن المشاركات تُوسم بالاعتماد لحظة إرسالها، فلا ينشأ تعليق غير معتمد أصلًا. والوظيفة التي لا يستعملها أحد هي وظيفة لا يستطيع أحد أن يعرف أنها مكسورة. أما القدرة الوحيدة التي تعذّر حذفها فهي حذف التعليقات، وحتى هي لم يكن فيها ما يوجب لوحة إدارة: فقد تبيّن أن زرّ حذف في صفحة المقال نفسها أفضل، لأن التعليق المسيء يُزال في المكان نفسه الذي يُقرأ فيه. ويؤول القرار إلى ستة أسئلة. من الذي يشغّلها، إذ يرجّح الموظفون غير التقنيين أو دور يتبدّل أصحابه بقاء الواجهة، بينما لا يحتاجها المطوّرون الذين يعيشون في الطرفية. وهل هي قابلة للتراجع، فالإجراءات التي لا رجعة فيها تحتاج إلى بوابة. وهل تحتاج إلى حكم بشري، أي هل هناك انتقال بين حالتين بالاعتماد أو الرفض. وهل يلزم فصل الصلاحيات. وهل يعرف المشغّل ما هو ممكن، فالقائمة تقوم مقام التوثيق. وهل هناك أثر للتدقيق. والصلاحيات وأثر التدقيق بوجه خاص يبدوان غير ضروريين في مشروع فردي، ويصيران أول ما يلزم في اللحظة التي يصل فيها شخص ثانٍ. والتغييرات التي تمرّ عبر الشيفرة تستقرّ في git، لكن ترك الذكاء الاصطناعي يكتب في قاعدة البيانات مباشرة لا يسجّل شيئًا افتراضيًا، وسجلّ المحادثة يحفظ ما طُلب لا ما حدث. ومن بين المحاور الستة، لا يحمل وزنًا مختلفًا سوى قابلية التراجع. ففي 18 يوليو 2025 حذف وكيل ذكاء اصطناعي من Replit قاعدة بيانات الإنتاج الخاصة بـ SaaStr أثناء تجميد فعلي للشيفرة، واختلق 4,000 مستخدم، وزعم خطأً أن التراجع مستحيل فأخّر التعافي (AI Incident Database #1152) — وهي حالة تُظهر مشكلة تصميم أمكن فيها بلوغ إجراء لا رجعة فيه دون المرور ببوابة بشرية، أكثر مما تُظهر خطر الذكاء الاصطناعي نفسه. ويتناول المقال كذلك ثلاثة أشياء ينبغي تهيئتها قبل نقل الثقل إلى الذكاء الاصطناعي وإلى CLI، وهي أن تخلّف التغييرات أثرًا باقيًا، وأن توجد عتبة أمام الإجراءات التي لا رجعة فيها، وأن يكون الإجراء مكتوبًا وموثّقًا لأن حذف الواجهة يحذف معها قائمة ما هو ممكن. ويضيف قائمة تحقّق تجريها قبل أن تبني أي شيء، والخيار الثالث المتمثّل في منتجات الأدوات الداخلية مثل Retool و Forest Admin بدلًا من كتابة اللوحة باليد.

agent view في Claude Code — كيف تعمل الجلسات على التوازي، وأين يتسرّب العزل

agent view في Claude Code — كيف تعمل الجلسات على التوازي، وأين يتسرّب العزل

إن agent view في Claude Code، الذي يُفتح بالأمر claude agents، هو الميزة التي تُطلق بها جلسات خلفية مستقلة واحدة تلو الأخرى وتديرها كلها من شاشة واحدة. وتسمّي الوثائق الرسمية العمليةَ التي تنفّذها هناك dispatch، وهو اسم يتصادم مع ميزة منفصلة تمامًا تحمل الاسم نفسه في تطبيق سطح المكتب، فأول مهمة هي التمييز بين الاثنين. تصف الوثائق agent view بأنه الميزة التي تتيح إطلاق وإدارة عدد كبير من جلسات Claude Code من شاشة واحدة، وهو معاينة بحثية تتطلّب الإصدار v2.1.139 أو أحدث. ويلتزم هذا المقال بالآلية ونموذج الأمان لا بالانطباعات. وأول ما يفاجئ المستخدم أن كل مطالبة تُكتب في صندوق الإدخال تبدأ جلسة جديدة خاصة بها: اكتب مطالبة ثانية فتحصل على جلسة ثانية إلى جانب الأولى، لا على تعليمة إضافية مضافة إليها. أما التعليمات التكميلية فتمرّ عبر لوحة الإطلالة التي تُفتح بمفتاح Space، وهي تعرض آخر مخرجات أو السؤال الذي تنتظره الجلسة لا السجل الكامل، ويمكنك الردّ منها دون مغادرة الشاشة. ويوقف Ctrl+X الجلسة في الضغطة الأولى ويحذفها في الثانية، بينما تتولّى Ctrl+S و Ctrl+T و Ctrl+R التجميع والتثبيت وإعادة التسمية؛ ولا يظهر الوكلاء الفرعيون ولا الـ teammates التي تولّدها الجلسة كصفوف منفصلة. وقلب نموذج الأمان هو العزل عبر worktree. فقبل تعديل أي ملف، تنتقل الجلسة الخلفية إلى worktree معزول في git تحت المسار .claude/worktrees/، فتقرأ الجلسات المتوازية النسخة نفسها بينما تكتب كل واحدة في نسختها هي: قراءة مشتركة وكتابة مفصولة. وكل ما قد يصل إلى النسخة الرئيسية مقطوع بثلاثة فحوص: تعديلات الملفات عبر Edit و Write و NotebookEdit؛ ومجلدات عمل الأوامر التي تؤول إلى النسخة الرئيسية أو التي يتعذّر التحقّق من بقائها خارجها؛ ومحاولات إعادة توجيه git عبر git -C أو --git-dir أو GIT_DIR أو GIT_WORK_TREE أو cd يسبق استدعاء git. والحكم يُتّخذ عمدًا في الجانب الآمن، فيُرفض ما يتعذّر التحقّق منه، والحماية نفسها موروثة إلى كل وكيل فرعي تولّده الجلسة. لكنه ليس جدارًا على مستوى نظام التشغيل: فالملفات خارج المستودع والشبكة خارج النطاق، وأوامر PowerShell لا ينالها إلا فحص مجلد العمل. والأذونات كذلك لا تُختار لحظة الإطلاق؛ بل تُورَث من قيمة defaultMode لذلك المجلد، أو من قيمة permissionMode في مقدّمة تعريف الوكيل الفرعي المُطلَق، ما يعني أن رخاوة إعدادك المعتاد هي بالضبط ما يعمل بلا رقيب في عشر جلسات دفعة واحدة. ثم تتسرّب ثلاثة أشياء من العزل. فاختيار "Yes, don't ask again" يحفظ القاعدة في ملف .claude/settings.local.json الخاص بالنسخة الرئيسية، فتسري في النسخة الرئيسية وفي كل worktree آخر وتبقى بعد إزالة الـ worktree الذي اتُّخذت فيه. وحذف الجلسة في agent view يحذف معها الـ worktree الذي أنشأه Claude، فيختفي العمل غير المودَع. والملف .worktreeinclude ينسخ الملفات المستبعدة بـ gitignore مثل .env إلى كل worktree جديد، فيضاعف بيانات اعتمادك بعدد الجلسات التي تُطلقها. وفوق ذلك تُستنزف الحصّة بما يتناسب مع التوازي، إذ يستهلك عشرة عملاء الحصّة بسرعة تقارب عشرة أضعاف، والجلسات تعمل محليًا فتنجو من السبات وتتوقّف عند إطفاء الجهاز. ويختم المقال بوضع agent view بين الأساليب الأربعة الرسمية للتوازي إلى جانب الوكلاء الفرعيين و agent teams و dynamic workflows، ثم يقدّم روتينًا عمليًا لما تفعله قبل الإطلاق وأثناءه وبعده.