دليل
صلاحيات وكلاء البرمجة بالذكاء الاصطناعي ووضع YOLO: إعداد أكثر أمانًا
أوضاع الصلاحيات في Claude Code وCodex وCursor، وما الذي تتجاوزه أوضاع تخطّي كل شيء فعلًا، وما يستطيع المستودع تغييره، وإعدادات الوكلاء التي لا ينبغي إيداعها.
· قراءة في 8 دقائق · بقلم فريق vetkit


أوضاع الصلاحيات في ثلاث أدوات
يوازن كل وكيل برمجة بالذكاء الاصطناعي بين أمرين: كم مرة يقاطعك، وكم يستطيع أن يفعل دون أن يسأل. تختلف أسماء الإعدادات من أداة إلى أخرى لكن بنيتها واحدة: وضع يسأل، ووضع يترك القرار لمراجِع تلقائي، ووضع يتخطّى كل شيء، يُسمّى بشكل غير رسمي وضع YOLO.
| الأداة | الأوضاع بحسب وثائقها | إعداد تخطّي كل شيء |
|---|---|---|
| Claude Code | يدوي، وتلقائي (يراجع مصنِّف الإجراءات؛ وهو وضع البداية للجلسات التفاعلية)، acceptEdits، plan، dontAsk | bypassPermissions، ويمكن بدؤه أيضًا بالخيار --dangerously-skip-permissions |
| OpenAI Codex | أوضاع البيئة المعزولة read-only وworkspace-write وdanger-full-access، مقرونةً بسياسة موافقة مثل on-request أو never | --dangerously-bypass-approvals-and-sandbox، والاسم المستعار --yolo |
| Cursor | Auto-review (الافتراضي الموصى به)، وAllowlist | Run Everything |
ما الذي تتجاوزه أوضاع تخطّي كل شيء فعلًا
أوضاع تخطّي كل شيء تزيل أكثر من مجرد طلبات الموافقة. ففي Codex يزيل الخيار الموافقات والبيئة المعزولة معًا. ويصف Cursor وضع Run Everything بأنه يشغّل كل استدعاء أداة تلقائيًا بلا بيئة معزولة ولا مراجِع. كما يتخطّى وضع التجاوز في Claude Code طلبات الموافقة على الكتابة في مجلده الخاص .claude وفي .git.
والمورّدون متّفقون على المكان المناسب لهذه الأوضاع: تنص Claude Code على استخدام وضع التجاوز فقط في البيئات المعزولة مثل الحاويات أو الأجهزة الافتراضية، وتصف Codex خيارها بأنه عالي المخاطر وغير موصى به. وحتى داخل الحاوية، يصبح كل ما يُحمَّل فيها، مثل بيانات اعتماد سحابية أو وكيل SSH، مباحًا. ويسرد دليل ما يمكن للوكلاء الوصول إليه ما يشمله ذلك عادةً.
ما يستطيع المستودع تغييره
باتت إعدادات الوكلاء تعيش بشكل متزايد داخل المستودع بجوار الشيفرة: إعدادات .claude/ و.codex/config.toml و.cursor/mcp.json وتعريفات الخطافات، وملفات التعليمات مثل AGENTS.md وCLAUDE.md. هذا مريح للفرق، ويعني أيضًا أن git clone واحدًا قد يغيّر سلوك الوكيل.
- بوابات الثقة تساعد. لا يحمّل Codex طبقة
.codex/الخاصة بالمشروع إلا بعد أن تمنح المشروع ثقتك. ولا يطبّق Claude Code قواعدallowالخاصة بالمستودع إلا بعد أن يمنح كل عضو في الفريق المجلد ثقته، ويتجاهلbypassPermissionsكوضع افتراضي في إعدادات المشروع. - ليس كل شيء محكومًا بالطريقة نفسها. لا تزال الخطافات وتعريفات خوادم MCP وملفات التعليمات تصل مع المستودع؛ ولخوادم MCP طلب موافقة خاص بها، وميزة الثقة بمساحة العمل في Cursor معطّلة ما لم تفعّلها.
- الإصدارات القديمة تتصرّف بشكل مختلف. قد يظل عميل قديم على جهاز أحدهم يحترم إعدادًا تتجاهله الإصدارات الحالية، ووجود هذا الإعداد بحد ذاته يخبرك بأن المشروع يتوقع تشغيل الوكلاء دون إشراف.
إعدادات الوكلاء التي لا ينبغي إيداعها
هذه هي الأنماط التي تستحق الالتقاط أثناء المراجعة قبل أن تصل إلى الفرع الرئيسي:
- الموافقات المعطّلة:
bypassPermissionsكوضع افتراضي، أو وكيل فرعي معpermissionMode: bypassPermissions، أو سكربت حزمة يشغّل وكيلًا بالخيار--dangerously-skip-permissionsأو--dangerously-bypass-approvals-and-sandbox. - قواعد سماح توافق مسبقًا على أي شيء:
Bash(*)، أو أحرف بدل (wildcards) على الصدفات والمفسّرات ومشغّلات الحزم وأدوات الشبكة مثلBash(curl:*)أوBash(npx:*). - خطافات تنزّل سكربتًا وتشغّله، مثل تمرير مخرجات
curlمباشرةً إلى صدفة. - خوادم MCP غير مثبّتة الإصدار، أو تُشغَّل من سكربت بعيد، أو يُتّصل بها عبر HTTP غير مشفّر، أو مهيّأة ببيانات اعتماد مكتوبة مباشرةً في الملف.
- نصوص مخفية في ملفات التعليمات: تعليقات HTML أو محارف Unicode غير مرئية في
AGENTS.mdأوCLAUDE.mdلا يراها المراجِع لكن الوكيل يقرؤها.
{ "permissions": { "defaultMode": "bypassPermissions", "allow": ["Bash(*)", "Bash(curl:*)", "Bash(npx:*)"] }}خط أساس أكثر أمانًا
- أبقِ الوضع الافتراضي أو التلقائي على الحواسيب المحمولة، واحتفظ بأوضاع تخطّي كل شيء للبيئات التي يمكن التخلص منها.
- أودِع قواعد سماح ضيقة للأوامر المحددة التي يشغّلها مشروعك، وامنع قراءة الأسرار.
- ثبّت إصدارات خوادم MCP واحفظ بيانات اعتمادها في متغيرات البيئة لا في الملف.
- فعّل البيئة المعزولة حيث تكون اختيارية، واقصر الوصول إلى الشبكة على قائمة سماح.
- تعامل مع التغييرات في إعدادات الوكلاء وملفات التعليمات على أنها ذات صلة بالأمان أثناء المراجعة.
{ "permissions": { "allow": ["Bash(npm run test:*)", "Bash(npm run lint)"], "deny": ["Read(./.env)", "Read(./secrets/**)"] }}قواعد السماح المنتهية بحرف بدل لا تكون آمنة إلا بقدر أمان الأمر الذي يسبقه: فقاعدة لـ npm run test ضيقة، أما قاعدة لـ node أو curl فليست كذلك.
أين يأتي دور vetkit
يفحص تدقيق المستودع في vetkit إعدادات الوكلاء المُودَعة ضمن مجموعة فحوص مخاطر شيفرة الذكاء الاصطناعي: إعدادات وخيارات تجاوز الموافقات، وقواعد السماح التي توافق مسبقًا على أوامر صدفة أو شبكة عشوائية، والخطافات التي تشغّل سكربتات بعيدة، وخوادم MCP غير المثبّتة الإصدار أو التي تُشغَّل عن بُعد، وخوادم MCP عبر HTTP غير مشفّر أو ببيانات اعتماد مكتوبة مباشرةً، والتعليقات أو محارف Unicode المخفية في ملفات تعليمات الوكلاء. وتُشارَك القواعد نفسها مع خادم @vetkit/mcp ومع Agent Watch، الذي يُبلغ عمّا يفعله الوكلاء فعلًا على أجهزة الفريق؛ ويغطي دليل المراقبة هذا الجانب.
المصادر
قرأنا المعلومات المتعلقة بكل أداة من وثائقها الخاصة في :
- Claude Code: الصلاحيات، الإعدادات والأمان
- OpenAI Codex: موافقات الوكيل والأمان وأساسيات الإعداد
- Cursor: أوضاع التشغيل وأمان الوكيل
أسماء المنتجات علامات تجارية مملوكة لأصحابها. vetkit غير تابع لهم ولا يحظى بتأييدهم أو رعايتهم. هل لاحظت معلومة قديمة؟ راسلنا على contact@vetkit.dev وسنصحّحها.