- 文档首页
容器服务
弹性容器实例 VCI
用户指南
VCI Agent Sandbox
基于 E2B 协议管理
快速入门
快速入门
本文基于最小可用策略(MVP),通过 Python SDK 串联创建模板、创建 Sandbox、读写文件、执行代码与命令、暂停与恢复、查询状态等常用操作,模拟创建 AI Agent 实例并完成数据持久化的完整流程。
- 在 VCI Agent Sandbox 控制器 YAML 文件中配置 E2B 相关参数。
未安装 VCI Agent Sandbox
已安装 VCI Agent Sandbox
请参考 安装指南,安装 VCI Agent Sandbox,并在values.yaml文件中将enableE2BServer设置为true。其余参数按实际情况配置。 注意
安装 VCI Agent Sandbox 时,agent-sandbox 应用模板的 Chart 版本,请选择 v0.1.1-vke.3 及以上版本,低版本中没有内置 E2B 相关参数。
在 容器服务控制台 应用中心 > Helm 应用 页面选择您安装 VCI Agent Sandbox 的目标集群和命名空间,找到 VCI Agent Sandbox 控制器对应的 Helm 应用,更新应用配置: - 应用模板 Chart 版本选择 v0.1.1-vke.3 及以上版本。
- 更新 YAML 文件参数配置,将enableE2BServer设置为true,启用 E2B。其余参数按实际情况更新。
pip install e2b-code-interpreter==2.4.1 e2b==2.10.2 anthropic python-dotenv
- 确保有可用的 E2B API Key,并在你的运行环境中配置好访问 E2B API 所需的地址和密钥(如API_BASE_URL、ADMIN_API_KEY等)。默认情况下 E2B API Key 保存在agent-sandbox-system命名空间下名为e2b-key-store的 Secret 里,详情请参见 安装指南。您也可以通过 SDK 调用接口获取 API Key,详情请参见 API Key 管理。
模板(Template)用来定义 Sandbox 启动时的各类参数。您可以在集群里通过 Kubernetes API 创建模板。您也可以通过 VCI SDK 创建模板,详情请参见 Template 管理。 说明
- 请替换下方代码示例中的镜像、资源和注解等配置,其余可以保持默认配置。
- 成功创建后,获取 Template ID,为后续创建 Sandbox 实例备用。
apiVersion: extensions.agents.x-k8s.io/v1alpha1
name: code-interpreter-template
agent.sandbox.io/enable-envd-injection: "true"
vci.vke.volcengine.com/enable-auto-create-imc: "true"
vci.vke.volcengine.com/preferred-instance-family: vci.u1,vci.n3i
vci.volcengine.com/persistent-container: "true"
vci.volcengine.com/tls-enable: "false"
vci.volcengine.com/usable-disk-capacity: "40"
vke.volcengine.com/burst-to-vci: enforce
- image: e2bdev/code-interpreter:latest
terminationGracePeriodSeconds: 1
通过 Python SDK,使用上一步获取的 Template ID 创建一个 Sandbox 实例。
from e2b_code_interpreter import Sandbox
template="default--code-interpreter-template",
metadata={"scene": "quickstart"}
print(f"sandbox id: {sbx.sandbox_id}")
参数说明如下表所示。
创建好 Sandbox 后,可以在其中读写文件。下文以在本地的./test.txt写入 Sandbox 再读取并打印内容为例。
def write_and_read_file(sbx):
with open("./test.txt", "rb") as file:
sbx.files.write("/test.txt", file)
file_content = sbx.files.read("/test.txt")
print("content in sandbox:", file_content)
参数说明如下表所示。
在文件准备好之后,可以在 Sandbox 内执行 Python 代码和 Shell 命令。
def run_code_and_command(sbx):
sbx.run_code("print('hello world')")
sbx.commands.run("echo hello")
参数说明如下表所示。
当您暂时不再使用某个 Sandbox,需要释放算力(停止计费),同时期望保留 Sandbox 产生的数据当前状态时,可以使用暂停与恢复 Sandbox 功能。
def pause_and_resume(sbx):
sandbox_id = sbx.sandbox_id
sbx = Sandbox.connect(sandbox_id=sandbox_id)
参数说明如下表所示。
在运行 Sandbox 过程中,可以查看 Sandbox 的状态。
def print_sandbox_info(sandbox_id: str) -> None:
sbx = Sandbox.connect(sandbox_id=sandbox_id)
print("sandbox_id =", info.sandbox_id)
print("template_id =", info.template_id)
print("state =", info.state)
print("started_at =", info.started_at)
print("end_at =", info.end_at)
print("metadata =", info.metadata)
参数说明如下表所示。
最近更新时间:2026.09.16 11:54:07