Skip to main content
配置 Agent 环境

容器参考

容器类型、网络策略和预装包参考。

本页介绍托管 cloud Environment 中可供 Agent 使用的容器环境。self_hosted Environment 的操作系统、工具和资源由自托管运行环境决定。 在托管环境中,可以稳定依赖以下行为:
  • Agent 工具默认从 /data 运行;
  • config.packages 支持安装 apt、pip 和 npm 依赖;
  • config.setup_script 在依赖安装完成后执行;
  • 容器文件系统是临时工作区,重要产物需要保存到外部存储。

运行时与操作系统

托管环境的标准镜像当前基于 Ubuntu 22.04 LTS。CPU 架构、内核和容器引擎可能因运行环境而异。 在 Session 中运行以下命令可以查看实际环境:
cat /etc/os-release
uname -m
uname -r
需要运行原生二进制时,请在 Session 中检测实际架构,或同时提供所需架构的构建产物。

当前标准镜像中的工具

当前标准镜像包含常用系统工具,例如 gitcurlwgetjqvimsshmakecmakegccripgreptarunzip 当前标准镜像还包含以下主要语言运行时:
运行时当前主版本
Python3.12
Node.js20
Go1.22
Java21
Ruby3.3
PHP8.3
Ruststable
预装工具及其补丁版本会随镜像升级而变化。任务依赖精确版本时,请在 Environment 中显式安装或固定版本,并在 Session 中检查:
python --version
node --version
go version
java -version
ruby --version
php --version
rustc --version

工作目录

Agent 工具的默认工作目录是:
/data
托管环境中 WORK_DIR 的值为 /data,Bash 等工具未指定目录时也从 /data 执行。建议将仓库和工作文件放在 /data/workspace/ 等子目录中。 上传文件和仓库资源时,请通过各资源的 mount_path 指定挂载位置;参见 文件上传与挂载

安装额外软件

托管 cloud Environment 支持通过 config.packages 安装以下三类依赖:
字段执行方式
aptapt-get install 系统包
pippip install Python 包
npmnpm install -g Node.js 包
{
  "config": {
    "type": "cloud",
    "packages": {
      "apt": ["postgresql-client", "redis-tools"],
      "pip": ["pandas==2.2.3"],
      "npm": ["typescript@5.8.3"]
    }
  }
}
如果初始化逻辑不能用 packages 表达,可以使用 config.setup_script。脚本在依赖安装之后通过 /bin/bash -lc/data 执行,最大 64 KB,超时时间为 10 分钟。

资源与超时

可用 CPU、内存、磁盘和执行超时取决于实际运行环境和服务配置。不要让任务依赖固定的资源规格;如果任务存在最低资源要求,请先在目标环境中验证。 内存或磁盘耗尽时,进程可能被终止或写入失败。长任务还应考虑单个工具调用和单次 Turn 的超时。

文件持久化

  • 同一个运行实例存续期间,文件通常会在 Turn 之间保留;
  • 容器临时存储在连续 24 小时未活跃后可能被回收;
  • 回收后再次唤醒 Session 时,平台会重新初始化容器并按需重新准备 Environment 与挂载资源;未保存到外部存储的文件可能丢失;
  • Session 归档或结束后,不应再依赖其容器文件继续存在。
容器文件系统是临时工作区。需要长期保留的产物请通过 Files API、Git 仓库或其他外部存储保存;重要代码修改应及时 commit 并 push。

执行用户与环境变量

执行用户以及 HOMEUSERSHELLLANG 的值可能因运行环境或自定义镜像而异。不要让脚本依赖特定 UID,也不要假设系统目录始终可写。 需要确认时,在 Session 中运行:
id
whoami
printf 'HOME=%s\nUSER=%s\nSHELL=%s\nLANG=%s\nWORK_DIR=%s\n' \
  "$HOME" "${USER:-}" "${SHELL:-}" "${LANG:-}" "${WORK_DIR:-}"
Session 的 environment_variables 以及关联 Vault 中的环境变量凭证会在工具调用时注入。不要在日志或任务输出中打印密钥。

相关文档