إن bypassPermissions هو وضع الصلاحيات في Claude Code الذي لا يتوقف فيه الوكيل أبدًا للسؤال: التعديلات، والأوامر، واستدعاءات الشبكة، وكل شيء آخر يُنفَّذ بمجرد أن يقرر النموذج تشغيله. إرشادات Anthropic توصي باستخدامه فقط في بيئات معزولة (sandboxed) ومؤقتة. هذه الإرشادات تتعلق بـ ما يمكن للوكيل الوصول إليه. ولكن هناك سؤال ثانٍ لا تغطيه: من الذي يملي عليه ما يفعله.
بالنسبة لوكيلك الخاص في بيئتك المعزولة، فإن bypass هو إعداد للسرعة. أما بالنسبة لوكيل يمكن لأشخاص آخرين إرسال طلبات إليه، فإن bypass هو قرار بمنح هؤلاء الأشخاص صلاحياتك المحلية الكاملة دون وجود أي إنسان في المنتصف. هذه التدوينة تدور حول هذا الفارق.
لماذا يُعد bypass مغريًا
تُشكّل رسائل الـ prompt عائقًا. في عملية إعادة هيكلة برمجية (refactor) طويلة، فإن مئة سؤال من نوع "allow this edit?" تدربك على الضغط على نعم دون قراءة. إيقافها يجعل الوكيل يبدو كزميل عمل بدلاً من كونه استمارة روتينية. يقوم العديد من الأشخاص بتشغيل bypass على مستودعات خاضعة للتحكم في الإصدارات ويفترضون، وبحق، أن أي تعديل سيئ يمكن التراجع عنه عبر git checkout.
يظل هذا المنطق سليمًا طالما توافرت ثلاثة أمور: أنت من كتب الطلب، وأنت تراقبه، ولا يوجد أي شيء غير قابل للتراجع في متناول اليد.
ما الذي يتغير عندما يطلب شخص آخر
الطلب ليس لك. عبارة زميلك "نظّف الفروع القديمة" تعني شيئًا بالنسبة له، لكنها تعني git branch -D بالنسبة للوكيل. مع bypass، لا شيء يتوقف مؤقتًا بين الاثنين.
المدخلات غير موثوقة. تصل الطلبات مع مرفقات: لقطة شاشة، أو ملف سجل، أو مسألة (issue) تم لصقها. يمكن لأي منها أن يحتوي على نص يُقرأ كأنه تعليمة برمجية. يُعد الـ prompt injection عبر المدخلات المشتركة ناقل هجوم حقيقي، ويزيل bypass نقطة التفتيش الوحيدة التي كانت لترصده.
أنت لا تراقب. المشاركة موجودة تحديدًا ليعمل الوكيل عندما لا تكون موجودًا. الرسالة التي كنت لتجيب عنها في ثانية واحدة تصبح إجراءً لم يره أحد.
الأفعال غير القابلة للعكس في متناول اليد. الرفع (push) إلى main، أو الحذف، أو الإنفاق المالي، أو قراءة بيانات الاعتماد. على جهازك الخاص، نادرًا ما تحدث هذه الأمور في جلسة عمل عادية، ولهذا السبب يبدو bypass آمنًا. إنها بالضبط الإجراءات التي يُرجّح أن يُشغّلها شخص آخر عن طريق الخطأ.
الحد الفاصل
استخدم bypass للوكلاء الذين تتحدث معهم وحدك فقط، وفي المجلدات التي لا تحتوي على أي شيء لا يمكن التراجع عنه. في اللحظة التي يتواجد فيها الوكيل في غرفة مع شخص ثانٍ، لم يعد السؤال "كم أثق بالنموذج"، بل "كم أثق بكل شخص وكل مرفق يمكنه الوصول إليه".
الحفاظ على السرعة دون تجاوز الحد
تتيح لك الغرفة الحفاظ على معظم السرعة عبر إضافتين فوق الوضع المحدد.
أذونات لكل شخص. يتيح الإذن الدائم لشخص موثوق التشغيل دون موافقة لكل طلب. يمكن أن يظل وضع الوكيل نفسه متساهلاً للاستدعاءات العادية. راجع أوضاع الصلاحيات، مشروحة.
أربعة إجراءات تتوقف دائمًا للمراجعة. الرفع إلى فرع مشترك، والحذف، وإنفاق الأموال، والمساس ببيانات الاعتماد تتوقف جميعها في انتظار المالك، حتى في وضع bypass، عندما يأتي الطلب من شخص آخر. تُنفذ مئة تعديل عادي دون أي prompt؛ بينما ينتظرك أمر git push origin main الواحد. المنطق وراء ذلك مشروح في أربعة إجراءات يجب على الوكيل أن يطلب الإذن دائمًا قبل القيام بها.
توصية عملية
- الوكلاء الذين تشاركهم:
acceptEditsللمستودعات، وplanلأي عمل استكشافي. امنح الإذن للأشخاص الذين تثق بهم. - الوكلاء الذين تستخدمهم وحدك في بيئات معزولة ومؤقتة: bypass مناسب تمامًا.
- أي شيء يحتوي على بيانات اعتماد بيئة الإنتاج في مجلد العمل الخاص به: استخدم
default، وخصّص وكيلاً منفصلاً للأجزاء التي لا تحتاج إليها. - إياك أن تشارك وكيلاً يحتوي مجلد العمل الخاص به على ملف مفاتيح. انقل المفتاح، ولا تعتمد على تغيير الوضع.
أسئلة شائعة
هل تغيّر الغرفة معنى bypass أثناء التشغيل؟ لا. داخل التشغيل نفسه، يظل bypass يعني عدم وجود أي prompt أثناء وقت التشغيل. ما تضيفه الغرفة هو تحديد من يحق له بدء التشغيل، وما هي الإجراءات الأربعة التي تتوقف مؤقتًا بغض النظر عن الوضع.
ماذا عن الإعدادات المماثلة في Codex؟ الشكل نفسه والنصيحة نفسها: متساهل لنفسك في بيئة معزولة، وليس لوكيل مشترك.
أليس ظهور prompt لكل عملية رفع أمرًا مزعجًا؟ عمليات الرفع إلى فروع مشتركة نادرة في الجلسة العادية. وإن لم تكن كذلك، فمن المحتمل أن يكون مجلد عمل الوكيل واسع النطاق أكثر من اللازم.
سريع لك، وحذر للجميع. هذا هو الغرض من وجود الغرفة. امنح وكيلك واحدة.
نُشر في