
WASM-Sandbox mit Durchsetzung von Berechtigungen für KI-Agenten-Code. Agenten können nur explizit bereitgestellte Tools mit definierten Einschränkungen aufrufen. Sandbox-basiertes virtuelles Dateisystem, kein Netzwerk, kein Shell-Escape. Ein einzelnes Binary, kein Docker oder VM erforderlich.
Dieses Repository ist die Veröffentlichungsquelle für das Python-Paket amla-sandbox. Die Entwicklung findet im amlalabs Monorepo statt; dieses Repository wird bei einer Veröffentlichung aktualisiert. Die Rust-Laufzeit, die zu amla_sandbox.wasm kompiliert, befindet sich in amla-sandbox-core; der genaue Release-Tag, gegen den dieses Python-Paket erstellt wurde, ist in .mirror-deps.json festgehalten.
amla-sandbox ist eine WASM-Sandbox mit Capability-Erzwingung für KI-Agenten-Code. Agenten können nur Tools aufrufen, die Sie explizit bereitstellen, mit von Ihnen definierten Einschränkungen. Sandboxed virtuelles Dateisystem. Kein Netzwerk. Kein Shell-Escape.
pip install amla-sandbox
Kein Docker. Keine VM. Eine Binärdatei, funktioniert überall.
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")
# With tools
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",
)
Mit Capability-Einschränkungen:
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,
)
Siehe die PyPI-Seite und das examples/-Verzeichnis für die vollständige API-Oberfläche, Framework-Integrationen und die Constraint-DSL.
Die Sandbox läuft in WebAssembly mit WASI für eine minimale Syscall-Oberfläche. Zusätzlich zur WASM-Isolation durchläuft jeder Tool-Aufruf eine Capability-Validierung; der Zugriff wird explizit gewährt, nicht implizit verfügbar. Siehe den Schnellstart oben und die Upstream-PyPI-README für die vollständige Erklärung und Kompromisse.
Für die meisten Benutzer wird die Installation über PyPI empfohlen; das Wheel enthält die vorgebaute WASM-Binärdatei. Wenn Sie das Wheel selbst erstellen möchten:
uv build
Um das im Wheel gebündelte WASM-Artefakt neu zu generieren, erstellen Sie es aus amla-sandbox-core mit dem in .mirror-deps.json festgelegten Tag, und legen Sie das Ergebnis unter src/amla_sandbox/_wasm/amla_sandbox.wasm ab, bevor Sie uv build ausführen.
Siehe CONTRIBUTING.md. Pull Requests gegen dieses Mirror werden beim nächsten Release überschrieben; bitte richten Sie sie an das Monorepo oder eröffnen Sie hier ein Issue.
Der Python-Paketcode ist MIT-lizenziert. Die gebündelte Rust-WASM-Laufzeit ist AGPL-3.0-or-later ODER BUSL-1.1.