الخروج من البيئة المعزولة عن قصد
ما الذي يغيره وضع elevated في OpenClaw فعلًا، وكيف تختلف التوجيهات الأربعة، ولماذا يجب أن تجتاز البوابة العامة وبوابة كل وكيل وقائمة السماح للمرسلين الفحص جميعها قبل أن يغادر أمر واحد الصندوق
قرار عزل الوكيل سهل، أما التعايش معه فأصعب، لأنه في اللحظة التي تحتاج فيها مهمة حقيقية إلى شيء خارج الصندوق تحتاج إلى طريقة لإخراجه تكون مقصودة لا عرضية. ووضع elevated هو جواب OpenClaw على ذلك. فهو لا يغير شيئًا لوكيل لم يعزل قط، أما الوكيل المعزول فيفتح له مسارًا ضيقًا ومحروسًا إلى المضيف. والبوابات تستحق قراءة متأنية، لأن عدة منها يجب أن تتوافق قبل أن يتحرك أمر واحد.
ما الذي يفعله وضع elevated
- يتيح وضع elevated للوكيل المعزول الخروج من العزل العادي المهيأ على مستوى الوكيل وتشغيل الأوامر خارج البيئة المعزولة بدلًا من ذلك، مع بوابات موافقة تبقى قابلة للتهيئة.
- لا يغير السلوك إلا عندما يكون الوكيل معزولًا، لأن الوكيل غير المعزول يشغل أوامر shell الخاصة به على المضيف أصلًا.
- المضيف الفعلي هو Gateway افتراضيًا، ولا يصبح العقدة إلا عندما يكون هدف exec المهيأ أو هدف الجلسة عقدة بالفعل، لذا فإن رفع الصلاحيات ليس تجاوزًا عابرًا للمضيفين.
- تتوفر أربعة توجيهات لكل جلسة: المستوى on الذي يبقي الموافقات، والمستوى ask الذي هو اسم بديل له، والمستوى full الذي يمكنه تخطي الموافقات، والمستوى off الذي يعود إلى التنفيذ المحصور في البيئة المعزولة.
الجلسات التي يشترط دور منشئها العزل لا يمكنها استخدام وضع elevated للإفلات منه.
البوابات التي يجب أن تتوافق
التوفر حاصل اجتماع شروط، لا مفتاح تشغيل. يجب أن تكون البوابة العامة مفعلة، ويجب أن يظهر المرسل في قائمة السماح الخاصة بقناته، وهي محفوظة كقوائم معرفات لكل قناة. ولا تستطيع بوابة كل وكيل إلا زيادة التقييد، لذا يجب أن تكون البوابة العامة وبوابة الوكيل مفعلتين كلتاهما كي يتأهل الوكيل. وقائمة السماح الخاصة بكل وكيل تعمل بالطريقة نفسها، ويجب أن يطابق المرسل القائمة العامة وقائمة الوكيل معًا. يمكن للمكونات الإضافية للقنوات توفير قائمة سماح احتياطية عبر خطاف محول في SDK، لكن لا توجد قناة مضمنة تنفذ هذا الخطاف اليوم، لذا يحتاج كل مزود عمليًا إلى إدخال صريح خاص به في قائمة السماح. وإذا فشلت أي بوابة، يعامل وضع elevated على أنه غير متاح بدل منحه جزئيًا. أما الإدخالات نفسها فقد تكون معرفات بسيطة تطابق معرف مرسل أو رقمًا بصيغة E.164 أو حقل From، أو قد تحمل بادئة تستهدف اسم عرض أو اسم مستخدم أو وسمًا، مع بادئات هوية صريحة متاحة عندما تحتاج إلى إزالة أي لبس. وهناك أيضًا تبعية أقل وضوحًا، إذ يقع أمر الدردشة bash خلف خيار خاص به ويتطلب إضافة إلى ذلك تفعيل وضع elevated، لذا فإن تعطيل elevated يمنع رسائل shell تلك أيضًا.
المستويات والأولوية
- الرسالة التي تحتوي التوجيه وحده تضبط القيمة الافتراضية للجلسة، بينما التوجيه نفسه إذا استخدم مضمنًا في بداية طلب لا ينطبق إلا على تلك الرسالة.
- يبدأ الحسم من التوجيه المضمن أولًا، ثم تجاوز الجلسة، ثم القيمة الافتراضية العامة المضبوطة في الإعداد.
- في الوضع full لا يتم تخطي الموافقات إلا عندما يكون وضع exec وسياسة موافقة المضيف بعد الحسم متساهلين كليًا أصلًا، وفي المستويين on وask تنطبق قواعد الموافقة المهيأة دائمًا.
يفترض وضع elevated أنك تملك بالفعل بيئة معزولة في Gateway تستحق الخروج منها، ويفترض أنك قررت ما يسمح للأمر بفعله بعد وصوله، وهي مهمة موافقات exec. ولا يحل رفع الصلاحيات محل أي منهما.
لماذا تصمد الحدود
يعامل التصميم رفع الصلاحيات كرافعة على محور واحد فقط، ويرفض أن يتحول إلى تجاوز عام. فإذا حظرت سياسة الأدوات أداة exec تمامًا، لا يستطيع رفع الصلاحيات إعادتها، لأن كلًا منهما يجيب عن سؤال مختلف والأكثر تقييدًا هو الذي يغلب. وإذا كان دور المشغل الخاص بمنشئ الجلسة الموثق يشترط بيئة معزولة، فلا يستطيع رفع الصلاحيات تشغيل أي أوامر على Gateway أو على عقدة إطلاقًا، وهذا يبقي قرار المشغل فوق توجيه الدردشة. واختيار المضيف يعامل بالطريقة نفسها، فلا يتحول الهدف التلقائي إلى حرية في اختيار الجهاز. والإبقاء على هذه البوابات منفصلة هو ما يجعل تركيبها قابلًا للتنبؤ، وتخصص الوثائق صفحة لكيفية تفاعل الثلاث لحظة استدعاء الأداة، وهي تستحق القراءة كاملة مرة واحدة (كيف تتكامل البوابات الثلاث). أما توجيه exec المرتبط فرافعة أخرى مختلفة، تضبط قيم exec الافتراضية لكل جلسة للمرسلين المخولين دون الحاجة إلى رفع الصلاحيات إطلاقًا. ومجتمعة، تعني هذه القواعد أن تفعيل رفع الصلاحيات يوسع شيئًا واحدًا بالضبط ويترك كل حد آخر في مكانه.
على Diali
على Diali، يشغل كل عميل مساعده الخاص، ويولد إعداد تشغيل OpenClaw المستضاف على Diali من لوحة التحكم ويستبدل عند كل إصدار. وإذا أردت أن ترى أين تقع الحدود قبل أن توسع أيًا منها، فابدأ بصفحة الأمان في Diali.
- لا يغير وضع elevated شيئًا ما لم يكن الوكيل معزولًا فعلًا.
- يجب أن تجتاز كل البوابات الفحص: العامة، وبوابة الوكيل، وقائمة السماح لتلك القناة.
- المستوى full وحده يتخطى الموافقات، وفقط عندما تكون السياسة متساهلة أصلًا.
كفاك قراءة، ابنِ وكيلك الخاص
جهز وكيلًا، واختر قناة، واجعله يعمل داخل التطبيق المفتوح لديك دائمًا.
