Skip to main content
Environment 定义了 Session 运行的容器模板:环境类型、网络策略、预装依赖、启动脚本和 metadata。你可以为不同场景创建不同的环境:严格隔离的安全审计环境、预装数据科学库的分析环境、或者开放网络的通用开发环境。

环境是什么

Environment 是 Session 的基础设施层:
  • 环境类型 - cloud 表示云端托管容器,self_hosted 表示自托管执行环境
  • 网络策略 - 控制容器的出站网络访问
  • 依赖包 - 预装系统包、Python 包、Node.js 包
  • 启动脚本 - 容器准备阶段、依赖安装完成后执行的用户脚本
每个 Session 启动时会基于指定的 Environment 模板创建隔离的运行实例。

字段说明

Config 类型

config.type 可以是 "cloud""self_hosted" self_hosted 的 config 必须严格为:
Self-hosted Environment 不会启动托管云端容器。外部 worker 通过 Work API poll、ack、heartbeat 和 stop 该 Environment 下的 Session work。 cloud 的 config 可以包含 networkingpackagessetup_script

网络策略

config.networking 支持三种请求模式,所有模式都必须使用对象格式(字符串简写如 "unrestricted" 不被支持,会返回 400)。 Cloud Environment 响应会包含以下 networking 字段。省略字段会按默认值返回。

完全开放

适用于需要下载依赖、访问外部 API 的通用开发任务。

受限模式

适用于不需要任意外网访问、但仍需通过包管理器拉依赖的任务。

白名单模式

适用于安全合规要求高的场景,精确控制可访问的外部服务。

预装依赖

通过 config.packages 指定容器启动时预装的依赖:
预装依赖会增加环境初始化时间。只添加确实需要的包,其余可在 Session 运行时按需安装。

启动脚本

config.setup_script 是一段在 sandbox 准备阶段、packages 安装完成之后执行的 shell 脚本,使用 /bin/bash -lc 解释器运行。常用于克隆代码、写配置文件、warmup 缓存等无法用 packages 表达的初始化步骤。
执行成功后会在沙箱内写入完成标记,本次 sandbox 内不会重复执行;沙箱被回收重建后会再次执行。脚本以非零状态退出会导致 Session 启动失败,错误响应中会带上 exit code 和 stderr 摘要。

创建环境

成功返回 200 OK

创建安全受限环境

查询环境

更新环境

更新环境不会影响已运行的 Session。新配置仅对后续创建的 Session 生效。

环境选型建议

常见问题

Q: 环境创建后需要等待多久才能使用? A: 环境创建后可立即用于创建 Session。实际的容器初始化(包括安装依赖)发生在 Session 启动时。 Q: 预装包的版本可以指定吗? A: pip 和 npm 包支持版本指定,如 "pandas==2.1.0""typescript@5.0.0"。apt 包使用系统源的默认版本。 Q: networking 设置错误导致 Agent 运行失败怎么办? A: 创建一个新的环境(或更新现有环境),修改网络策略后重新启动 Session。 Q: 一个账号最多能创建多少个环境? A: 无硬性限制,但建议按实际需求创建,避免管理混乱。建议通过命名规范分类。

下一步

启动 Session

将 Agent 和 Environment 组合,开始执行任务。

定义 Agent

回顾 Agent 配置。