
Sandbox WASM com aplicação de capacidades para código de agentes de IA. Agentes só podem chamar ferramentas explicitamente fornecidas com restrições definidas. Sistema de arquivos virtual em sandbox, sem rede, sem escape de shell. Um único binário, sem necessidade de Docker ou VM.
Este repositório é a fonte de lançamento do pacote Python amla-sandbox. O desenvolvimento ocorre no monorepo amlalabs; este repositório é atualizado em cada lançamento. O runtime Rust que compila para amla_sandbox.wasm reside em amla-sandbox-core; a tag de lançamento exata contra a qual este pacote Python foi compilado está registrada em .mirror-deps.json.
amla-sandbox é um sandbox WASM com imposição de capacidades para código de agente de IA. Os agentes só podem chamar ferramentas que você forneça explicitamente, com as restrições que você definir. Sistema de arquivos virtual em sandbox. Sem rede. Sem escape de shell.
pip install amla-sandbox
Sem Docker. Sem VM. Um binário, funciona em qualquer lugar.
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",
)
Com restrições de capacidade:
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,
)
Veja a página do PyPI e o diretório examples/ para a superfície completa da API, integrações com frameworks e a DSL de restrições.
O sandbox é executado dentro de WebAssembly com WASI para uma superfície mínima de chamadas de sistema. Além do isolamento WASM, cada chamada de ferramenta passa por validação de capacidade; o acesso é explicitamente concedido, não implicitamente disponível. Veja o Início rápido acima e o README do PyPI upstream para a explicação completa e as compensações.
Para a maioria dos usuários, recomenda-se instalar a partir do PyPI; a wheel inclui o binário WASM pré-construído. Se você quiser construir a wheel você mesmo:
uv build
Para regenerar o artefato WASM incluído na wheel, compile-o a partir de amla-sandbox-core na tag fixada em .mirror-deps.json, em seguida, coloque o resultado em src/amla_sandbox/_wasm/amla_sandbox.wasm antes de executar uv build.
Veja CONTRIBUTING.md. Pull requests contra este espelho serão sobrescritos no próximo lançamento; por favor, direcione-se ao monorepo ou abra uma issue aqui.
O código do pacote Python é licenciado sob MIT. O runtime WASM Rust incluído é AGPL-3.0-or-later OU BUSL-1.1.