BentoBox icon

BentoBox

BentoBox 是面向编码代理和命令的内核级沙箱,适用于 Linux 和 macOS,通过默认拒绝的隔离机制运行构建、测试和代理工作流,同时阻止敏感文件与未授权访问。

BentoBox

BentoBox 的作用及其存在原因

BentoBox 是用于在分区化执行环境中运行编码代理和其他命令的内核级沙箱。README 将其描述为一种可在数秒内以零配置、零启动延迟为 AI 代理建立沙箱的方法,并使用内核强制而非解释器级控制。

该产品围绕默认拒绝的分区构建。代理可以在其分配的工作区以及你明确授予的任何路径或权限中工作,而对凭据文件、任意系统路径、网络访问和其他资源的访问仍会被阻止,除非某项策略允许。该仓库还记录了基于 Rust 核心的 Python 和 TypeScript SDK,以及诸如凭据代理、快照和输出压缩等专门行为模块。

核心能力

内核强制隔离

直接由操作系统内核在分区内强制执行代理和 shell 命令,而不是依赖解释器。

基于权限的沙箱

使用默认拒绝的访问规则,因此可以打开工作树,而未经批准的路径、凭据和其他敏感区域会保持阻止状态,除非被显式允许。

分区工作流

支持具有各自权限、资源限制和消息路由的命名分区,从而可将流程拆分为获取、构建和部署等不同步骤。

文件系统和网络策略控制

提供对文件系统、进程和网络访问的控制,包括每个 box 的完整网络访问或仅本地主机访问。

快照与回滚

包含基于哈希的快照和回滚功能,因此可以还原已更改的文件,也可以恢复已删除的文件。

多语言 SDK 接口

在单一 Rust 核心之上提供 Python 和 TypeScript 封装,并在 Python README 和 SDK 文档中展示示例。

BentoBox 的适用场景

  • 将编码代理与密钥隔离

    当你希望让编码助手在仓库上运行,但不希望它对工作区外的 SSH 密钥、云配置或其他凭据拥有自由访问时,可使用 BentoBox。

  • 分阶段编排多步骤自动化流水线

    使用命名分区将工作流拆分为获取、构建和部署阶段,并为每一步设置不同的文件系统和网络权限。

  • 为开发任务提供沙箱

    在受限环境中运行构建、测试或打包命令,让命令可以读取所需内容,但除非被允许,否则不能广泛写入或访问网络。

  • 运行后恢复已更改文件

    当你希望在运行结束后可以恢复期间所做的文件更改,包括执行过程中被删除的文件时,可使用快照和回滚行为。

  • 将沙箱能力嵌入应用代码

    当你希望将沙箱集成到已在这些语言之一中运行的代码中,而不是只调用独立工具时,可使用 Python SDK 或 TypeScript 封装。

Pros and Cons

Pros

  • 内核级强制是核心设计,README 说明一旦应用就无法放宽,只能继续收紧。
  • 默认拒绝的访问有助于在未显式授予时阻止凭据和其他敏感文件。
  • 命名分区使得建模多步骤流水线成为可能,而不只是单命令沙箱。
  • 快照和回滚为已更改或已删除的文件提供了恢复路径。
  • Python 和 TypeScript 封装让核心可从多种语言中使用。

Cons

  • README 表明通过 Landlock 支持 Linux、通过 Seatbelt 支持 macOS,因此源中并非所有平台都覆盖。
  • 技术文档很详尽,但该产品是自托管/开源仓库软件,而不是带有文档化入门流程或托管定价的托管服务。
  • 其安全模型和工作流功能强大,但需要定义分区、权限和路由,因此配置比单命令封装器更复杂。

FAQ

BentoBox 支持哪些平台?

BentoBox 旨在让代理或代理启动的命令在内核强制的隔离分区中运行。README 强调它通过 Landlock 支持 Linux,并通过 Seatbelt 支持 macOS。

BentoBox 有 SDK 吗?

README 展示了使用 bentoworks 包的 Python 用法,并说明其在 Rust 核心之上提供了 Python 和 TypeScript 封装。

BentoBox 能处理多步骤工作流吗?

可以。源内容包含一个多分区流水线示例,其中一个分区通过 edge() 和 box.run(entry=...) 将工作传递给另一个分区。

BentoBox 如何控制访问?

BentoBox 使用默认拒绝策略。分区只有在被显式授予时才会获得相应权限,例如 fs_read、fs_write、fs_exec 或 network。

BentoBox 有公开的定价信息吗?

README 没有提供 BentoBox 自身的托管定价信息。该仓库在 GitHub 上是公开的,并且该产品被描述为通过其自己的运行时和 SDK 运行的沙箱。

Quick Facts

类别
开发者工具
来源域名
github.com
主要运行时
带有 Python 和 TypeScript SDK 的 Rust 核心
支持环境
Linux(Landlock)和 macOS(Seatbelt)
安全模型
默认拒绝
仓库状态
公开 GitHub 仓库