Amla Labs 推出 Amla-Sandbox:开源实验环境助力AI研发新范式
amla-sandbox 是一个基于 WebAssembly(WASM)的轻量级沙箱环境,旨在安全地运行由大语言模型生成的代码。目前主流的智能体框架(如 LangChain、AutoGen、SWE-Agent 等)通常通过 subprocess 或 exec 直接执行模型输出的代码,这本质上是任意代码执行,极易受到提示注入攻击,存在严重安全风险。 amla-sandbox 采用 WASM + WASI 架构,在浏览器或本地环境中提供内存隔离与系统调用控制,无需依赖 Docker 或虚拟机,仅需一个二进制文件即可跨平台运行。其核心优势在于:在享受代码模式高效性的同时,实现真正的安全隔离。 该沙箱通过“能力(capability)”机制控制工具访问权限。开发者可明确定义哪些工具可以被调用、调用参数的限制(如金额上限、货币类型)、调用次数等。例如,仅允许调用 Stripe 的 charges.create 接口,且金额不超过 10000,货币只能是 USD 或 EUR。任何超出限制的调用都会被拒绝。 其安全模型借鉴了 seL4 等高安全系统的设计理念:不赋予任何隐式权限,所有访问必须显式授权。即使发生提示注入,攻击者也无法突破权限边界,极大缩小了潜在损害范围。 沙箱内部使用 QuickJS 作为 JavaScript 运行时,运行在 WASM 环境中,具备内存边界检查和形式化验证的运行时(wasmtime),确保无内存越界或逃逸风险。同时提供可写的虚拟文件系统(VFS),但仅限于 /workspace 和 /tmp 目录,禁止网络访问和 shell 逃逸。 首次运行需编译 WASM 模块(约 300ms),后续可缓存,加载时间仅约 0.5ms。支持 LangGraph 集成,提供细粒度的能力控制。适用于大多数智能体场景,尤其适合需要高效执行模型生成代码且控制工具访问的用例。 需要注意的是,它不提供完整的 Linux 环境、原生模块支持、GPU 访问或无限循环保护(如 while(true) 会阻塞)。若需持久化状态或复杂依赖,可考虑 e2b 或 Modal 等完整虚拟机方案。 当前项目采用 MIT 协议(Python 代码),但 WASM 二进制文件为专有,仅限通过该包使用,禁止提取或分发。
