发现 AI 代理的未来arrow_forward

Capsule

calendar_today收录于 2026年2月24日
category智能体与应用工具
code开源
PythonTypeScriptRustAI代理SDKCLI智能体与应用工具开发者工具/代码安全/隐私

一个安全、持久的 AI 智能体运行时,利用 WebAssembly 沙箱隔离执行不可信代码,提供 CPU、内存、超时等精细化资源控制与权限管理。

项目概述#

Capsule 是一个专为 AI 智能体设计的任务运行时环境,核心解决 AI 应用中执行不可信或第三方代码的安全性问题。通过 WebAssembly (Wasm) 实现跨平台隔离,支持 Python 3.13+ 和 Node.js 22+。

核心能力#

安全隔离

  • 每个任务在独立的 WebAssembly 沙箱中运行,与主机系统完全隔离
  • 文件系统访问控制:仅允许访问白名单目录 (allowed_files)
  • 网络访问控制:仅允许访问白名单域名 (allowed_hosts)
  • 环境变量控制:选择性暴露环境变量

资源控制

  • CPU 限制:通过 Wasm Fuel 机制计量,支持 LOW/MEDIUM/HIGH/CUSTOM 级别
  • 内存限制:可配置每个任务的内存上限(如 "512MB", "2GB")
  • 超时控制:可配置任务最大执行时间(如 "30s", "5m", "1h")

容错与可观测性

  • 自动重试:任务失败时自动重试(可配置重试次数)
  • 生命周期跟踪:监控任务状态(运行中、已完成、失败)
  • 结构化输出:JSON 格式的任务执行结果和元数据

技术架构#

基于 Rust (76.7%) 构建核心运行时,TypeScript (15.6%) 和 Python (7.1%) 提供 SDK 支持。

核心组件

  • capsule-core:基于 Rust 和 Wasmtime 的核心运行时
  • capsule-cli:命令行接口 (capsule run, capsule build)
  • capsule-sdk:Python 和 TypeScript 开发工具包
  • capsule-wit:WebAssembly 接口类型定义

关键技术

  • Runtime: Wasmtime (WebAssembly 运行时), WASI (系统接口)
  • Compilation: componentize-py (Python 转 Wasm), jco (JS 转 Wasm)

安装与快速开始#

Python

pip install capsule-run

Node.js

npm install -g @capsule-run/cli
npm install @capsule-run/sdk

示例代码 (Python)

from capsule import task

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

在现有代码中集成

from capsule import run
result = await run(file="./hello.py", args=[])
print(f"Task completed: {result['result']}")

配置选项#

参数描述示例
name任务标识符"process_data"
computeCPU 分配级别"HIGH"
ram内存限制"512MB"
timeout最大执行时间"30s"
max_retries失败重试次数3
allowed_files可访问文件夹["./data"]
allowed_hosts可访问域名["api.openai.com"]

支持 capsule.toml 项目配置文件设置默认值。

CLI 命令#

  • capsule run <file>: 执行任务脚本
  • capsule build <file>: AOT 预编译任务
  • --verbose: 显示详细日志
  • --json: 输出 JSON 格式结果

兼容性说明#

  • Python: 仅支持纯 Python 包和标准库模块,不支持 C 扩展(如 numpy、pandas)
  • TypeScript/JavaScript: 支持 npm 包和 ES 模块

适用场景#

  • AI Agent 工具调用与编排
  • 执行不可信或用户提供的代码
  • 文件数据处理(CSV、图片、数据集)
  • 受限网络访问的 API 调用
  • 资源限制测试

响应格式#

{
  "success": true,
  "result": "<task return value>",
  "execution": {
    "task_name": "analyze_data",
    "duration_ms": 1523,
    "retries": 0,
    "fuel_consumed": 45000
  }
}

当前版本:v0.6.2 | 许可证:Apache-2.0

保持更新

获取最新的 AI 工具和趋势,直接发送到您的收件箱。没有垃圾邮件,只有智能。

rocket_launch