astrid: 一个使用 WASM 沙箱技术的、面向可组合 AI agent 软件的权限安全型 OS
astrid: 一个使用 WASM 沙箱技术的、面向可组合 AI agent 软件的权限安全型 OS
它解决了什么问题
Astrid 为 AI agent 提供了一个安全、可移植的运行时。它通过将基于提示词(prompt-based)的信任转变为 OS 级别的安全边界,解决了在本地机器上运行不受信任的 agent 代码的安全风险。它确保 agent 无法访问文件、网络或凭据,除非通过加密权限模型显式授予权限。
工作原理
Astrid 作为一个“哑”内核运行,管理一组被称为 capsules 的隔离 WebAssembly (WASM) 组件。这些 capsules 包含了 provider、tools 和 orchestrators 的逻辑。
- 隔离性: Capsules 在 Wasmtime 沙箱中运行,没有环境权限(no ambient authority,即无法直接进行 syscalls 或文件访问)。
- 通信: Capsules 通过使用 IPC 协议的事件总线进行通信。内核通过基于权限的访问控制列表 (ACL) 来路由这些事件。
- 权限模型: 对资源(文件、网络主机)的访问通过经过签名的 ed25519 授权进行管理,这些授权是与主体(principal)绑定且可撤销的。
- 上行链路 (Uplinks): 像 CLI 或 HTTP gateway 这样的前端通过“uplinks”连接到内核,以发送和接收事件。
面向人群
它专为构建可组合 AI agent 软件的开发者设计,这些开发者需要严格的安全保证、基于主体的隔离,以及在无需重启系统的情况下热加载和更新 tools 的方法。
亮点
- 加密权限: 每次资源访问都需要经过签名的授权,即使 capsule 被攻破,也能防止未经授权的访问。
- WASM 沙箱: 使用 WebAssembly 组件模型来确保代码与宿主系统隔离。
- 基于主体的隔离: 每个 agent 身份都有其独立的隔离密钥、主目录和审计链。
- 热加载: Capsules 可以从运行中的守护进程中安装、升级或移除,而无需重启。
- 签名审计链: 维护一个哈希链接的、经过签名的所有决策和调用的日志,以便进行独立验证。
Sources
- undefinedastrid-runtime/astrid