
Sandbox WASM con control de capacidades para código de agentes de IA. Los agentes solo pueden llamar a herramientas proporcionadas explícitamente con restricciones definidas. Sistema de archivos virtual en entorno aislado, sin red, sin escape de shell. Un solo binario, no requiere Docker ni máquina virtual.
Este repositorio es la fuente de lanzamiento del paquete Python amla-sandbox. El desarrollo ocurre en el monorepo de amlalabs; este repositorio se actualiza en el lanzamiento. El runtime Rust que compila a amla_sandbox.wasm vive en amla-sandbox-core; la etiqueta de lanzamiento exacta contra la que se construyó este paquete Python está registrada en .mirror-deps.json.
amla-sandbox es un sandbox WASM con aplicación de capacidades para código de agentes de IA. Los agentes solo pueden llamar a herramientas que usted proporcione explícitamente, con restricciones que usted defina. Sistema de archivos virtual en sandbox. Sin red. Sin escape de shell.
pip install amla-sandbox
Sin Docker. Sin VM. Un binario, funciona en todas partes.
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",
)
Con restricciones de capacidad:
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,
)
Vea la página de PyPI y el directorio examples/ para la superficie completa de API, integraciones de frameworks y el DSL de restricciones.
El sandbox se ejecuta dentro de WebAssembly con WASI para una superficie mínima de syscalls. Además del aislamiento WASM, cada llamada a herramienta pasa por una validación de capacidades; el acceso se otorga explícitamente, no está disponible implícitamente. Vea Inicio rápido arriba y el README de PyPI upstream para la explicación completa y las compensaciones.
Para la mayoría de los usuarios, se recomienda instalar desde PyPI; la rueda incluye el binario WASM precompilado. Si desea compilar la rueda usted mismo:
uv build
Para regenerar el artefacto WASM incluido dentro de la rueda, compílelo desde amla-sandbox-core en la etiqueta fijada en .mirror-deps.json, luego coloque el resultado en src/amla_sandbox/_wasm/amla_sandbox.wasm antes de ejecutar uv build.
Vea CONTRIBUTING.md. Las solicitudes de extracción contra este espejo serán sobrescritas en el próximo lanzamiento; por favor, apunte al monorepo o abra un issue aquí.
El código del paquete Python tiene licencia MIT. El runtime Rust WASM incluido tiene licencia AGPL-3.0-or-later O BUSL-1.1.