Laravel Tackle يضيف وكيل برمجة بالذكاء الاصطناعي إلى تطبيقات Laravel عبر Artisan
حزمة Laravel Tackle، من تطوير Jordan Dalton، تشغّل وكيل AI coding داخل تطبيق Laravel نفسه من خلال أوامر Artisan. توفر الحزمة أدوات مرتبطة بإطار العمل مثل قراءة routes وTelescope وتشغيل استعلامات SELECT، مع قيود تُفرض برمجياً في PHP تشمل المسارات المحمية وحدود الإنفاق وعزل التعديلات داخل Git worktree.
أبرز النقاط
- Tackle تشغّل وكيل AI coding داخل مشروع Laravel عبر أوامر Artisan.
- القيود على shell وArtisan والمسارات والميزانية تُفرض في PHP قبل تشغيل الأدوات.
- ai:code يدعم جلسات تفاعلية ووضع --plan وسجل محادثات محفوظ بين التشغيلات.
- Worktree mode يعزل تعديلات الوكيل عن working tree الرئيسي للمشروع.
- ai:review يراجع diffs وPull Requests ويمكن أن يفشل CI عند العثور على ملاحظات حرجة.
- ميزة self-healing الاختيارية تحاول إصلاح queue jobs والمهام المجدولة الفاشلة داخل worktree وفتح Pull Request.
- تدعم الحزمة Claude افتراضياً، مع OpenAI وGemini وGroq وOllama عبر إعدادات المزود.
تقدم Laravel Tackle طريقة لتشغيل وكيل برمجة بالذكاء الاصطناعي من داخل مشروع Laravel، بدلاً من تشغيله كأداة منفصلة لا تعرف سياق التطبيق. تعمل الحزمة عبر أوامر Artisan، ولذلك يستطيع الوكيل استخدام أدوات مرتبطة بالتطبيق نفسه، مثل استعراض routes وقراءة استثناءات Telescope وتنفيذ استعلامات SELECT على قاعدة البيانات وتشغيل Laravel Pint بعد تعديل الملفات.
الفكرة الأساسية في Tackle هي أن ضوابط التشغيل ليست مجرد تعليمات داخل prompt يمكن للنموذج تجاهلها، بل إعدادات تُفحص في PHP قبل تشغيل الأدوات. تشمل هذه الضوابط المسارات المحمية، وقائمة أوامر Artisan المسموح بها، وحداً مالياً لكل جلسة. كما تمنع protected_paths قراءة وكتابة ملفات مثل .env وvendor و.git، ما يعني أن الوكيل لا يستطيع مثلاً قراءة متغيرات البيئة لإظهارها لاحقاً.
تتضمن الحزمة عدة أوامر. الأمر ai:code يفتح جلسة تفاعلية تشبه REPL، ويدعم وضع التخطيط وslash commands وإرفاق الصور وحفظ سجل المحادثة بين التشغيلات. أما ai:run فينفذ مهمة واحدة دون طرفية، مع exit code وخيار --output=json المناسب للـ pipelines. وهناك ai:fix لمعالجة استثناء أو issue من Sentry أو GitHub، وai:review لمراجعة diff أو Pull Request، وai:upgrade لترقية حزمة Composer بين إصدارات رئيسية بالاعتماد على دليل الترقية الموجود في vendor/.
وضع --plan يستحق الانتباه قبل السماح بأي تعديل: يقرأ الوكيل قاعدة الشفرة ويعرض خطة مرقمة تشمل الملفات والتغييرات والمخاطر، ثم يتيح الاختيار بين التنفيذ أو المراجعة أو الإلغاء. وتتوفر أربع سياسات للوصول إلى shell: off لتعطيله كلياً، وapprove لتأكيد كل أمر وهو الوضع الافتراضي، وallowlist لقصره على أوامر محددة، وyolo للتشغيل دون طلب تأكيد.
يمكن للحزمة أيضاً عزل التعديلات عبر Git worktree. في هذا الوضع تُجرى التغييرات في worktree مؤقت بدلاً من working tree الحالي، وتُنظف الحزمة هذه المساحات عند انتهاء الجلسة. وتوصي الوثائق بعمل commit أو stash قبل أول جلسة عندما لا يكون worktree مفعلاً، لأن الوكيل يعدّل الملفات مباشرة في هذه الحالة.
في مراجعة Pull Requests، يعمل ai:review بوصول للقراءة فقط، ويعرض النتائج بحسب الملف وثلاثة مستويات للخطورة. ويمكن لخيار --fail-on=critical تحويل النتيجة إلى exit code لاستخدامها في CI. عند إعادة المراجعة على Pull Request نفسه، تتتبع الحزمة الـ head commit الذي راجعته سابقاً لتفحص التغييرات الجديدة فقط، ما لم يُطلب --full أو يحدث force-push يفقد المرجع السابق.
تشمل Tackle أيضاً ميزة self-healing الاختيارية للـ queue jobs والمهام المجدولة الفاشلة. عند تفعيلها، ينشأ fix في worktree جديد، وتُشغّل الاختبارات، ثم تفتح الحزمة Pull Request بالنتيجة أو تدمج التعديل في الفرع العامل في patch mode وفق الإعدادات. يمكن استثناء jobs بعينها باستخدام #[Healable(false)]، كما يمكن ضبط عتبة لعدد الإخفاقات قبل محاولة الإصلاح.
تعتمد الحزمة على laravel/ai وتستخدم Claude افتراضياً، مع إمكان تغيير المزود عبر AI_CODE_PROVIDER إلى OpenAI أو Gemini أو Groq أو نموذج محلي من خلال Ollama. وتحتاج إلى PHP 8.3 وLaravel 12 أو 13. وهي مرخصة تحت MIT، والإصدار المذكور في الإعلان هو v1.27.3.
لماذا يهم؟
تشغيل الوكيل من داخل Laravel يمنحه وصولاً منظماً إلى سياق التطبيق وأدواته بدلاً من الاعتماد على الملفات وحدها. الأهم للمطورين هو أن حدود الصلاحيات والإنفاق لا تعتمد على التزام النموذج بالتعليمات، بل تُفحص في طبقة الحزمة نفسها، مع إمكان عزل التعديلات قبل وصولها إلى مساحة العمل الفعلية.