11:05Maximilian Schwarzmüller
Log in to leave a comment
No posts yet
لقد انتهى عصر المحررات التي تكتب الكود بالنيابة عنك فقط. الآن، تقوم وكلاء الذكاء الاصطناعي مثل Claude Code بفتح الطرفية (Terminal) مباشرة، والبحث في نظام الملفات، وتعديل الكود بأنفسهم. هذا أمر مريح، ولكنه مرعب في الوقت ذاته؛ فحقنة أوامر واحدة (Prompt Injection) قد تؤدي إلى تسريب ملفات .env أو مفاتيح SSH إلى الخارج. نحن بحاجة إلى طرق تحكم محددة تمنح الوكيل الاستقلالية ولكن تمنعه من تجاوز الحدود.
يسعى الوكيل افتراضيًا لمسح المشروع بالكامل لتنفيذ الأوامر. إذا تركت هذا دون رقابة، فهناك خطر من قراءته لإعدادات حساسة. الدفاع الأكثر فاعلية هو إنشاء ملف قواعد مخصص للوكيل في الدليل الرئيسي (root) للمشروع.
CLAUDE.md أو .agent-rules في جذر المشروع.deny لمنع الوكيل حتى من النظر إلى مسارات مثل .env أو ~/.ssh أو ~/.aws/credentials.--allowedTools للسماح فقط بالوظائف الضرورية. قم بتفعيل الحد الأدنى من الأدوات مثل Bash أو Read أو Write فقط.باستخدام وضع Default في Claude Code، والذي يتطلب موافقة المستخدم على جميع عمليات الكتابة، يمكنك منع خطر تسريب الكود المصدري ماديًا. حادثة إرسال الوكيل لمتغيرات البيئة إلى الخارج بدون إذنك يمكن منعها تمامًا بملف إعدادات واحد.
أدوات الوكلاء تقوم بوضع الخطط وتنفيذها ذاتيًا. تكمن المشكلة عندما يقع الوكيل في خطأ منطقي؛ فبدلاً من إيجاد حل، قد يدخل في حلقة مفرغة مكررًا استدعاءات API، مما يؤدي إلى فواتير بعشرات الدولارات في لحظات. وفقًا لبيانات أبحاث Anthropic، فإن وضع "شروط خروج" (Exit Criteria) واضحة في الأمر الموجه يمكن أن يقلل وقت التنفيذ بنسبة تصل إلى 62%.
لمنع انفجار التكاليف، يجب عليك تصميم "قاطع دائرة" (Circuit Breaker) داخل الأوامر البرمجية:
npm test أو اجتياز اختبارات وحدات معينة كمعيار مطلق للنهاية..cursorrules لتقييد الوكيل لقراءة قواعد أدلة معينة فقط مثل src/api/**/* لمنع هدر التوكنز (Tokens) غير الضروري.تحديد بوابات الخروج هذه يقلل من استهلاك التوكنز الناتج عن التعليمات الغامضة، مما يوفر أكثر من 40% من تكاليف API الشهرية المتوسطة.
تعديل الوكيل للملفات المحلية مباشرة طريقة سريعة ولكنها خطيرة، لأن الكود غير المختبر قد يفسد الفرع الرئيسي. فريق الهندسة في Shopify، الذي يشغل أداة الوكيل الخاصة بهم Sidekick، اعتمد طريقة التحقق المتبادل من النتائج باستخدام نموذج منفصل. يجب علينا أيضًا عزل مساحة عمل الوكيل.
الطريقة الأنظف هي استخدام git worktree. أنشئ دليلاً وفرعًا مستقلين مخصصين لجلسة الوكيل واترك المهمة له. عند انتهاء العمل، اطلب منه تقديم تقرير ملخص للتغييرات باستخدام git diff وتشغيل اختبارات الوحدات تلقائيًا باستخدام أدوات مثل Playwright أو Vitest. هذه العملية تقلل وقت المراجعة اليدوية بنسبة 70% مع ضمان دمج الكود الموثوق فقط في الفرع الرئيسي.
سرعة الوكيل في كتابة الكود أسرع بكثير من طباعة البشر. في هذه الحالة، إذا كانت ميزة editor.formatOnSave في VS Code مفعلة، فقد يتغير تنسيق الملف قسريًا أثناء كتابة الوكيل، مما يسبب أخطاء في مطابقة النص. إنها حالة تعثر الأداة في خطواتها الخاصة.
أيضًا، غالبًا ما تفشل أغلفة (Shells) الأوامر غير التفاعلية التي يشغلها الوكيل في قراءة متغيرات البيئة المحددة في .zshrc.
.vscode/settings.json للمشاريع التعاونية، عطل editor.formatOnSave بضبطه على false..zshrc إلى ملف .zshenv الذي يتم تحميله بغض النظر عن طريقة تشغيل الغلاف.Husky لتكوين خطافات ما قبل الالتزام (Pre-commit hooks) بحيث تعمل أدوات التنسيق (Linter & Formatter) فقط عندما ينتهي الوكيل من عمله ويقوم بالالتزام (Commit).إذا كنت لا تريد رؤية وكيل يقف عاجزًا لأنه لم يجد متغيرات البيئة، فعليك مراجعة إعدادات الغلاف أولاً.
| تصنيف الإعداد | اسم الملف | محتوى الإعداد الموصى به | رؤية الوكيل |
|---|---|---|---|
| متغيرات بيئة عالمية | .zshenv | PATH, API_KEY, مسار SDK | يتم تحميله في جميع الجلسات |
| إعدادات تفاعلية | .zshrc | alias, prompt, theme | قد يتم تجاهله عند تشغيل الوكيل |
| إعدادات تسجيل الدخول | .zprofile | سكربتات تهيئة النظام الشاملة | صالح فقط في غلاف تسجيل الدخول |