إنشاء SPACE: أوقات تشغيل آمنة وفعالة للوكلاء طويلي الأجل

SPACE هي منصة Sandbox الآمنة والفعالة من Perplexity التي تدعم سير العمل الوكيلية طويلة الأجل وتنفيذ التعليمات البرمجية السريع والمعزول.

المؤلفونPerplexity Engineering

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

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

تأتي التحديات الرئيسية في هندسة Sandbox من التوتر الذي ينشأ غالباً بين الأمان، والوظائف، والكفاءة. على سبيل المثال:

يسمح منح وصول أوسع لوكيل بإنجاز المزيد ولكنه يعرض المزيد من النظام لعبء عمل لا تثق به.

مشاركة المزيد بين بيئات Sandbox تجعل الإنشاء أسرع ولكنها تزيد من سطح الهجوم.

التقاط لقطات بشكل متكرر يحسن الاستعادة ويمكن ميزات مثل التراجع ولكنه يتطلب وقتاً ومساحة تخزين.

بيئات Sandbox للوكلاء، مثل تلك المطلوبة لتنفيذ الكود، أو استخدام Agent Skills، أو تنفيذ خطوط أنابيب Search as Code في استعلامات الكمبيوتر، تتطلب الثلاثة جميعاً. لقد عملنا بجد على مدار الأشهر القليلة الماضية لهندسة الجيل القادم من البنية التحتية للوكلاء التي تشغل منتجاتنا. اليوم نقدم SPACE (Sandboxed Platform for Agentic Code Execution): منصة Sandbox مصممة لسير العمل الوكيلية التي تتميز بالأمان، والموثوقية، والكفاءة على نطاق واسع. في الشهر الماضي، بدأنا طرح SPACE كطبقة Sandbox التي تشغل Perplexity Computer. على مدار الأسبوع الماضي، قامت بدعم الملايين من عمليات إنشاء Sandbox بشكل آمن وعشرات الملايين من عمليات إعادة الاتصال، مع أوقات تشغيل أسرع بـ 3-5 مرات من حلنا السابق.

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

الهندسة المعمارية

على مستوى عالٍ، يتم تنظيم النظام في ثلاث طبقات.

طائرة التحكم هي دماغ النظام، حيث تقرر ما يجب أن يوجد وأين. وهي تتكون من بوابة واجهة برمجة التطبيقات وحدات إدارة الحالة على مستوى الكتلة.

الخدمات المحلية للعقدة هي الآليات المحلية المطلوبة لتنفيذ خطة طائرة التحكم. فهي تمتلك دورة حياة Sandbox، والتخزين، والشبكات، والعمليات المميزة وراءها.

بيئة Sandbox هي بيئة التنفيذ المعزولة بحد ذاتها. يتم تنفيذها كجهاز افتراضي مقترن بـ space-daemon: عملية خلفية داخل الضيف تتولى وساطة ملفات النظام والعمليات والوصول إلى الشبكة لعمل عبء العمل.

تنقسم هندسة SPACE إلى ثلاث طبقات: طائرة التحكم عديمة الحالة؛ والخدمات المحلية للعقدة التي تدير دورة حياة Sandbox والتخزين وبوابات الأمان؛ وبيئة Sandbox نفسها.

طائرة التحكم

بوابة واجهة برمجة التطبيقات هي نقطة الدخول. يتم مصادقة الطلبات الواردة وتخويلها، ثم ترجمتها إلى سجلات للحالة المطلوبة.

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

الخدمات المحلية للعقدة

تقوم الخدمات المحلية للعقدة بالعمل الفعلي لإعداد القوالب، وبدء بيئات Sandbox، وربط الشبكات، وتشغيل خدمات وقت التشغيل على جانب المضيف. تشغيل كل عقدة مجموعة صغيرة من العمليات الخلفية التي تدير كل Sandbox موضوع عليها، وتكون العقدة هي مصدر الحقيقة لتلك الحالات الحية لـ Sandbox.

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

Sandbox

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

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

الركائز الثلاث: الأمان، والوظائف، والكفاءة

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

الأمان: حماية البيانات والأنظمة

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

تفرض SPACE أماناً طبقياً من خلال الجمع بين عزل الجهاز الافتراضي والمضيف مع قنوات الاتصال الخاضعة للرقابة الصارمة، وإدارة بيانات الاعتماد، والتشفير.

تتخذ SPACE نهجاً طبقياً لضمان الأمان لبيئات Sandbox. يحتوي عزل Sandbox على عنصرين، عزل الجهاز الافتراضي وعزل عملية نظام تشغيل المضيف. يجب اختراق كلاهما للوصول عبر بيئات Sandbox. يتم التحكم في الاتصال بـ Sandbox بصارمة؛ يمكن للعمليات التواصل فقط من خلال قنوات مخصصة. تجبر بوابة الشبكة كل حركة المرور على الخروج من خلالها. برنامج space daemon هو القناة المصرح بها الوحيدة بين (غير الموثوق بها) Sandbox و(الموثوق بها) المنصة.

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

البيانات محمية في وضع الخمول. تدعم SPACE خيار BYOK (أحضر مفتاحك الخاص) لحماية البيانات المخزنة خارجياً. تأتي مفاتيح التشفير من خدمة إدارة المفاتيح الخاصة بالعميل ولا تدخل أبداً إلى Sandbox. إذا قامت المؤسسة بإلغاء المفتاح، تصبح بياناتهم غير قابلة للقراءة.

الوظائف: تشغيل سير العمل الوكيلية

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

تدعم SPACE كل ما سبق. وهي تصمم دورة حياة Sandbox الكاملة كآلة حالة صريحة، وهو ما يجعل عمليات مثل الإنشاء، والإيقاف المؤقت، والاستئناف، والتعليق، والاستعادة ممكنة.

تتيح هذه المجموعة الفرعية الأساسية من حالات Sandbox وتحولات الحالة دعماً غنياً لدورة الحياة.

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

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

الكفاءة: تحسين الوقت والمساحة

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

خيار تصميم رئيسي يجعل هذا ممكناً: نظام الملفات. تستخدم SPACE نظام الملفات btrfs كتخزين Sandbox على العقدة. يجمع Btrfs (نظام ملفات B-tree) بين نظام ملفات النسخ عند الكتابة وإدارة وحدة التخزين المنطقية المتكاملة. هذا له عدد من الفوائد:

نسخ Reflink سريعة، نظراً لمشاركتك الامتدادات الأساسية، بحيث يلزم فقط نسخ بيانات التعريف.

اللقطات ذرية وسريعة، نظراً لإنشاء جذر جديد فقط.

مطلوبة مساحة تخزين ضئيلة، نظراً لتخزين ما تغير فقط.

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

النتيجة هي وقت تشغيل Sandbox يكون قوياً، وخفيف الوزن، وسريعاً للغاية في نفس الوقت. عندما قمنا بطرح SPACE، قمنا بتشغيله جنبًا إلى جنب مع مزود Sandbox السابق على نفس حركة مرور الإنتاج. عبر أسبوع الإطلاق، أنشأت SPACE بيئات Sandbox بشكل أسرع بثلاث إلى خمس مرات عبر التوزيع. على وجه التحديد، انخفض متوسط زمن الاستجابة للإنشاء من 185 مللي ثانية إلى 60 مللي ثانية (تحسن بـ 3.1 أضعاف)، وانخفض زمن الاستجابة في النسبة المئوية التسعين من 447 مللي ثانية إلى 89 مللي ثانية (تحسن بـ 5.0 أضعاف). لاحظنا تحسينات مماثلة في حجم الحجم عبر مؤشرات الأداء واستخدام الموارد الأخرى.

في مقارنة مباشرة، يكون زمن استجابة الإنشاء لبيئات SPACE Sandbox أسرع بـ 5 مرات مقارنة بحل Sandbox السابق.

كما أنه يسهل أخذ لقطات قرص متدحرجة، نظراً لأنها سريعة، وفعالة من حيث المساحة، ولا تتطلب إيقاف Sandbox مؤقتاً. وأيضاً، يقلل تخزين الدلتا الفعال من المساحة اللازمة لتخزين هذه اللقطات.

الخاتمة

عند تصميم أنظمة معقدة، يكون من المغري اختيار هدف واحد لتحسينه بمعزل. لكن مطوري الوكلاء الحدوديين يطالبون بالأمان، والوظائف، والكفاءة بقدر متساويه. مع SPACE، شرعنا في تحقيق تحسن Pareto عبر الركائز الثلاث.

يمكن لكل خيار تصميم فردي خدمة أهداف متعددة في نفس الوقت، مما يجعل هذا التوازن الدقيق ممكناً. تمنح الأجهزة الافتراضية لكل Sandbox نواتها الخاصة، مما يعزز الأمان من خلال العزل القوي مع توفير حد نقطة التحقق النظيف الذي تعتمد عليه اللقطات. يمكن Btrfs التنفيذ الفعال لأخذ اللقطات، والتفرع، والعمليات الأخرى الأساسية لأوقات تشغيل الوكلاء. يحافظ برنامج space daemon على جميع تفاعلات الضيف على مسار متحكم به على جانب المضيف، ويغلق حدود الضيف والمضيف بينما يحافظ على حرية مناورة الوكلاء. تقوم بوابة الشبكة المركزية بالتوسط في الخروج وحقن بيانات الاعتماد دون تعريض الأسرار للضيف أبداً.

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

اليوم، تشغل SPACE بالفعل ملايين جلسات Perplexity Computer. نعتزم أن تكون SPACE بمثابة طبقة موحدة لتوفير والتحكم في بيئات Sandbox في أي إعداد: من الأجهزة الافتراضية الدقيقة لنظام Linux إلى ضيوف Windows وصولاً إلى الجهاز المحلي للمستخدم الخاص. نحن نعمل بجد على دفع SPACE إلى هذه الإعدادات الجديدة، بحيث يمكن للمطورين شحن منتجات الذكاء الاصطناعي التي تعمل في كل مكان يعمل فيه المستخدمون.

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