Capsule 沙箱运行时

在隔离的 WebAssembly 沙箱中运行不可信 Python 与 TypeScript/JavaScript 代码。

Star 数
★ 301
最近更新
24 天前
License
Apache-2.0
主语言
Rust

30 秒速览

运行形态
命令行工具代码库 / SDK
可在哪里用
通用 · 跨平台
费用
免费,无需付费服务
上手难度
低 · 几分钟可跑通
开始前需要
Rust(最新稳定版)Python 3.13+Node.js 22+Shell / 命令行网络访问本地文件系统
典型场景
需要在 WebAssembly 隔离环境中执行用户提交代码的平台团队,可用任务级资源限额控制执行。
不适合
  • 必须在沙箱中使用尚无 wasm32-wasi 编译轮子的 Python 原生扩展的团队

这个 Agent 能做什么,适合哪些场景?

Capsule 是一个用于执行不可信代码的运行时,提供 Rust CLI、Python SDK 和 TypeScript/JavaScript SDK。开发者可用 Python 的 @task 装饰器或 TypeScript/JavaScript 的 task() 包装器定义任务,并通过 capsule run 或 SDK 的 run() 启动工作流。运行时将代码编译为 WebAssembly 模块,让每个任务在独立沙箱中运行,并可配置 CPU 燃料、内存、超时、重试、文件、网络域名和环境变量访问。每次执行返回包含结果、错误和执行指标的 JSON 结构。它面向本地项目和宿主程序集成;README 未描述托管服务或云端部署。

使用 capsule run main.py 或 capsule run main.ts 读取入口文件,将其编译为 WebAssembly,并在隔离沙箱中执行名为 main 的任务。任务可接收参数、访问显式允许的目录和环境变量,并向 allowed_hosts 中的域名发起 HTTP 请求;默认不允许出站请求。可通过 compute、ram、timeout 和 max_retries 设置执行资源与失败重试策略。capsule build 可预编译任务,capsule exec 可执行导出的 .wasm 文件;CLI 的 --mount 或 SDK 的 mounts 可将项目目录挂载到沙箱路径。执行结果包含任务返回值、错误状态、耗时、重试次数、燃料消耗、内存用量和宿主请求记录。

  1. 需要在 WebAssembly 隔离环境中执行用户提交代码的平台团队,可用任务级资源限额控制执行。
  2. 用 Python 编写数据处理任务的开发者,可通过 @task 定义任务并用 CLI 运行。
  3. 使用 TypeScript/JavaScript 的工程团队,可通过 npm SDK 将沙箱任务接入现有 Node.js 程序。
  4. 需要让任务读取输入目录并写入输出目录的工作流,可分别设置只读和读写权限。
  5. 需限制任务外联的应用,可通过 allowed_hosts 配置域名白名单并查看宿主请求记录。

如何安装或部署这个 Agent?

Python 快速开始需要 Python 包和 Capsule CLI。TypeScript/JavaScript 快速开始安装全局 CLI 和 SDK。README 未说明需要 API 密钥或付费服务。

如何使用这个 Agent?

Python 安装与首次运行:

pip install capsule-run
from capsule import task

@task(name="main", compute="LOW", ram="64MB")
def main() -> str:
    return "Hello from Capsule!"
capsule run hello.py

TypeScript/JavaScript 安装与首次运行:

npm install -g @capsule-run/cli
npm install @capsule-run/sdk
import { task } from "@capsule-run/sdk";

export const main = task({
  name: "main",
  compute: "LOW",
  ram: "64MB"
}, (): string => {
  return "Hello from Capsule!";
});
capsule run hello.ts

如需从宿主代码启动任务,可在 Python 中导入 run,或在 TypeScript/JavaScript 中从 @capsule-run/sdk/runner 导入 run;TypeScript/JavaScript runner 还要求项目依赖中包含 @capsule-run/cli。

这个 Agent 有哪些优点和局限?

优点
  • 每个任务运行在独立 WebAssembly 沙箱中,并可单独配置 CPU 燃料、内存和超时。
  • 同时提供 Python 装饰器、TypeScript/JavaScript 包装器、CLI 和 SDK 的程序化 run() 接口。
  • 可分别控制目录访问模式、允许访问的网络域名和任务可见的环境变量。
  • 任务结果包含执行时间、重试次数、燃料、内存和宿主请求等指标。
局限
  • Python 使用 C 扩展的包需要 wasm32-wasi 编译轮子;README 指出 numpy 和 pandas 等许多常用包尚未提供。
  • Python 与 TypeScript/JavaScript 的依赖安装路径不同;TypeScript/JavaScript 的 runner 还需要 CLI 作为依赖。
  • Python 任务须能构建为 WebAssembly;对原生扩展依赖较重的项目可能需要改用宿主端代码或寻找兼容包。
  • README 未提供托管服务、定价或企业支持信息。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Capsule 沙箱运行时 当前 52 · 缺口较多 命令行工具免费 ★ 301 24 天前 Rust —
Daytona 安全弹性 AI 代码运行基础设施 44 · 缺口较多 代码库 / SDK免费版 + 付费版 ★ 71k 3 个月前 — —
E2B Cookbook:AI代理代码解释器示例集 36 · 缺口较多 命令行工具免费 + 模型费 ★ 1.4k 12 天前 TypeScript OpenAI API · Claude API
CaveAgent 62 · 存在缺口 代码库 / SDK免费 + 模型费 ★ 205 1 个月前 Python OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
52/ 100 五分制 2.6 / 5
信任安全 12/29
可靠稳定 5/14
适用触发 12/18
规范维护 10/18
有效结果 9/13
证据核验 4/8
查看各维度的扣分理由
信任安全12 / 29 · 2.1/5

文档说明了 CPU、内存和超时限制,默认禁止网络,并允许按目录、域名和环境变量配置访问范围;执行结果还包含 host_requests 元数据,因此最小权限和数据流有一定依据。扣分原因:文件目录默认可写且内存、超时默认无限,未见执行前确认或回滚机制;API_KEY 可被传入任务,但没有专门的秘密保护说明;依赖只列出项目名称,未展示安全审计或固定版本。许可证和 credits 提供来源线索,但发布者身份未验证,维护责任也未明确。

可靠稳定5 / 14 · 1.8/5

README 描述了任务入口、资源配置、重试和结构化结果,CI 文件列出格式检查、clippy 和 Rust 测试工作流。扣分原因:README 的仓库链接和工作流徽标使用 capsule,而对象仓库为 capsulerun/runtime,文档还同时呈现多种运行方式但没有更多实现文件交叉核对;依赖获取依赖 PyPI、npm、Rust 工具链等外部服务且未说明备用路径;错误字段只描述为错误类型和消息,没有展示具体失败场景或恢复指引。

适用触发12 / 18 · 3.3/5

文档面向 Python 和 TypeScript/JavaScript 用户,涵盖 CLI、SDK、网络、文件、环境变量和生产构建场景,并说明了 Python 原生扩展和 WASI wheel 的兼容限制。扣分原因:使用场景和边界主要由 README 陈述,缺少更多实现材料验证;触发方式说明了 capsule run、run() 和入口 main,但没有涵盖更复杂的集成环境。

规范维护10 / 18 · 2.8/5

README 按入门、配置、网络、文件、生产和兼容性组织,提供多语言安装步骤及丰富示例;LICENSE 文件给出 Apache-2.0 全文。扣分原因:README 中 capsule、capsule-run 与 @capsule-run 命名并存,且仓库链接与对象名称不一致;没有提供变更日志;贡献说明和 CI 只表明存在贡献流程及自动检查,没有清晰的长期维护责任人或更新承诺。

有效结果9 / 13 · 3.5/5

资源隔离、任务生命周期跟踪、自动重试和结构化执行元数据针对不可信代码运行提供了明确用途;文档给出可复制的入门和访问控制示例。扣分原因:这些价值和性能描述主要是文档声称,未由本次提供的实现材料证实;未量化运行、编译及维护成本,也未说明默认无限资源可能带来的成本影响。

证据核验4 / 8 · 2.5/5

README 对配置项、响应字段、访问规则和兼容性作了具体陈述,LICENSE 与 CI 文件能分别支持许可和工作流相关内容。扣分原因:只有文档、许可证和工作流材料,缺少实现代码、依赖清单、变更记录等独立来源来交叉验证核心安全与运行时主张;文档没有系统区分已验证行为和产品描述,因此仅能作低置信度静态判断。

风险与缓解建议
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 文档示例会把 API_KEY 等环境变量传入任务;仅按需开放变量,并检查任务及其网络访问范围。
  • 文件访问默认为读写,资源限制默认无限;运行不可信任务前应显式设置必要的目录权限、内存和超时限制。
  • 本次材料未提供实现代码或依赖清单,且仓库命名与 README 链接存在不一致;核心隔离与依赖安全主张尚未交叉验证。
证据充分度:低 评估于 2026年11月4日 审查版本 7588fc7d24dd
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v0.8.10
    发布说明摘录
    Improvements TypeScript SDK Polyfills - Add more built-in methods to fs - Add a real Wasi‑based stats system for files and folders - Add support for symlinks inside sandboxes
    在 GitHub 查看 ↗
  2. v0.8.9
    发布说明摘录
    Improvements Rust Core - Fix cache issues for multi-language projects - Improve task reporter to have better logs Typescript SDK - Fix worker process issue for run() command - Fix absolute path issue for fs polyfills Python SDK - Fix worker process issue for run() command
    在 GitHub 查看 ↗
  3. v0.8.8
    发布说明摘录
    Smaller Python bundle, worker mode, and path fixes Improvements Core - Worker mode: Added a capsule worker to reduce child process overhead when using the run() function. - Trace rebuild fix: Fixed trace rebuild for projects using both Python and TypeScript sandboxes. SDKs - Smaller Python bundle: Only import the necessary built-ins, reducing the overall size. - TypeScript path fixes: Resolved absolute path issues with fs polyfills.
    在 GitHub 查看 ↗

常见问题

任务默认可以访问互联网吗?
不可以。默认 allowed_hosts 为空,出站请求被禁止;需要访问网络时,应列出允许的域名。
沙箱能访问宿主机上的哪些文件?
只能访问通过 allowed_files 声明的目录,或通过 --mount/mounts 挂载的路径;目录可设为只读或读写。
失败的任务会自动重试吗?
可以配置 max_retries(TypeScript/JavaScript 中为 maxRetries);默认值为 0,即不重试。
Python 包都能在沙箱里使用吗?
不是。使用 C 扩展的包需要针对 wasm32-wasi 编译的 wheel;README 提到许多常见包尚无此类构建。
使用 Capsule 是否需要 API 密钥或付费服务?
README 的快速开始只要求安装 CLI/SDK 和本地运行环境,没有列出 API 密钥或付费服务要求。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents