
このリポジトリは、amla-sandbox Python パッケージのリリースソースです。開発はamlalabs モノレポで行われており、このリポジトリはリリース時に更新されます。amla_sandbox.wasm にコンパイルされる Rust ランタイムは amla-sandbox-core にあり、この Python パッケージがビルドされた正確なリリースタグは .mirror-deps.json に記録されています。
amla-sandbox は、AI エージェントコード向けの機能制限付き WASM サンドボックスです。エージェントは、あなたが明示的に提供し、定義した制約付きのツールのみを呼び出すことができます。仮想ファイルシステムはサンドボックス化されています。ネットワークなし。シェルエスケープなし。
pip install amla-sandbox
Docker 不要。VM 不要。単一バイナリでどこでも動作。
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",
)
機能制約付き:
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,
)
完全な API サーフェス、フレームワーク統合、制約 DSL については、PyPI ページ と examples/ ディレクトリを参照してください。
サンドボックスは、最小限のシステムコールサーフェスを提供する WASI を備えた WebAssembly 内で実行されます。WASM 分離に加えて、すべてのツール呼び出しは機能検証を通過します。アクセスは明示的に許可され、暗黙的に利用可能になることはありません。詳細な説明とトレードオフについては、上記のクイックスタートおよびアップストリームの PyPI README を参照してください。
ほとんどのユーザーには PyPI からのインストールをお勧めします。wheel にはプリビルドの WASM バイナリが含まれています。自分で wheel をビルドする場合は:
uv build
wheel にバンドルされている WASM アーティファクトを再生成するには、.mirror-deps.json に固定されたタグで amla-sandbox-core からビルドし、その結果を uv build を実行する前に src/amla_sandbox/_wasm/amla_sandbox.wasm に配置してください。
CONTRIBUTING.md を参照してください。このミラーに対するプルリクエストは次のリリースで上書きされます。モノレポをターゲットにするか、こちらで issue を開いてください。
Python パッケージコードは MIT ライセンスです。バンドルされている Rust WASM ランタイムは AGPL-3.0-or-later または BUSL-1.1 です。