
# وقت تشغيل WASM قائم على القدرات لتنفيذ كود غير موثوق مولّد بالذكاء الاصطناعي وقت تشغيل WASM قائم على القدرات لتنفيذ كود غير موثوق مولّد بالذكاء الاصطناعي مع فرض حدود صارمة على وحدة المعالجة المركزية (CPU)، والذاكرة، والوقت، والإدخال/الإخراج (I/O)، ونظام الملفات. يوفر تنفيذًا دافئًا بزمن استجابة أقل من ميلي ثانية، وسجلات تنفيذ موقّعة، وخادم MCP للتكامل.
تنفيذ WASM سريع قائم على الصلاحيات مع حدود صريحة لوحدة المعالجة المركزية والذاكرة والوقت والإدخال/الإخراج ونظام الملفات — تنفيذ دافئ بأقل من ميلي ثانية مع سجلات تنفيذ موقّعة.
مصمم لـ وكلاء الذكاء الاصطناعي، أدوات MCP، الإضافات، مفسّرات الكود، وأحمال العمل غير الموثوقة الأخرى.
يحتاج وكلاء الذكاء الاصطناعي بشكل متزايد إلى كتابة وتنفيذ الكود، واستدعاء الأدوات، وتشغيل الإضافات. السؤال الذي يحدد ما إذا كان ذلك آمنًا:
كيف تسمح لوكيل بتنفيذ كود غير موثوق دون منح ذلك الكود الوصول إلى مضيفك، أو بيانات اعتمادك، أو شبكتك، أو موارد حوسبة غير محدودة؟
وكيل الذكاء الاصطناعي ──▶ أداة / MCP ──▶ Ephemora Cell ──▶ WASM ──▶ نتيجة محدودة
Ephemora Cell هو بيئة تشغيل WASM صغيرة قائمة على الصلاحيات لهذه المهمة تحديدًا: بدائية تنفيذ — وليس إطار عمل للوكلاء — تقع أسفل مكدس الوكلاء الحالي لديك، أو خادم MCP، أو نظام الإضافات، أو التطبيق.
pip install ephemora-cell
# شغّل أول وحدة معزولة لديك (احصل على أمثلة المستودع، أو أحضر أي ملف .wasm):
git clone https://github.com/MichaelS1011/ephemora-cell.git
ephemora-cell run ephemora-cell/examples/hello.wasm
Hello from Ephemora Cell!
from ephemora_cell import run_wasm
result = run_wasm("my_module.wasm")
print(result.stdout) # المخرجات الملتقطة (حد أقصى 10 كيلوبايت)
print(result.status.name) # SUCCESS
print(result.elapsed_ms) # الوقت الفعلي
print(result.fuel_consumed) # الحوسبة المستخدمة فعليًا

جلسة CLI حقيقية: تثبيت، أول تشغيل، تقرير --json قابل للقراءة آليًا مع خط الأساس الأمني، ووحدة هجوم (exploit.wasm) محظورة عند طبقة استيراد WASI. تحقق من كل إطار: الأوامر تعمل كما هو موضح من استنساخ.

نفس بدائيات الهجوم الثمانية، مُقاسة مباشرة في تشغيل واحد (2026-09-02): حاوية python:3.12-slim قياسية تسمح بمرور كل واحدة منها (0/8 محظورة)، بينما يحظر حد Ephemora Cell جميعها الثمانية (8/8). أعد إنتاج العمودين:
python3 assets/demo_attack_probe.py # العمود الأيسر -> 0/8 محظورة (Docker قياسي)
python benchmarks/verify_8_vectors.py # العمود الأيمن -> 8/8 محظورة (Ephemora Cell)
الكود المُولَّد بواسطة الوكلاء يختلف عن كود التطبيقات: يمكن أن يكون معطوبًا، أو غير محدود حسابيًا، أو مكلفًا بشكل غير متوقع — أو عدائيًا. يجب أن يفرض وقت التشغيل الحدود، لا أن يوثّقها. كل تشغيل Cell يقوم بما يلي:
كل تنفيذ يعمل تحت حدود صريحة — لا أمان اختياري:
ضوابط إضافية: ميزانيات الإدخال/الإخراج (io_cpu_seconds=2.0 / io_budget_bytes=64 MiB — جدران لعمل المضيف، وليس فقط حوسبة الضيف)، ثنائية ABI (WASI Preview1 + مكونات WASI 0.2، اختيارية)، memory64 اختياري، حد أقصى معلن لكومة GC (مسجل في خط الأساس الأمني؛ يبقى الوقود هو الحد الفعلي)، حالة مسماة (64 إدخال · 256 كيلوبايت · 1 ميجابايت لكل جلسة)، ووسيط مرجعي جانبي للخروج (استدعاءات واجهة برمجة تطبيقات من جهة المضيف مُتحقق منها بقائمة السماح — docs/egress_patterns.md).
لا يتلقى الضيف سوى الصلاحيات المتاحة له صراحةً. تحقق مباشر من ثماني فئات هجوم (benchmarks/verify_8_vectors.py):
النتيجة: 8/8 ناقلات هجوم محظورة (مُتحقق منها مباشرة)؛ خطوط أساس Docker مُقاسة مباشرة لكل تشغيل — غير مكتوبة بشكل ثابت أبدًا.
هذا حد تنفيذ، وليس ادعاءً بأن برنامج الضيف جدير بالثقة. لا يقيّم Cell ما إذا كانت الوحدة خبيثة أو صحيحة — يمكن للضيف أن يسيء التصرف داخل الميزانيات الممنوحة له. مسارات التنفيذ تختلف جوهريًا: الافتراضي يشغّل الضيف داخل عمليتك؛ run_isolated() يضيف جدرانًا على مستوى نظام التشغيل (rlimits، حصة القرص، حارس CPU للإدخال/الإخراج، قتل صارم).
التفاصيل الكاملة: SECURITY.md (السياسة، مصفوفة التحكم في مسار التنفيذ، القيود المعروفة) · docs/threat-model.md (نموذج الخصم، حدود الثقة، المخاطر المتبقية) · docs/security_posture.md (تقييم arXiv 2509.11242، حد الوقود، الأبحاث ذات الصلة).
اعزل كل تنفيذ دون دفع تكاليف بدء تشغيل بحجم الحاويات.
مقارنة مباشرة للبدء البارد (2026-08-30، نفس جهاز Mac): docker run python:3.12-slim 171 مللي ثانية مقابل Cell 0.40 مللي ثانية = 427× — هذه مقارنة بدء تشغيل بارد لحاوية مقابل WASM مستدعى لعبء العمل المعياري هذا، وليست ادعاءً عامًا بأن WASM دائمًا أسرع من Docker.
أعد الإنتاج: python benchmarks/pool_vs_budget.py · python benchmarks/competitive_benchmark.py (النتائج الخام مع measured:true ملتزمة تحت benchmarks/results/). أحمال عمل الوكلاء والمزيد: docs/performance.md.
ينفّذ Cell ملف .wasm — لا يعرف لغة المصدر. بناء بأمر واحد مع تلميحات أخطاء قابلة للتنفيذ من مصفوفة الاحتكاك المُقاسة:
ephemora-cell build tool.rs # → tool.wasm → شغّله
جميع بوابات اللغات الخمس المُصرَّفة تتحقق عند كل دفع (.github/workflows/ci.yml). المنصات: macOS (Apple M5) ✅ · Ubuntu 24.04 ✅ · DGX Spark GB10 ✅
الكود المُولَّد بواسطة الذكاء الاصطناعي — شغّل أدوات ينتجها الوكيل بحدود صريحة:
result = run_wasm(
"llm_generated.wasm",
max_fuel=200_000,
timeout_seconds=5,
allow_dirs=("/input", "/output")
)
أنظمة الإضافات — اقبل إضافات يرفعها المستخدمون دون منحهم وصولًا غير مقيد إلى المضيف:
config = WASIConfig(allow_dirs=("/data",), max_fuel=500_000)
result = WASISandbox(config=config).run("user_plugin.wasm")
موثّق أيضًا: أحمال عمل serverless/edge، التحقق المعزول عن الشبكة، مكونات WASI 0.2، تكامل FastAPI — docs/recipes.md. اختبارات تكامل أطر الوكلاء (LangGraph، CrewAI، AutoGen، OpenAI Agents SDK، Semantic Kernel، Hermes، NemoClaw) موجودة في integration/.
يأتي Ephemora Cell مع خادم MCP stdio خالٍ من التبعيات تكون أدواته وحدات WASM مُنفَّذة داخل Cell — حتمية، قياس وقود، حد مخرجات، لا شبكة، سجلات تنفيذ موقّعة جاهزة لـ SEP-2787:
pip install ephemora-cell
ephemora-cell-mcp # أداة echo مدمجة مشمولة؛ سجّل أداتك الخاصة: --tools-dir ./tools
انظر docs/mcp.md و docs/comparison-mcp-servers.md.
flowchart TB
guest["وحدة ضيف WASM<br/>(معزولة)"]
subgraph sandbox["صندوق رمل WASI — عزل قائم على الصلاحيات"]
fuel["عداد الوقود<br/>~13 وقود/تكرار"]
mem["حد الذاكرة<br/>128 ميجابايت كحد أقصى"]
timeout["حارس المهلة<br/>مقاطعة قائمة على العصور"]
syscalls["WASI Preview1 — قائم على الصلاحيات،<br/>دلائل مفتوحة مسبقًا فقط<br/>fd_read · fd_write · path_open · clock_time_get<br/>proc_exit · environ_get · random_get"]
end
blocked["محظور بالتصميم:<br/>exec · fork · socket · /dev · /proc · /sys · threads"]
guest --> syscalls
fuel -.-> sandbox
mem -.-> sandbox
timeout -.-> sandbox
sandbox -.-> blockedواجهة البرمجة الأساسية بسيطة عمدًا: execute(wasm) → result. كل تنفيذ يُرجع معلومات منظمة وقابلة للتدقيق:
result.status # SUCCESS | ERROR | TIMEOUT | FUEL_EXHAUSTED | MEMORY_EXCEEDED
result.exit_code
result.stdout # حد 10 كيلوبايت
result.stderr
result.elapsed_ms
result.fuel_consumed
هذا يجعل التنفيذ مناسبًا للتدقيق وفرض السياسات ومحاسبة الموارد — وليس فقط تشغيل الكود. CLI كامل (run، --json مع security_baseline، inspect، benchmark، build، ملفات تعريف تشمل --profile analytical) في وثائق CLI و ephemora-cell --help.
Cell هو: بدائية تنفيذ WASM · طبقة عزل قائمة على الصلاحيات · بيئة تشغيل محدودة الموارد · مكتبة Python قابلة للتضمين · CLI · طبقة تنفيذ MCP.
Cell ليس: إطار عمل للوكلاء · نموذج لغة كبير · نظام توليد كود · كاشف برمجيات خبيثة · جهاز افتراضي كامل · بديل لكل عبء عمل حاويات.
الهدف ضيق: جعل التنفيذ غير الموثوق رخيصًا ومُتحكمًا فيه بما يكفي ليتمكن التطبيق من القيام به بأمان افتراضيًا.
379 اختبارًا · تغطية بيانات 85% (Cell + MCP، حد 80%) · 8/8 ناقلات هجوم محظورة · مُفرَض عبر CI عند كل دفع (اختبارات، تغطية، pip-audit، SBOM، bandit) — انظر .github/workflows/ci.yml.
SECURITY.md — السياسة الأمنية والضوابط · docs/threat-model.md — حدود الثقة · docs/security_posture.md — التحقق من سطح الهجوم · docs/performance.md — المعايير · docs/mcp.md — خادم MCP · docs/recipes.md — أنماط الاستخدام · docs/languages.md — دعم اللغات · CHANGELOG.md — التغييرات
Ephemora Cell هو طبقة العزل مفتوحة المصدر (Apache 2.0، مستقلة — لا تبعية لـ Ephemora). إصدار Ephemora للمؤسسات يبني على عزل Cell للنشر الإنتاجي والمنظَّم. Cell مكتمل للعزل؛ إصدار المؤسسات مكتمل للتشغيل — انظر docs/enterprise.md لمعرفة متى يستحق هذا النقاش.
Apache 2.0 — انظر LICENSE.
إجراء وكيل واحد. تنفيذ واحد محدود. نتيجة واحدة مُتحكم فيها.
أُنشئ بواسطة Michael Soppa.
| المورد | الافتراضي |
|---|
| ذاكرة WASM | 128 ميجابايت (Store.set_limits) |
| ميزانية الوقود / CPU | 1,000,000 (~13 وقود/تكرار، R² = 1.000) |
| مهلة الوقت الفعلي | 30 ثانية (مقاطعة قائمة على العصور) |
| stdout/stderr الملتقط | 10 كيلوبايت |
| الشبكة | معطلة — لا توجد واجهات برمجة sockets في WASI |
| نظام ملفات المضيف | مرفوض افتراضيًا؛ 14 دليلًا خطيرًا محظورًا (/dev, /proc, /sys, …) |
| تنفيذ / fork العمليات | غير متاح في WASI |
| تعدد الخيوط | معطل (wasm_threads=False) |
| فئة الهجوم | Docker | Ephemora Cell |
|---|
Shell (os.system) / fork / مقابس الشبكة | مسموح | محظور — واجهات البرمجة غير موجودة في WASI |
fsync (os.fsync) | مسموح | محظور — رفض على مستوى الاستيراد |
نظام ملفات المضيف (/etc/passwd) | مسموح | محظور — رفض افتراضي للفتح المسبق |
| هروب الروابط الرمزية | مسموح | محظور — فلتر الدلائل الخطيرة |
| تعدد الخيوط | مسموح | محظور — wasm_threads=False |
| الوصول إلى البيئة | مسموح | محظور — مُتحكم فيه عبر allow_env |
السيناريو (n=1000، hello.wasm، Mac M5، wasmtime 47.0.1) | الوسيط الفعلي | الفعلي p95 | وسيط الضيف |
|---|
محرك مُجمَّع (io_budget_bytes=None، تشغيلات موثوقة) | 0.46 مللي ثانية | 0.60 مللي ثانية | 0.16 مللي ثانية |
المسار الافتراضي (io_budget_bytes=64 MiB، محرك لكل تشغيل) | 0.92 مللي ثانية | 1.26 مللي ثانية | 0.60 مللي ثانية |
| اللغة | المُصرِّف | مُتحقق منه |
|---|
| Rust | cargo build --target wasm32-wasip1 | ✅ مُصرَّف + مُنفَّذ (CI) |
| Go | GOOS=wasip1 GOARCH=wasm go build | ✅ مُصرَّف + مُنفَّذ (CI) |
| C | wasi-sdk clang --target=wasm32-wasip1 | ✅ مُصرَّف + مُنفَّذ (CI) |
| AssemblyScript | asc --runtime stub | ✅ مُصرَّف + مُنفَّذ (CI) |
| Zig | zig build-exe -target wasm32-wasi | ✅ مُصرَّف + مُنفَّذ (CI) |
| Python | — | إرشاد: شغّله على مفسّر wasi-python (لا يوجد AOT) |