وكلاء البرمجة يكتبون Swift بشكل جيد، لكنهم لا يستطيعون إتمام المهمة

قضيت شهوراً في اختبار وكلاء البرمجة المعتمدين على الذكاء الاصطناعي في مهام حقيقية باستخدام Swift وXcode. لم أستخدم مجرد عروض توضيحية بسيطة، بل أعطيتهم مهاماً حقيقية تتضمن أهداف بناء (build targets) واختبارات.

عادة ما تكون المسودة الأولى جيدة. فالنماذج القادرة تكتب كوداً يبدو صحيحاً؛ الأنواع (types) متوافقة، والواجهات (views) منطقية. لو كانت كتابة Swift هي المشكلة الوحيدة، لكانت هذه الأدوات قد اكتملت بالفعل.

المشكلة الحقيقية تظهر بعد المسودة الأولى. إنها الفجوة بين الكود الذي يبدو مكتملاً والكود الصحيح فعلياً.

تتعامل الأدوات الحديثة مثل Claude Code أو Codex مع أخطاء التجميع (compile errors) بشكل جيد، فهي لا تعطيك كوداً يفشل في عملية البناء (build). الفشل الحقيقي يكمن في الأخطاء التي لا يستطيع المترجم (compiler) رؤيتها.

هذه الإخفاقات تهدر وقتي:

عدم تطابق القصد (Intent mismatch): يتم تجميع الكود وتجتاز الاختبارات بنجاح، ومع ذلك، يكون السلوك خاطئاً. يتبع الوكيل "الضوء الأخضر" لاختبار ناجح بدلاً من هدفك الفعلي، إذ لا يملك وسيلة للتحقق من القصد.

سباقات التزامن (Concurrency races): يتم بناء الكود دون أخطاء، لكنه يحتوي على سباقات بيانات (data races). هذه الأخطاء لا تظهر إلا أثناء وقت التشغيل (runtime). يرى الوكيل عملية بناء ناجحة وينتقل للمهمة التالية، بينما يتطلب إصلاح هذه المشكلات عادةً إعادة تصميم، وهو ما يفشل الوكيل في القيام به.

حلقات التراجع (Regression loops): يقوم الوكيل بإصلاح خطأ واحد ولكنه يتسبب في خطأ آخر. وأثناء محاولته إصلاح الخطأ الثاني، يقوم بإلغاء الإصلاح الأول. يدخل في حلقة مفرغة يتأرجح فيها بين حالتين معطلتين، لأنه يفتقر إلى ذاكرة لما فشل سابقاً.

ضعف البنية البرمجية (Poor architecture): يكتب الوكيل كوداً يتعارض مع إطار العمل (framework). يتجاهل هيكلية تطبيقك؛ قد يعمل الكود في نص برمجي مؤقت (script)، لكنه يفشل في قاعدة كود (codebase) حقيقية.

هذه ليست مشكلات تتعلق باللغة؛ فالنموذج يعرف Swift، لكنه يفتقد ما لا يستطيع المترجم رؤيته. هو لا يعرف ما إذا كانت النتيجة تطابق قصدك أو ما إذا كانت البنية احترافية.

هذا ينقل التكلفة من استهلاك الرموز (tokens) إلى استهلاك الانتباه. فالوكيل الذي يتطلب منك مراقبته كل بضع خطوات لم يوفر عليك العمل، بل حول عملية الكتابة إلى عملية إشراف.

أنا أعمل على تحسين نتائجي من خلال تغيير الحلقة المحيطة بالنموذج، حيث أركز على ما يقوم الوكيل بفحصه وتذكره.

هل يتوافق هذا مع تجربتك؟ عندما تشغل الوكلاء على منصات Apple، أين يحدث الخلل؟ هل هو عدم تطابق القصد، أم سباقات وقت التشغيل، أم شيء آخر؟

المصدر: https://dev.to/jbrackin/coding-agents-are-good-at-writing-swift-theyre-bad-at-finishing-it-md3

مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi