SuperAPI AI 工具集

sandbox-sdk

部署与运维

查看项目

更新于 10-16 07:28

技能介绍

用途:在 Cloudflare Workers 上构建安全隔离的代码执行环境,适用于 AI 代码执行、代码解释器、CI/CD 系统与交互式开发环境。

安装与验证:执行 npm install @cloudflare/sandbox,并用 docker info 确认本地 Docker 可用(本地开发必需)。官方提示相关知识可能过时,实现功能前应先检索文档(https://developers.cloudflare.com/sandbox/)或示例(https://github.com/cloudflare/sandbox-sdk/tree/main/examples)。

必要配置:wrangler.jsonc 需定义 containers(class_name 为 Sandbox、image 指向 ./Dockerfile、instance_type 为 lite、max_instances 为 1)、durable_objects 绑定与 migrations 中的 new_sqlite_classes。Worker 入口必须重新导出 Sandbox 类:export { Sandbox } from '@cloudflare/sandbox',否则无法部署。

主要能力:getSandbox 获取沙箱;exec 运行命令;runCode 运行代码(支持 python、javascript、typescript,适合 LLM 生成代码,返回丰富输出,上下文内状态保持);文件操作包括 writeFile、readFile、mkdir、listFiles;exposePort 暴露端口并返回预览 URL;destroy 释放资源。

用法要点:getSandbox() 立即返回,容器在首次操作时惰性启动;容器空闲 10 分钟后休眠(可用 sleepAfter 配置);相同 sandboxId 始终返回同一实例。可扩展 Dockerfile 添加依赖,基础镜像为 docker.io/cloudflare/sandbox:0.7.0,包含 Python 3.11、Node.js 20 及常用工具,需 EXPOSE 8080 以支持本地端口暴露。SDK 在 @cloudflare/sandbox/openai 提供 OpenAI Agents 辅助工具(Shell、Editor)。

限制与注意:预览 URL 生产环境需带通配 DNS 的自定义域名,.workers.dev 不支持其子域名;不要使用内部客户端,应使用 sandbox.* 方法;多用户场景勿硬编码 sandbox ID;临时沙箱应调用 destroy() 清理;镜像应保持精简以降低冷启动时间。其他未在资料中说明的收费、平台细节暂未提供。