
وكيل Sandbox وMCP يحجب وكلاء البرمجة بالذكاء الاصطناعي من قراءة مفاتيح SSH وبيانات اعتماد AWS وملفات .env، مع سياسة الرفض افتراضيًا وسجلات تدقيق مقاومة للتلاعب.
صندوق العزل (sandbox) الخاص بـ Claude Code يتيح للوكيل قراءة مفاتيح SSH وبيانات اعتماد AWS افتراضيًا. أما Aegis فلا يفعل ذلك.
طبقتان، كلتاهما مُتحقَّق منهما على عتاد حقيقي.
صندوق عزل النواة (Kernel sandbox) — لا تستطيع صدفة الوكيل نفسها الوصول إلى مسار محظور:
$ ! cat ~/.ssh/id_rsa
cat: /Users/you/.ssh/id_rsa: Operation not permitted
$ ! cat ~/.aws/credentials
cat: /Users/you/.aws/credentials: Operation not permitted
$ tail ~/Library/Application\ Support/Aegis/denials.log
kernel denied file-read-data /Users/you/.ssh/id_rsa to cat(pid 41560)
kernel denied file-read-data /Users/you/.aws/credentials to cat(pid 42180)
وكيل MCP — الأداة نفسها، والملف نفسه، مع Aegis وأمامه وبدونه:
direct to the server: allowed: TOKEN=proof-env-secret
through aegis proxy: AEGIS DENIED: read_text_file
Reason: path matches deny rule '.env'
Rule: deny_paths
كل سطر مدعوم باختبار جرى تشغيله على هذا الإصدار؛ وحيثما لم يُختبر شيء بعد، يُذكر ذلك صراحةً.
aegis workspace add / remove / list — يغيّر المجلدات التي يجوز للوكيل العمل فيها دون تحرير policy.json. تتطلب الإضافة دائمًا --confirm-grant؛ أما الإزالة فلا تتطلبها أبدًا. يرفض add مجلدك الرئيسي، وأي شيء يحتوي على ملفات Aegis الخاصة، ومسارًا يحتوي على ..، ومجلدًا غير موجود، ورابطًا رمزيًا موجودًا داخل مساحة عمل، ومساحة عمل داخل أخرى أو حولها. يُسجَّل كل تغيير في سجل التدقيق ويُعيد توليد ملف تعريف العزل. تحتفظ الجلسة قيد التشغيل بالفعل بمساحات العمل التي بدأت بها — بما في ذلك مساحة عمل أزلتها للتو — مقيسةً مقابل جلسة معزولة حيّة.aegis policy set-folder، مما يمنح الوصول إلى حيث يشير الرابط؛ وكانت مساحة عمل أُنشئت داخل أخرى يمكن لاحقًا استبدالها برابط رمزي وتتبَّعها عند التشغيل التالي. أُعيد إنتاج كلتيهما على 0.8.1، وهما الآن اختبارا انحدار دائمين ثبت فشلهما هناك.policy.json. كان المسار النسبي يُحلّ نسبةً إلى المجلد الذي بدأ منه Aegis، لذا كان بإمكان aegis run ومغلّف التشغيل فرض بيئتي عزل مختلفتين من سياسة واحدة (مقيس: بصمات ملف تعريف مختلفة). يجب أن تكون المسارات مطلقة أو تبدأ بـ ~/.aegis doctor يُبلّغ عن عدم تطابق بين تحرير والتشغيل التالي.aegis run وaegis doctor مسار Claude Code الحقيقي — مقروءًا من المغلّف الذي كتبه Aegis — و/login، للتشغيل خارج بيئة العزل. غير مُصلَح: لا يزال الرمز المُبطَل أو المنتهي الصلاحية يُقرأ كمسجَّل الدخول حتى تفشل أول رسالة (فلا تُبلّغ حالة Claude Code عن أي انتهاء صلاحية)، ولا يزال تسجيل الدخول مستحيلًا داخل بيئة العزل؛ إذ يتطلب ذلك وسيط بيانات اعتماد غير موجود بعد.aegis init يحمي مستخدمًا جديدًا لم يسجّل الدخول بعد. اكتُشف ذلك باتباع الدليل الإرشادي في بيئة نظيفة: في 0.8.1، تُرك Claude Code الذي لم يسجّل الدخول قط دون تغليف افتراضيًا، خلف سؤال لم تذكره الوثائق قط، فبقي claude خارج بيئة العزل. الآن، بمجرد موافقتك على العزل، يُغلَّف، مع تحذير صريح بتسجيل الدخول مرة واحدة خارج بيئة العزل (مسار Claude Code الحقيقي، ثم /login)؛ وتضع الخطوات الختامية لـ aegis init ذلك أولًا، ويفشل aegis doctor حتى تفعل ذلك. أصلح التشغيل نفسه أيضًا نصّ الافتتاح والختام في init، ووحّد تعليمات تسجيل الدخول في aegis init وaegis run وaegis doctor، وأوقف طباعة تغيير بلا أثر لـ nothing to change (nothing to change).لم يُختبر بعد في 0.9.0: Linux؛ وعملاء غير Claude Code؛ وتدفق /login من البداية إلى النهاية؛ وتطبيق سطح مكتب مُعاد بناؤه.
يقف بين وكيل البرمجة بالذكاء الاصطناعي وجهازك:
cat .env تجاوزهaegis doctor، ويُنقَّط
من خارج بيئة العزل بمفتاح لا تستطيع بيئة العزل قراءته أو الكتابة فيهجديد هنا؟ docs/getting-started.md هو المسار خطوة بخطوة، بما في ذلك السؤالان اللذان افتراضهما "لا".
هل اتبعت تعليمات سابقة قالت aegis-mcp؟ تلك الحزمة ليست Aegis — إنها مشروع غير مرتبط
مثبَّت تحت اسم الاستيراد نفسه، aegis. أزلها أولًا:
python3 -m pip uninstall aegis-mcp
إذا كانت aegis-sandbox مثبَّتة بالفعل، فإن إزالة التثبيت تلك تحذف أيضًا اثنين من ملفاتها، لذا أعد تثبيتها
بعد ذلك: python3 -m pip install --force-reinstall aegis-sandbox.
python3 -m pip install aegis-sandbox
aegis init # detects Claude Code / Cursor, asks a few questions
aegis doctor # proves the boundary is actually in place
هل تقوم بالترقية؟ أعد تشغيل aegis init. ملف policy.json ملكك ولا يُعاد كتابته من خلف ظهرك أبدًا، لذا فإن
نطاق sandbox جديد لا يظهر من تلقاء نفسه — وبدون نقطة نهاية رمز OAuth يتوقف العميل المعزول
عن العمل عند انتهاء صلاحية رمزه. يعرض aegis init المضيفين الجدد؛ والقبول بضغطة مفتاح واحدة.
aegis init؛ يفشل aegis doctor إذا لم يكن العميل المُغلَّف مسجّل الدخولنموذج التهديد الكامل: THREAT-MODEL.md
MIT