Repolode
capsulerun

capsulerun/runtime

面向 AI Agent 的安全运行时,在隔离的 WebAssembly 沙箱中执行不可信代码,并可按任务限制 CPU、内存和超时。

Star
303
Fork
22
未关闭 Issue
0
最近提交
26天前

这是什么?

Capsule 是一个用于在隔离环境中执行不可信代码的运行时。每个任务都运行在独立的 WebAssembly 沙箱中,与宿主系统隔离。开发者只需用 task 装饰器标注 Python 或 TypeScript/JavaScript 函数,运行时便会将文件编译为 WebAssembly 模块并执行。

每个任务可单独设置计算等级、内存上限、超时时间和重试次数。CPU 用量通过 WebAssembly 的 fuel 机制计量控制;文件访问仅限于显式授权的目录,并可设为只读或读写;出站网络请求只能访问白名单中的域名;环境变量需显式声明后才可读取。每次运行都会返回包含结果、错误信息以及耗时、fuel 消耗、峰值内存等执行指标的 JSON 结构。

项目提供 CLI(capsule run、capsule build)以及 Python 和 npm SDK,其中 run() 函数可在宿主代码中调用沙箱任务。依赖 C 扩展的 Python 包需要提供 wasm32-wasi 编译版本才能在沙箱内运行。

核心功能

  • 01每个任务运行在独立的 WebAssembly 沙箱中,与宿主系统隔离。
  • 02通过 fuel 计量限制 CPU,并可为每个任务设置内存和超时。
  • 03文件访问仅限指定目录,支持只读或读写模式。
  • 04出站 HTTP 请求仅允许访问白名单域名。
  • 05支持 Python 和 TypeScript/JavaScript 任务,并可自动重试。
  • 06返回包含耗时、fuel 和内存指标的结构化 JSON 结果。

适用场景

  • 在代码解释器中执行大模型生成的代码,同时保护宿主机器。
  • 为 AI Agent 的工具调用设置文件、网络域名和环境变量的严格限制。
  • 打包需要可预测资源上限的小型无服务器风格函数。
  • 通过 run() 从宿主应用中调用沙箱内的 Python 或 TypeScript 代码。

快速上手

  1. 1

    安装 Python 包

    pip install capsule-run
  2. 2

    创建包含返回问候语 main 任务的 hello.py

  3. 3

    使用 Capsule CLI 运行该文件

    capsule run hello.py

使用前须知

  • README 仅展示 Python 和 TypeScript 示例,不涵盖其他语言。
  • 除非使用 capsule build 预编译,否则源文件首次运行会有数秒的编译延迟。

收录于专题

标签

常见问题

runtime 是什么?
面向 AI Agent 的安全运行时,在隔离的 WebAssembly 沙箱中执行不可信代码,并可按任务限制 CPU、内存和超时。 Capsule 是一个用于在隔离环境中执行不可信代码的运行时。每个任务都运行在独立的 WebAssembly 沙箱中,与宿主系统隔离。开发者只需用 task 装饰器标注 Python 或 TypeScript/JavaScript 函数,运行时便会将文件编译为 WebAssembly 模块并执行。
runtime 可以免费使用吗?用的什么许可证?
runtime 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
runtime 还在维护吗?
活跃维护中。runtime 最近一次提交是在 2026年10月12日。
runtime 适合用来做什么?
在代码解释器中执行大模型生成的代码,同时保护宿主机器。 为 AI Agent 的工具调用设置文件、网络域名和环境变量的严格限制。 打包需要可预测资源上限的小型无服务器风格函数。 通过 run() 从宿主应用中调用沙箱内的 Python 或 TypeScript 代码。
runtime 怎么安装和运行?
安装 Python 包: pip install capsule-run 创建包含返回问候语 main 任务的 hello.py 使用 Capsule CLI 运行该文件: capsule run hello.py
在哪里获取 runtime?
源代码和安装说明在 GitHub 上:https://github.com/capsulerun/runtime

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目