
Fähigkeitsbasiertes WASM-Laufzeitsystem zur Ausführung von unvertrautem, KI-generiertem Code mit erzwungenen CPU-, Speicher-, Zeit-, I/O- und Dateisystemgrenzen. Bietet Warmausführung in unter einer Millisekunde, signierte Ausführungsprotokolle und einen MCP-Server zur Integration.
Schnelle, fähigkeitsbasierte WASM-Ausführung mit expliziten CPU-, Speicher-, Zeit-, I/O- und Dateisystemgrenzen — Sub-Millisekunden-Warmausführung mit signierten Ausführungsprotokollen.
Entwickelt für KI-Agenten, MCP-Tools, Plugins, Code-Interpreter und andere nicht vertrauenswürdige Workloads.
KI-Agenten müssen zunehmend Code schreiben und ausführen, Tools aufrufen und Plugins betreiben. Die Frage, die darüber entscheidet, ob das sicher ist:
Wie lässt man einen Agenten nicht vertrauenswürdigen Code ausführen, ohne diesem Code Zugriff auf Ihren Host, Ihre Anmeldedaten, Ihr Netzwerk oder unbegrenzte Rechenleistung zu gewähren?
KI-Agent ──▶ Tool / MCP ──▶ Ephemora Cell ──▶ WASM ──▶ begrenztes Ergebnis
Ephemora Cell ist eine kleine, fähigkeitsbasierte WASM-Ausführungslaufzeitumgebung genau für diese Aufgabe: eine Ausführungsprimitive — kein Agenten-Framework — die unter Ihrem bestehenden Agenten-Stack, MCP-Server, Plugin-System oder Ihrer Anwendung sitzt.
pip install ephemora-cell
# Führen Sie Ihr erstes isoliertes Modul aus (Beispiele aus dem Repo holen oder beliebige .wasm mitbringen):
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) # erfasste Ausgabe (10-KB-Limit)
print(result.status.name) # SUCCESS
print(result.elapsed_ms) # Wanduhrzeit
print(result.fuel_consumed) # tatsächlich verbrauchte Rechenleistung

Echte CLI-Sitzung: Installation, erste Ausführung, maschinenlesbarer --json-Bericht mit der Sicherheitsbasislinie und ein Angriffsmodul (exploit.wasm), das auf der WASI-Importebene blockiert wird. Überprüfen Sie jeden Frame: Die Befehle laufen wie gezeigt aus einem Klon.

Dieselben acht Angriffsprimitive, live in einem Durchlauf gemessen (2026-09-02): Ein Standard-python:3.12-slim-Container lässt alle durch (0/8 blockiert), die Ephemora-Cell-Grenze blockiert alle acht (8/8). Reproduzieren Sie beide Spalten:
python3 assets/demo_attack_probe.py # linke Spalte -> 0/8 blockiert (Standard-Docker)
python benchmarks/verify_8_vectors.py # rechte Spalte -> 8/8 blockiert (Ephemora Cell)
Agenten-generierter Code unterscheidet sich von Anwendungscode: Er kann fehlerhaft, rechnerisch unbegrenzt, unerwartet teuer — oder feindselig sein. Die Laufzeitumgebung muss Grenzen durchsetzen, nicht nur dokumentieren. Jeder Cell-Lauf tut Folgendes:
Jede Ausführung läuft unter expliziten Limits — keine Opt-in-Sicherheit:
Zusätzliche Kontrollen: I/O-Budgets (io_cpu_seconds=2.0 / io_budget_bytes=64 MiB — Grenzen für Host-Arbeit, nicht nur Gast-Rechenleistung), Dual-ABI (WASI Preview1 + WASI-0.2-Komponenten, Opt-in), memory64-Opt-in, deklariertes GC-Heap-Limit (in der Sicherheitsbasislinie erfasst; Treibstoff bleibt die effektive Grenze), benannter Zustand (64 Einträge · 256 KiB · 1 MiB pro Sitzung) und ein Egress-Sidecar-Referenzvermittler (allowlist-validierte hostseitige API-Aufrufe — docs/egress_patterns.md).
Der Gast erhält nur die Fähigkeiten, die ihm explizit zur Verfügung gestellt werden. Live-Verifizierung von acht Angriffsklassen (benchmarks/verify_8_vectors.py):
Ergebnis: 8/8 Angriffsvektoren blockiert (live-verifiziert); Docker-Basislinien werden pro Lauf live gemessen — niemals fest codiert.
Dies ist eine Ausführungsgrenze, keine Behauptung, dass Gastsoftware vertrauenswürdig ist. Cell bewertet nicht, ob ein Modul bösartig oder korrekt ist — ein Gast kann sich innerhalb der ihm zugewiesenen Budgets weiterhin fehlverhalten. Die Ausführungspfade unterscheiden sich materiell: Der Standardpfad führt den Gast in Ihrem Prozess aus; run_isolated() fügt OS-Ebenen-Grenzen hinzu (rlimits, Festplattenkontingent, I/O-CPU-Watchdog, harter Kill).
Vollständige Details: SECURITY.md (Richtlinie, Kontrollmatrix der Ausführungspfade, bekannte Einschränkungen) · docs/threat-model.md (Angreifermodell, Vertrauensgrenzen, Restrisiken) · docs/security_posture.md (arXiv-2509.11242-Bewertung, Treibstoffgrenze, verwandte Forschung).
Sandboxen Sie jede Ausführung, ohne Container-Startkosten zu zahlen.
Live-Kaltstart-Vergleich (2026-08-30, gleicher Mac): docker run python:3.12-slim 171 ms vs. Cell 0,40 ms = 427× — dies ist ein Vergleich von Container-Kaltstart vs. aufgerufenem WASM für diese Benchmark-Workload, keine allgemeine Behauptung, dass WASM immer schneller als Docker ist.
Reproduzieren: python benchmarks/pool_vs_budget.py · python benchmarks/competitive_benchmark.py (Rohdaten mit measured:true unter benchmarks/results/ eingecheckt). Agentische Workloads und mehr: docs/performance.md.
Cell führt die .wasm aus — es kennt die Quellsprache nicht. Ein-Befehl-Build mit umsetzbaren Fehlerhinweisen aus der gemessenen Reibungsmatrix:
ephemora-cell build tool.rs # → tool.wasm → ausführen
Alle fünf kompilierten Sprach-Gates werden bei jedem Push verifiziert (.github/workflows/ci.yml). Plattformen: macOS (Apple M5) ✅ · Ubuntu 24.04 ✅ · DGX Spark GB10 ✅
KI-generierter Code — führen Sie agentenproduzierte Tools mit expliziten Limits aus:
result = run_wasm(
"llm_generated.wasm",
max_fuel=200_000,
timeout_seconds=5,
allow_dirs=("/input", "/output")
)
Plugin-Systeme — akzeptieren Sie benutzerhochgeladene Plugins, ohne ihnen uneingeschränkten Host-Zugriff zu gewähren:
config = WASIConfig(allow_dirs=("/data",), max_fuel=500_000)
result = WASISandbox(config=config).run("user_plugin.wasm")
Ebenfalls dokumentiert: Serverless-/Edge-Workloads, Air-Gapped-Validierung, WASI-0.2-Komponenten, FastAPI-Integration — docs/recipes.md. Agenten-Framework-Integrationstests (LangGraph, CrewAI, AutoGen, OpenAI Agents SDK, Semantic Kernel, Hermes, NemoClaw) befinden sich in integration/.
Ephemora Cell liefert einen abhängigkeitsfreien MCP-stdio-Server, dessen Tools WASM-Module sind, die innerhalb der Cell ausgeführt werden — Determinsmus, Treibstoffmessung, Ausgabelimit, kein Netzwerk, SEP-2787-bereite signierte Ausführungsprotokolle:
pip install ephemora-cell
ephemora-cell-mcp # gebündeltes Echo-Tool enthalten; eigene registrieren: --tools-dir ./tools
Siehe docs/mcp.md und docs/comparison-mcp-servers.md.
flowchart TB
guest["Guest WASM Module<br/>(isolated)"]
subgraph sandbox["WASI Sandbox — capability-based isolation"]
fuel["Fuel Meter<br/>~13 fuel/iteration"]
mem["Memory Limit<br/>128 MB max"]
timeout["Timeout Guard<br/>epoch interruption"]
syscalls["WASI Preview1 — capability-based,<br/>preopened dirs only<br/>fd_read · fd_write · path_open · clock_time_get<br/>proc_exit · environ_get · random_get"]
end
blocked["Blocked by design:<br/>exec · fork · socket · /dev · /proc · /sys · threads"]
guest --> syscalls
fuel -.-> sandbox
mem -.-> sandbox
timeout -.-> sandbox
sandbox -.-> blockedDie primäre API ist bewusst einfach: execute(wasm) → result. Jede Ausführung liefert strukturierte, prüfbare Informationen:
result.status # SUCCESS | ERROR | TIMEOUT | FUEL_EXHAUSTED | MEMORY_EXCEEDED
result.exit_code
result.stdout # 10-KB-Limit
result.stderr
result.elapsed_ms
result.fuel_consumed
Das macht die Ausführung für Auditing, Richtliniendurchsetzung und Ressourcenabrechnung geeignet — nicht nur zum Ausführen von Code. Vollständige CLI (run, --json mit security_baseline, inspect, benchmark, build, Profile inkl. --profile analytical) in der CLI-Dokumentation und ephemora-cell --help.
Cell ist: eine WASM-Ausführungsprimitive · eine fähigkeitsbasierte Isolationsschicht · eine ressourcenbegrenzte Laufzeitumgebung · eine einbettbare Python-Bibliothek · eine CLI · eine MCP-Ausführungsebene.
Cell ist nicht: ein Agenten-Framework · ein LLM · ein Codegenerierungssystem · ein Malware-Detektor · eine vollständige VM · ein Ersatz für jede Container-Workload.
Das Ziel ist eng gefasst: nicht vertrauenswürdige Ausführung billig genug und kontrolliert genug machen, dass eine Anwendung sie sicher standardmäßig durchführen kann.
379 Tests · 85 % Anweisungsabdeckung (Cell + MCP, Gate 80 %) · 8/8 Angriffsvektoren blockiert · CI-erzwungen bei jedem Push (Tests, Abdeckung, pip-audit, SBOM, bandit) — siehe .github/workflows/ci.yml.
SECURITY.md — Sicherheitsrichtlinie und -kontrollen · docs/threat-model.md — Vertrauensgrenzen · docs/security_posture.md — Angriffsflächen-Verifizierung · docs/performance.md — Benchmarks · docs/mcp.md — MCP-Server · docs/recipes.md — Nutzungsmuster · docs/languages.md — Sprachunterstützung · CHANGELOG.md — Änderungen
Ephemora Cell ist die Open-Source-Isolationsschicht (Apache 2.0, eigenständig — keine Ephemora-Abhängigkeit). Die Ephemora-Enterprise-Edition baut auf Cells Isolation für Produktions- und regulierte Bereitstellungen auf. Cell ist für Isolation vollständig; die Enterprise-Edition ist für den Betrieb vollständig — siehe docs/enterprise.md, wenn dieses Gespräch sich lohnt.
Apache 2.0 — Siehe LICENSE.
Eine Agentenaktion. Eine begrenzte Ausführung. Ein kontrolliertes Ergebnis.
Erstellt von Michael Soppa.
| Ressource | Standard |
|---|
| WASM-Speicher | 128 MB (Store.set_limits) |
| Treibstoff-/CPU-Budget | 1.000.000 (~13 Treibstoff/Iteration, R² = 1.000) |
| Wanduhrzeit-Timeout | 30 s (Epochen-Unterbrechung) |
| Erfasste stdout/stderr | 10 KB |
| Netzwerk | deaktiviert — keine Socket-APIs in WASI |
| Host-Dateisystem | standardmäßig verweigert; 14 gefährliche Verzeichnisse blockiert (/dev, /proc, /sys, …) |
| Prozess-Exec / Fork | in WASI nicht verfügbar |
| Threading | deaktiviert (wasm_threads=False) |
| Angriffsklasse | Docker | Ephemora Cell |
|---|
Shell (os.system) / Fork / Netzwerk-Sockets | ERLAUBT | BLOCKIERT — APIs existieren in WASI nicht |
fsync (os.fsync) | ERLAUBT | BLOCKIERT — Ablehnung auf Importebene |
Host-Dateisystem (/etc/passwd) | ERLAUBT | BLOCKIERT — Preopen-Standard-Verweigerung |
| Symlink-Escape | ERLAUBT | BLOCKIERT — Filter für gefährliche Verzeichnisse |
| Multithreading | ERLAUBT | BLOCKIERT — wasm_threads=False |
| Umgebungszugriff | ERLAUBT | BLOCKIERT — gesteuert über allow_env |
Szenario (n=1000, hello.wasm, Mac M5, wasmtime 47.0.1) | Wand-Median | Wand-p95 | Gast-Median |
|---|
Gepoolte Engine (io_budget_bytes=None, vertrauenswürdige Läufe) | 0,46 ms | 0,60 ms | 0,16 ms |
Standardpfad (io_budget_bytes=64 MiB, Engine pro Lauf) | 0,92 ms | 1,26 ms | 0,60 ms |
| Sprache | Compiler | Verifiziert |
|---|
| Rust | cargo build --target wasm32-wasip1 | ✅ Kompiliert + ausgeführt (CI) |
| Go | GOOS=wasip1 GOARCH=wasm go build | ✅ Kompiliert + ausgeführt (CI) |
| C | wasi-sdk clang --target=wasm32-wasip1 | ✅ Kompiliert + ausgeführt (CI) |
| AssemblyScript | asc --runtime stub | ✅ Kompiliert + ausgeführt (CI) |
| Zig | zig build-exe -target wasm32-wasi | ✅ Kompiliert + ausgeführt (CI) |
| Python | — | Anleitung: auf einem wasi-python-Interpreter ausführen (kein AOT vorhanden) |