
صندوق حماية WASM مع تطبيق للصلاحيات لرمز وكيل الذكاء الاصطناعي. يمكن للوكلاء فقط استدعاء الأدوات المقدمة صراحة مع قيود محددة. نظام ملفات افتراضي محمي، لا شبكة، لا هروب من الصدفة. ملف ثنائي واحد، لا حاجة لـ Docker أو VM.
هذا المستودع هو مصدر الإصدار لحزمة بايثون amla-sandbox. يتم التطوير في مستودع amlalabs الأحادي؛ يتم تحديث هذا المستودع عند الإصدار. وقت تشغيل Rust الذي يتم ترجمته إلى amla_sandbox.wasm موجود في amla-sandbox-core؛ يتم تسجيل علامة الإصدار الدقيقة التي تم بناء حزمة بايثون هذه عليها في .mirror-deps.json.
amla-sandbox هو صندوق رمل WASM مع فرض القدرات لكود وكلاء الذكاء الاصطناعي. يمكن للوكلاء فقط استدعاء الأدوات التي توفرها صراحةً، مع قيود تحددها. نظام ملفات افتراضي معزول. لا اتصال بالشبكة. لا هروب من الصدفة.
pip install amla-sandbox
لا حاجة لـ Docker. ولا لـ VM. ملف ثنائي واحد، يعمل في كل مكان.
from amla_sandbox import create_sandbox_tool
sandbox = create_sandbox_tool()
# JavaScript
sandbox.run("console.log('hello'.toUpperCase())", language="javascript")
# Shell
sandbox.run("echo 'hello' | tr 'a-z' 'A-Z'", language="shell")
# مع الأدوات
def get_weather(city: str) -> dict:
return {"city": city, "temp": 72}
sandbox = create_sandbox_tool(tools=[get_weather])
sandbox.run(
"const w = await get_weather({city: 'SF'}); console.log(w);",
language="javascript",
)
مع قيود القدرات:
from amla_sandbox import Sandbox, ToolCallCap, ConstraintSet, Param
sandbox = Sandbox(
capabilities=[
ToolCallCap(
method_pattern="stripe/charges/*",
constraints=ConstraintSet([
Param("amount") <= 10000,
Param("currency").is_in(["USD", "EUR"]),
]),
max_calls=100,
),
],
tool_handler=my_handler,
)
راجع صفحة PyPI ودليل examples/ للحصول على واجهة API الكاملة، وتكاملات الأطر، ونظام DSL للقيود.
يعمل الصندوق الرملي داخل WebAssembly مع WASI لتوفير سطح استدعاءات نظام ضئيل. فوق عزل WASM، يمر كل استدعاء أداة عبر التحقق من القدرات؛ يتم منح الوصول صراحةً، وليس ضمنيًا. راجع البداية السريعة أعلاه وملف README الخاص بـ PyPI للحصول على الشرح الكامل والمقايضات.
بالنسبة لمعظم المستخدمين، يُوصى بالتثبيت من PyPI؛ تشمل العجلة (wheel) الثنائي WASM المُعد مسبقًا. إذا كنت ترغب في بناء العجلة بنفسك:
uv build
لإعادة توليد الأثر WASM المضمن داخل العجلة، قم ببنائه من amla-sandbox-core عند العلامة المثبتة في .mirror-deps.json، ثم ضع النتيجة في src/amla_sandbox/_wasm/amla_sandbox.wasm قبل تشغيل uv build.
راجع CONTRIBUTING.md. سيتم مسح طلبات السحب ضد هذه المرآة في الإصدار التالي؛ يُرجى توجيهها إلى المستودع الأحادي أو فتح مشكلة هنا.
كود حزمة بايثون مرخص بموجب MIT. وقت تشغيل Rust WASM المضمن مرخص بموجب AGPL-3.0-or-later أو BUSL-1.1.