إعدادات البرمجة بالذكاء الاصطناعي لديك هي أداة معقدة. وقاعدة الكود الخاصة بك مركبة.

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

ولكن هناك فخ. يعتقد الناس أن إعداداً أفضل لمهمة واحدة سيخلق نظاماً متماسكاً. وهذا غير صحيح.

لفهم السبب، استخدم إطار عمل Cynefin. فهو يفصل المشكلات إلى نوعين: معقدة (Complicated) ومركبة (Complex).

المشكلات المعقدة (Complicated)

لهذه المشكلات إجابة يمكن معرفتها. تستخدم التحليل والمهارة لإيجادها. تشمل الأمثلة إعادة هيكلة وحدة برمجية (refactoring a module) أو كتابة دالة تحقق (validation function). بمجرد العثور على الإجابة، يمكنك تكرارها. معظم أدوات البرمجة بالذكاء الاصطناعي تعمل في هذا النطاق؛ فهي تركز على وحدة العمل، وتجعل المهام قابلة للتكرار والتحقق.

المشكلات المركبة (Complex)

هذه المشكلات ليس لها إجابة يمكن التنبؤ بها. النظام عبارة عن شبكة من الأجزاء، ولا تظهر النتائج إلا بعد اتخاذ إجراء. هل ستؤدي أربعون تغييراً مدمجاً إلى كسر البنية التحتية بعد ستة أشهر؟ هل سيتعارض الوكيل (Agent) أ مع الوكيل ب؟ لا يمكنك العثور على هذه الإجابات من خلال النظر في ملف واحد، بل تنبثق من كيفية تفاعل الأجزاء مع بعضها البعض.

يحدث عدم التوافق عندما تتوقع من الأدوات "المعقدة" (Complicated) أن تحل المشكلات "المركبة" (Complex).

قد تجعل الأداة الوكيل يكتب دالة مثالية. ولكن إذا استخدمت إحدى المهام userId واستخدمت أخرى user_id ، فإن النظام سينهار. كانت كلتا المهمتين "صحيحتين" بشكل منعزل، لكن الفشل هنا هو فشل انبثاقي؛ فهو يكمن في التفاعل، وليس في الوحدة البرمجية.

حتى نوافذ السياق (context windows) الضخمة لا يمكنها حل هذه المشكلة. النافذة الأكبر تساعدك على رؤية المزيد، لكن الرؤية لا تعني الاستنتاج. يمكنك قراءة قاعدة كود كاملة ومع ذلك لا تعرف ما إذا كانت ستدخل في حالة جمود (deadlock) تحت حمل الإنتاج. هذه خاصية تتعلق بوقت التشغيل (runtime property).

كيفية التعامل مع كليهما:

  • للطبقة المعقدة (Complicated): استخدم المهارات، والمواصفات، والتطوير القائم على الاختبار (TDD). هذه الأمور تجعل مخرجات الوكيل الفردية دقيقة وصارمة.
  • للطبقة المركبة (Complex): استخدم منهجية "الاستقصاء-الاستشعار-الاستجابة" (probe-sense-respond). لا يمكنك التنبؤ بما سينكسر، لذا يجب عليك الدمج، والنشر، والمراقبة. استخدم اختبارات التكامل (integration tests) والقابلية للملاحظة (observability) لاستشعار ما يحدث عند دمج الأجزاء معاً.

لا تنخدع بالوعد بأن المواصفات الأفضل ستجعل نظامك مستقراً. المواصفات تجعل الوحدة البرمجية موثوقة، لكنها لا تجعل النظام متماسكاً.

طابق منهجيتك مع المجال. استخدم الأدوات لإتقان الوحدة البرمجية، واستخدم التجريب لفهم النظام.

Source: https://dev.to/bala_paranj_059d338e44e7e/your-ai-coding-setup-is-a-complicated-domain-tool-your-codebase-is-complex-3mkc

Optional learning community: https://t.me/GyaanSetuAi