الانتقال إلى المحتوى الرئيسي

OpenShell يعالج العَرَض: أمان الوكيل يحتاج إلى عقود، لا مفاتيح إيقاف

قد يُوقف الاحتواء وقت التشغيل وكيلاً مسيئًا، لكن دون عقد مُعلن مسبقًا للإجراءات المسموح بها، فهو مجرد تحديد للضرر، لا منع له.

صورة قريبة لرف خوادم مع مؤشرات LED مضيئة وكابلات شبكة، تمثل البنية التحتية وقت التشغيل لاحتواء وكيل الذكاء الاصطناعي.

ما الذي يفرضه OpenShell فعليًا

تعمل أدوات الاحتواء وقت التشغيل مثل OpenShell من Nvidia عند نقطة محددة في حزمة الوكيل: أسفل استدلال النموذج وأعلى استدعاء الأداة. تعترض اللحظة التي يحاول فيها الوكيل استدعاء أداة أو إرسال رسالة أو كتابة سجل. عند هذا الحد يمكنها فحص الإجراء المقترح ومقارنته بمجموعة من القواعد وإيقاف التنفيذ. هذا مفيد. وهو أيضًا، بمفرده، غير مكتمل.

ترى طبقة الاعتراض إجراءً، لا نية. عندما يختار الوكيل أداة ويجمّع وسائطها، يتلقى نظام الاحتواء طلبًا منظمًا: اسم أداة، مجموعة معاملات، وربما وجهة مستهدفة. ما لا يتلقاه هو الاستدلال الذي أنتج ذلك الطلب، أو الهدف الذي يسعى إليه الوكيل، أو السلطة التي يعتقد أنه يعمل بموجبها. يمكن لمصنّف أن يقيّم الطلب من حيث الشذوذ، لكنه لا يستطيع معرفة ما إذا كان الإجراء ضمن صلاحيات الوكيل لأنه لم تُعلن أي صلاحيات قط.

تأخير الكشف يضاعف المشكلة. حتى نظام الاحتواء الذي يستجيب بالمللي ثانية يستجيب بعد أن يكون الوكيل قد التزم بمسار عمل بالفعل. لقد ولّد النموذج رموزًا واختار أداة وبنى وسائط. في مسار متعدد الخطوات، قد يكون هذا الإجراء الواحد واحدًا من عشرات، وقد تكون الآثار الجانبية للخطوات السابقة لا رجعة فيها بالفعل. المللي ثانية مهمة، لكنها لا تعوّض عن معرفة، مسبقًا، ما كان مسموحًا للوكيل بفعله.

النتيجة العملية هي أن كل إيقاف يصبح قرارًا تقديريًا. يقرر مصنّف ما إذا كان الإجراء مريبًا. ذلك المصنّف احتمالي، ويعتمد على السياق، ومكلف في التشغيل عند كل خطوة. إنه ليس سياسة. إنه استدلال حول النية، وسينتج كلاً من الإيجابيات الكاذبة والسلبيات الكاذبة. عندما ينتج سلبيًا كاذبًا، يمضي الإجراء قدمًا. وعندما ينتج إيجابيًا كاذبًا، يُحظر إجراء مشروع ويتعطل مسار الوكيل. لا يُحدد أي من النتيجتين بحدود مُعلنة؛ بل يحددهما تخمين النموذج.

العقد قبل التشغيل

يغيّر العقد شكل المشكلة. قبل توليد الرمز الأول، ينبغي للوكيل أن يعلن سطح أدواته ووجهات خروجه ومظروف إنفاقه. سطح الأدوات هو مجموعة الأدوات التي يجوز للوكيل استدعاؤها، مع نطاقات المعاملات التي يجوز له استخدامها. وجهات الخروج هي نقاط النهاية أو النطاقات أو قوائم الانتظار التي يجوز له إرسال البيانات إليها. مظروف الإنفاق هو الحد الأقصى لكمية مورد ما، سواء كان رموزًا أو استدعاءات API أو عملة، التي يجوز للتشغيل استهلاكها.

Hands holding Erlenmeyer flasks of blue liquid during a laboratory experiment

هذا الإعلان ليس تعليمة توجيهية. إنه قطعة أثرية قابلة للقراءة آليًا يمكن لوقت التشغيل التحقق منها بشكل حتمي. عندما يفحص فرض بأسلوب OpenShell نطاقًا مُعلنًا بدلاً من نية مستنتجة، يصبح الفحص مقارنة مجموعات: هل هذه الأداة في السطح المُعلن، هل هذه الوجهة في قائمة الخروج المُعلنة، هل هذا الإنفاق ضمن المظروف المُعلن. الجواب نعم أو لا. لا مصنّف، لا تأخير، لا قرار تقديري.

تتكوّن العقود أيضًا. ينبغي للوكيل الفرعي أن يرث مظروفًا مُضيقًا من والده، لا سطح والده الكامل. إذا كان للوكيل الأب وصول إلى API دفع و API مراسلة، فإن الوكيل الفرعي المكلف بصياغة رسالة ينبغي أن يتلقى أداة المراسلة فقط، مع قائمة وجهات مقصورة على المستلمين المعتمدين لدى الأب. هذا ليس استدلالاً وقت التشغيل؛ إنه خاصية بنيوية في تعريف الوكيل. لا يمكن للوكيل الفرعي أن يتجاوز مظروفه لأن مظروفه لم يُمنح قط.

هذه هي الآلية التي تحوّل الاحتواء من أداة استرداد إلى أداة منع. لا يحتاج وقت التشغيل إلى تخمين ما إذا كان الوكيل ينوي إرسال بيانات إلى نقطة نهاية خارجية. فالنقطة إما في قائمة الخروج المُعلنة أو ليست كذلك. لا يحتاج وقت التشغيل إلى تقدير ما إذا كان إنفاق الوكيل شاذًا. فالإنفاق إما ضمن المظروف المُعلن أو ليس كذلك. العقد يجعل الفرض حتميًا.

لماذا مفاتيح الإيقاف هي البدائية الخاطئة

مفتاح الإيقاف آلية استرداد. والعقد آلية منع. وطرح الأول فقط ينقل التكلفة إلى الاستجابة للحوادث. يعمل الوكيل، ويفشل المصنّف في التقاط إجراء مشكل، فيوقف مفتاح الإيقاف التشغيل. بحلول ذلك الوقت، قد يكون الضرر قد وقع بالفعل.

إنهاء تشغيل في منتصف المسار يترك آثارًا جانبية جزئية. سجل نصف مكتوب في قاعدة بيانات. رسالة نصف مرسلة إلى عميل. معاملة نصف مُلتزم بها تترك نظامين في حالات غير متسقة. يوقف مفتاح الإيقاف الوكيل، لكنه لا يتراجع عن الإجراءات التي اتخذها الوكيل بالفعل. التراجع ممكن في بعض الأنظمة، لكنه مكلف وعرضة للخطأ وغالبًا غير مكتمل. تكلفة الحادث ليست تكلفة مفتاح الإيقاف؛ بل تكلفة التنظيف.

ينبغي أن يكون الاحتواء الملاذ الأخير خلف فحوص النطاق وميزانيات الخروج وسقوف القدرات. يمنع فحص النطاق الوكيل من استدعاء أداة خارج سطحه المُعلن. وتمنعه ميزانية الخروج من إرسال بيانات أكثر مما أُعلن. ويمنعه سقف القدرات من تصعيد أذوناته أو توليد وكلاء فرعيين بوصول أوسع. هذه حتمية ورخيصة وقابلة للفرض عند كل خطوة. مفتاح الإيقاف هو ما يتبقى عندمClose-up of a server rack in a data center aisle with blue lighting Server rack closeup

المقايضة الصادقة هي أن العقود تتطلب عملًا مسبقًا. إن إعلان سطح أدوات وقائمة خروج ومظروف إنفاق لكل وكيل يتطلب جهدًا أكبر من نشر مراقب وقت تشغيل والأمل في أن يلتقط المصنّف المشكلات. كما أن العقود تقيّد مرونة الوكيل. فالوكيل الذي يكتشف حاجة مشروعة إلى أداة خارج سطحه المُعلن لا يمكنه ببساطة استخدامها؛ يجب تعديل العقد، وهو ما يتطلب قرارًا بشريًا. هذه ميزة، لا عيب، لكنها تكلفة. البديل هو نظام يكون فيه كل إجراء قرارًا تقديريًا وكل حادث عملية تنظيف.

طبقات عملية

يستخدم معمار أمان الوكيل القابل للعمل أربع طبقات، كل منها أرخص وأكثر حتمية من التي تليها.

الطبقة الأولى هي إعلان النطاق الساكن عند وقت تعريف الوكيل. تُكتب أدوات الوكيل ووجهات خروجه ومظروف إنفاقه في تعريفه. هذه قطعة أثرية إعدادية، تُدار إصداراتها إلى جانب كود الوكيل. تُراجع وتُعتمد قبل تشغيل الوكيل.

الطبقة الثانية هي التحقق لكل خطوة مقابل النطاق المُعلن. قبل كل استدعاء أداة، يفحص وقت التشغيل الإجراء المقترح مقابل العقد. هذا الفحص رخيص وحتمي: اختبار عضوية في مجموعة، مقارنة وجهة، حصر إنفاق. لا يتطلب نموذجًا. لا يقدم تأخيرًا. إما ينجح أو يفشل، والفشل يوقف الخطوة قبل حدوث أي أثر جانبي.

الطبقة الثالثة هي كشف الشذوذ وقت التشغيل للانحراف. هنا تكسب الأدوات القائمة على المصنّفات مكانها. قد يبقى الوكيل ضمن نطاقه المُعلن بينما يتصرف بطرق تشير إلى انحراف هدفه، أو إلى التلاعب بمدخلاته. يمكن لكشف الشذوذ الإشارة إلى هذه الأنماط للمراجعة. إنه احتمالي ومكلف، لذا يعمل إلى جانب الفحوص الحتمية بدلاً من استبدالها. يلتقط ما لا يستطيع العقد التعبير عنه.

الطبقة الرابعة هي الاحتواء والتراجع، وتُستدعى فقط عندما تفشل الطبقات من الأولى إلى الثالثة. يوقف مفتاح الإيقاف التشغيل. وتحاول عملية التراجع إلغاء الآثار الجانبية. هذه الطبقة هي الأكثر تكلفة والأقل موثوقية، ولهذا ينبغي أن تكون الملاذ الأخير. وجودها ضروري، لكن استدعاءها ينبغي أن يكون نادرًا.

الحجة ليست أن الاحتواء وقت التشغيل عديم الفائدة. بل إن الاحتواء دون عقد هو احتواء دون تعريف لما يُحتوى. مفتاح الإيقاف يوقف وكيلاً، لكنه لا يخبر الوكيل بما كان مسموحًا له بفعله. العقد يفعل ذلك. العقد هو المنع؛ ومفتاح الإيقاف هو الاسترداد. وطرح الاسترداد فقط هو اختيار لدفع ثمن الحوادث بدلاً من منعها.

مشاركةXLinkedInرابط دائم6 دقيقة قراءة

قراءات ذات صلة

الأسئلة التي يجيب عنها هذا

What is the difference between a kill switch and a contract for AI agents?

A kill switch is a recovery mechanism that terminates a run after a problem is detected. A contract is a prevention mechanism that declares, before the run, which tools, destinations and spend levels are permitted. The contract makes enforcement deterministic; the kill switch only limits damage after the fact.

Why can't runtime containment tools like OpenShell know an agent's intent?

Containment tools intercept the tool call, not the reasoning that produced it. They see a structured request but not the goal or authority behind it. Without a declared scope, every halt is a judgement call made by a classifier, which is probabilistic and introduces latency.

What are the four layers of a practical agent safety architecture?

Layer one: static scope declaration at agent definition time. Layer two: per-step validation against the declared scope, which is cheap and deterministic. Layer three: runtime anomaly detection for drift, where classifier-based tools are useful. Layer four: containment and rollback, invoked only when the earlier layers fail.

What is the main trade-off of using contracts for agent safety?

Contracts require upfront work to declare a tool surface, egress destinations and spend envelope for every agent. They also constrain flexibility, because an agent that needs a tool outside its declared surface requires a human decision to amend the contract. The alternative is a system where every action is a judgement call.