Agent Sandbox Registry

python-sdk

FC Agent Sandbox 官方文档技术提取报告

无英文版

.agents/evidence/research/2026-09-04-fc-sandbox-official-docs.md

FC Agent Sandbox 官方文档技术提取报告

日期: 2026-09-04 目的: 从阿里云 FC Agent Sandbox 官方文档中提取 SDK 实现相关的关键技术细节 来源: help.aliyun.com/zh/functioncompute/ 系列文档 原则: 仅记录文档明确写明的事实,推断内容单独标注


一、各文档关键摘要

1. 产品简介

2. 创建沙箱

3. 生命周期

4. 连接沙箱

5. 自定义镜像模板

镜像硬性要求(文档明确列出)

级别 要求 不满足时影响
硬性 架构为 linux/amd64 Template 转换直接失败
硬性 ACR 镜像不应开启镜像加速选项 Template 转换直接失败
条件 镜像内存在固定路径 /bin/bash commands.run、PTY 失败
硬性 /etc/passwd、/etc/group 为标准文件且可写 gatewayd 无法初始化默认用户,容器启动失败
条件 PATH 中存在 python3 或 python Python run_code 不可用
条件 PATH 中存在 node JavaScript run_code 不可用
推荐 系统 PATH 至少包含 /usr/local/bin、/usr/bin、/bin 常用命令找不到

6. 用户与工作目录

7. 启动与就绪命令

8. 模板名称与版本

9. 内置模板

模板 适用场景 自动就绪
base 基础命令、文件访问、SDK 连通性验证 是(开通即用)
code-interpreter-v1 AI Agent 代码执行、数据分析 是(开通即用)
browser 浏览器自动化 否(需自行构建)
All-In-One 浏览器 + 代码执行 否(需自行构建)

10. base 模板

11. code-interpreter-v1 模板

12. 浏览器模板

端点 路径 用途
健康检查 https://<sandbox-host>/health 判断 browser 服务是否启动完成
CDP 自动化 wss://<sandbox-host>/ws/automation 浏览器自动化
VNC 实时流 wss://<sandbox-host>/ws/livestream 实时查看浏览器桌面

13. 使用约束

地域

地域 Region ID
华北 2(北京) cn-beijing
华东 2(上海) cn-shanghai
华东 1(杭州) cn-hangzhou
华南 1(深圳) cn-shenzhen
中国(香港) cn-hongkong
新加坡 ap-southeast-1
美国(弗吉尼亚) us-east-1
美国(硅谷) us-west-1

Endpoint 格式

E2B_API_URL=https://api.<region>.e2b.fc.aliyuncs.com
E2B_DOMAIN=<region>.e2b.fc.aliyuncs.com

版本要求

14. E2B 兼容说明

兼容状态总览

能力模块 状态
Sandbox 兼容(暂停需白名单)
Commands 兼容
Filesystem 部分兼容(不支持文件自定义元数据)
Code Interpreter 兼容
Template 兼容
CLI 部分兼容
Metrics 兼容(磁盘/页缓存为占位值)
Logs 受限(返回空数组)
Network Config Update 受限(返回成功但无实际效果)
Snapshots / Volume / Team / Access Token 暂不兼容

兼容 API 列表

文件元数据限制

envd 0.5.2 版本下,SDK 会抛出 TemplateException: File metadata requires envd 0.6.2 or later.

15. 命令执行概览


二、关键发现

A. 容器通信机制

A1. 容器内的 envd 服务

A2. 端口与 URL 格式

A3. 通信协议

A4. 公网网关

B. 模板结构

B1. 模板组成

B2. 没有 startCmd / readyCmd 的概念

B3. 模板名称规范

C. 沙箱生命周期

操作 API
创建 Sandbox.create(template=..., api_key=..., api_url=..., domain=..., timeout=...)
连接 Sandbox.connect(sandbox_id, ...)
列表 Sandbox.list()
信息 sandbox.getInfo() / sandbox.is_running()
超时 sandbox.set_timeout(ms)
暂停 sandbox.pause() (需白名单)
终止 sandbox.kill()
下载 URL sandbox.download_url(path)
上传 URL sandbox.upload_url(path)
端口访问 sandbox.get_host(port)

D. 容器内环境

E. 浏览器模板


三、架构影响分析

我们 SDK 中已验证正确的假设

  1. E2B 协议兼容: 官方文档确认完全兼容 E2B SDK API,只需替换 endpoint
  2. envd 数据面端口 49983: 代码中 ENVD_PORT = 49983 与文档中 sandbox.envd_api_url 一致(虽然文档未直接写出 49983,但 envd_api_url 属性的存在间接确认)
  3. 端口 URL 格式: {port}-{sandbox_id}.{domain} 格式在文档的 get_host() 使用中得到确认
  4. envd 认证 Header: X-Access-Token 在浏览器模板文档中被明确提到
  5. 控制面认证: Authorization: Bearer {api_key} 与文档一致
  6. 地域 Endpoint 格式: api.<region>.e2b.fc.aliyuncs.com / <region>.e2b.fc.aliyuncs.com

需要修正或补充的发现

  1. 没有 startCmd / readyCmd 模板配置: 文档中的"启动与就绪命令"实际上只是后台命令使用教程,不存在模板级 startCmd/readyCmd。我们 SDK 中如果有 template.yaml 中的 startCmd/readyCmd 字段,这是我们自己的扩展,不是 FC 平台的概念
  2. 没有 template.yaml / manifest.yaml: FC 平台的模板是通过 Template.build(from_image) API 从镜像创建的,不存在用户编写的 template.yaml 配置文件。我们 SDK 的本地 template.yaml 是自有扩展
  3. capability 模型不是平台概念: 文档中没有提到 capability(shell、files、code、terminal、ports)的概念。不同模板的能力差异是由镜像内容决定的(是否有 envd、code interpreter 服务等),而不是由元数据声明
  4. Gateway/gatewayd: 文档首次提到这个组件,它负责初始化容器内的默认用户。已由镜像实地检查确认(见 2026-09-04-fc-claude-code-image-inspection.md):Gateway 即 /.fce2b/entrypoint,是 Go 静态链接二进制,烤进官方基础镜像(非平台运行时注入),作为 PID1 进程管理器 + 反向代理
  5. envd 版本: E2B 兼容层报告版本为 0.5.2(从 SDK 文件元数据错误信息 envd 0.6.2 or later 间接获得);已由镜像实地检查确认(见 2026-09-04-fc-claude-code-image-inspection.md)envd 二进制版本为 v0.1.14(从 Go 二进制字符串提取)。两个版本号分属不同语义层(E2B 兼容 API 版本 vs Go 二进制版本)
  6. code-interpreter-v1 端口 5000: 文档明确说明默认端口是 5000,需确认我们的 SDK 是否正确处理

文档未提及的关键信息

  1. envd 的具体通信协议: 文档未说明 SDK 与 envd 之间使用的是 HTTP REST、gRPC 还是 Connect protocol。已由镜像实地检查确认 envd 提供 HTTP REST(files upload/download)+ gRPC/Connect(filesystem/process 服务),见 2026-09-04-fc-claude-code-image-inspection.md
  2. envd 监听端口: 文档未直接说明 envd 监听什么端口。已由镜像实地检查确认 49983(见 2026-09-04-fc-claude-code-image-inspection.md,环境变量 ENVD_PORT=49983)
  3. 控制面 API 的完整规格: 文档没有 OpenAPI/Swagger 规格说明
  4. 容器内的完整进程列表: 已由镜像实地检查确认主要进程为 entrypoint (Gateway) 和 envd,另有 sandbox-code-interpreter(按模板配置启用/禁用)。见 2026-09-04-fc-claude-code-image-inspection.md
  5. WebSocket 协议细节: Commands 和 Filesystem 是否使用 WebSocket 流式传输

四、对 SDK 实现的建议

4.1 Transport 层

配置项 当前实现 文档依据 状态
控制面 URL https://api.<region>.e2b.fc.aliyuncs.com 使用约束文档明确 正确
数据面 domain <region>.e2b.fc.aliyuncs.com 使用约束文档明确 正确
envd 端口 49983 文档未直接说明;已由镜像实地检查确认(环境变量 ENVD_PORT=49983,见 2026-09-04-fc-claude-code-image-inspection.md) 已确认
envd URL 格式 https://49983-{sandbox_id}.{domain} 与 get_host(port) 格式一致 正确
控制面认证 Authorization: Bearer {api_key} 使用约束文档明确 正确
envd 认证 X-Access-Token: {envd_access_token} 浏览器模板文档明确 正确

4.2 Template 系统

4.3 沙箱生命周期管理

4.4 code-interpreter-v1 支持

4.5 浏览器模板支持


五、官方镜像地址(北京地域)

fc-e2b-registry.cn-beijing.cr.aliyuncs.com/runtime/base:v0.0.44
fc-e2b-registry.cn-beijing.cr.aliyuncs.com/runtime/code-interpreter-v1:v0.0.44
fc-e2b-registry.cn-beijing.cr.aliyuncs.com/runtime/browser:v0.0.44

六、参考文档链接

文档 URL
产品简介 https://help.aliyun.com/zh/functioncompute/product-overview-of-fc-agent-sandbox
生命周期 https://help.aliyun.com/zh/functioncompute/lifecycle
创建沙箱 https://help.aliyun.com/zh/functioncompute/create-a-sandbox
连接沙箱 https://help.aliyun.com/zh/functioncompute/connect-the-sandbox
内置模板 https://help.aliyun.com/zh/functioncompute/built-in-templates
base 模板 https://help.aliyun.com/zh/functioncompute/base-template
code-interpreter-v1 https://help.aliyun.com/zh/functioncompute/code-interpreter-v1-template
构建自定义镜像模板 https://help.aliyun.com/zh/functioncompute/build-a-custom-image-template
用户与工作目录 https://help.aliyun.com/zh/functioncompute/user-and-working-directory
启动与就绪命令 https://help.aliyun.com/zh/functioncompute/startup-and-readiness-commands
模板名称与版本 https://help.aliyun.com/zh/functioncompute/template-name
浏览器模板 https://help.aliyun.com/zh/functioncompute/browser-template
使用约束 https://help.aliyun.com/zh/functioncompute/usage-constraints-of-fc-agent-sandbox
E2B 兼容说明 https://help.aliyun.com/zh/functioncompute/e2b-compatibility-explanation
命令概览 https://help.aliyun.com/zh/functioncompute/overview-of-commands

注意: 部分文档页面(Filesystem、Network、SDK 使用、Code Interpreter 独立页面)在获取时返回 404,可能 URL 结构有变或页面尚未发布。上述内容从可成功获取的页面中提取。


七、Claude Code 模板(补充)

文档 URL: https://help.aliyun.com/zh/functioncompute/claude-code-template

7.1 概述

Claude Code 是 Anthropic 的终端 AI 编程 Agent。阿里云在各地域 ACR 预置了 Claude Code 镜像,无需用户自行推送镜像或配置 ACR EE。使用方式与其他自定义模板一致:from_image + Template.build 构建模板后创建沙箱。

7.2 环境规格(文档明确)

项目 规格
操作系统 Ubuntu 25.04
Claude Code 路径 /home/user/.local/bin/claude
默认用户 user
工作目录 /home/user
MCP Gateway 不支持
推荐规格 cpu_count=2, memory_mb=8192

7.3 镜像地址(各地域,版本 v0.0.44)

Region 镜像
cn-beijing fc-e2b-registry.cn-beijing.cr.aliyuncs.com/runtime/claude-code:v0.0.44
cn-shenzhen fc-e2b-registry.cn-shenzhen.cr.aliyuncs.com/runtime/claude-code:v0.0.44
ap-southeast-1 fc-e2b-registry.ap-southeast-1.cr.aliyuncs.com/runtime/claude-code:v0.0.44
cn-hongkong fc-e2b-registry.cn-hongkong.cr.aliyuncs.com/runtime/claude-code:v0.0.44
cn-shanghai fc-e2b-registry.cn-shanghai.cr.aliyuncs.com/runtime/claude-code:v0.0.44
cn-hangzhou fc-e2b-registry.cn-hangzhou.cr.aliyuncs.com/runtime/claude-code:v0.0.44

7.4 关键发现

  1. 没有内置 HTTP Server: Claude Code 模板是一个终端 AI Agent,不启动 HTTP 服务。文档中没有提到任何 HTTP server 组件或监听端口
  2. 没有特殊启动命令: 模板不需要 startCmd/readyCmd。创建沙箱后直接通过 sandbox.commands.run() 运行 claude 命令即可
  3. 运行方式: 非交互模式使用 -p 参数;加 --dangerously-skip-permissions 跳过权限确认;加 < /dev/null 避免 stdin 等待
  4. 首次运行需初始化配置: sandbox.commands.run("echo '{}' > /home/user/.claude.json") ,否则可能报配置损坏
  5. 模型 API Key 通过 envs 注入: 中国站使用百炼 DashScope,国际站使用 Anthropic Console
  6. 默认用户明确为 user: 这是文档中首次对某个具体模板明确指定默认用户和工作目录(user / /home/user)

7.5 MCP 与 Skill 能力

能力 支持情况
claude mcp add(stdio / HTTP) 支持
SDK mcp 创建参数 不支持
getMcpUrl() / getMcpToken() 不支持

Skill 路径: - 个人(沙箱内全局):/home/user/.claude/skills/<name>/SKILL.md - 项目级:<项目>/.claude/skills/<name>/SKILL.md

7.6 中国站环境变量配置

envs={
    "ANTHROPIC_AUTH_TOKEN": "<百炼 API Key>",
    "ANTHROPIC_BASE_URL": "https://dashscope.aliyuncs.com/apps/anthropic",
    "ANTHROPIC_MODEL": "qwen3.7-max",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "qwen3.7-max",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "qwen3.7-max",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "qwen3.7-max",
}

7.7 架构影响