sandbox 命令组用于创建和管理 AgentKit 沙箱工具,并在沙箱会话中执行命令、调用智能体、传输文件、打开 Web 预览或注入本地模型订阅凭据。sandbox create 与 sandbox config 对外支持的工具类型包括 All-in-one、Skill、CodeEnv、DevEnv、ArkClawEnv、HermesEnv 和 Private。
多数沙箱命令从
.agentkit/sandbox.yaml 或 AGENTKIT_SANDBOX_REGION 读取 AgentKit 控制面区域;sandbox dashboard 还支持用 --region 指定本地控制台会话的区域。TOS 挂载区域可通过 AGENTKIT_SANDBOX_TOS_REGION 指定;未设置时,CLI 会根据 TOS bucket 或当前云环境推断。-s, --session-id <id>, --sid <id> 指定用户会话 ID;--tool-id <id> 指定沙箱工具 ID;--tool-name <name> 按工具名称查找;--tool-type <type> 指定工具类型。若本地配置中已经保存 tool-id、tool-name、tool-type 或 session-id,相关命令会按各自参数表在未显式传参时读取配置默认值。
工具选择通常按显式 CLI 参数、.agentkit/sandbox.yaml、AGENTKIT_SANDBOX_TOOL_ID、本地缓存或远端 Ready 工具的顺序解析;具体命令是否允许自动创建或提示选择,以对应命令说明为准。
命令总览
sandbox build
在云端 Code Pipeline 中构建自定义沙箱镜像。构建完成后,CLI 会把tool-type 设置为 Private,并把生成的镜像地址写入 .agentkit/sandbox.yaml,便于后续 sandbox create 使用。
sandbox init
生成沙箱 Dockerfile 模板。未指定模板时,默认生成skill 模板。命令会按模板对应的工具类型解析当前内置基础镜像,并把实际镜像地址写入生成的 Dockerfile。
解析内置基础镜像需要可用的 AgentKit 控制面凭据和区域配置。离线环境或无权限环境无法生成带实际基础镜像的模板。
sandbox config
配置沙箱命令的本地默认值。配置文件位于当前项目的.agentkit/sandbox.yaml,--list 会输出当前配置文件内容,并自动隐藏模型 API Key 和 WebSearch API Key。
.agentkit/sandbox.yaml 时,CLI 只保存网络、工具类型、CPU、快照和会话 TTL 等基础默认值;模型提供方、模型名称和模型 Base URL 会在读取有效配置时按云环境补齐,只有用户通过 sandbox config --set model-* 或命令行标志显式设置后才会持久化。
支持的配置键如下。
模型环境变量
sandbox create 和 sandbox exec 的模型参数会转换为多组环境变量,供 Codex、OpenCode 和读取 MODEL_AGENT_* 的运行时或工具共用。
若
--model-base-url 指向非内置模型端点,需要同时传入 --model-provider。对于已有的 CodeEnv 会话,sandbox exec 中显式传入的模型名称、API Key 或 Base URL 会同步更新会话内的 /home/gem/.env、Codex 配置和 OpenCode 配置,后续终端可以复用同一组设置。
生成的 Codex 配置会写入沙箱会话内的
/home/gem/.codex/config.toml。通用模型参数不会自动生成 ANTHROPIC_* 变量,也不再通过 CODEX_CONFIG_TOML 或 CODEX_MODEL_CATALOG_JSON 环境变量传递生成配置;如需自定义 Codex 配置,请在会话内编辑该配置文件,或使用 sandbox codex-login 重新写入订阅登录配置。sandbox create
创建沙箱工具。创建完成后,CLI 会等待工具进入Ready 状态,并把工具 ID 与名称写入本地沙箱配置。
Skill 工具启用 LLM Shield 时,必须显式传入应用 ID。该参数只支持 Skill 工具类型。
Private 工具时需要先准备镜像地址:
sandbox dashboard
启动本地 Web 控制台,用于查看和操作沙箱工具与会话。该命令会在本机监听一个端口,默认在交互终端中打开浏览器;在 CI 或传入--no-open 时只输出访问地址。
通过安装脚本或
agentkit upgrade 安装的独立二进制已包含控制台终端界面所需资源,无需额外安装 Node.js 依赖。若手动解压独立发行包,请保留 vendor/ 目录与 ak 在同一安装目录,否则控制台页面可能无法加载终端组件。sandbox delete
删除沙箱工具或工具下的指定会话。传入会话 ID 时删除会话;不传会话 ID 时删除工具本身。删除工具时必须且只能用--tool-id 或 --tool-name 指定一个目标。
sandbox list
列出沙箱会话或工具,并始终输出 JSON。未传--tools 或 --sessions 时默认按 --sessions --local 工作,读取本地会话缓存;传入 --tools 时默认读取本地工具缓存。需要查询远端数据时显式传入 --remote。
sandbox list 是查看类命令,不会按常用会话命令的工具解析链自动创建或选择沙箱工具。--tools 与 --sessions 互斥,--local 与 --remote 互斥;--tool-name、--tool-type 和 --status 只适用于工具模式。sandbox mount
使用 TosBrowser 打开已挂载 TOS 的沙箱会话目录。该命令需要目标工具已配置 TOS 挂载,并且本地已通过agentkit login 保存可用于挂载授权的登录 profile。
sandbox exec
连接沙箱终端并执行命令。--command 可用于指定进入终端后执行的初始命令;未设置时打开终端连接。--mode tmux 会附加或创建与会话 ID 同名的 tmux 会话。
sandbox invoke
通过 A2A 调用沙箱中的智能体。默认工具类型为SkillEnv,输出 JSON。传入 --async 时,命令在创建任务后立即返回;传入 --task-id 时,命令轮询已有任务。
sandbox run
读取 YAML 文件并把其中的条目转换为agentkit sandbox exec 命令。默认文件名为 agentkit-sandbox-run.yaml。配置根节点可以是列表,也可以是包含 exec、execs、tabs 或 commands 的对象。
agentkit-sandbox-run.yaml
session_id、sid、tool_id、tool_type、command、mode、shell_id、git_config、model_name、model_api_key、model_provider、model_base_url、cwd、workdir、copy 和 copies。也可以使用 args 或 argv 直接提供 sandbox exec 的原始参数列表。
sandbox shell
在沙箱中执行非交互 shell 命令并输出 JSON 结果。该命令要求传入--command,适合自动化脚本;需要交互终端时使用 sandbox exec。
sandbox web
打开沙箱 Web 预览,并输出包含 URL、工具 ID、会话 ID 与会话是否新建的 JSON。默认打开浏览器时,CLI 会同时请求远端沙箱浏览器打开/home/gem/,便于直接查看会话文件;传入 --no-open 时只返回 Web URL。
sandbox codex-login
将本地 Codex 或 Claude 订阅凭据注入沙箱会话。model-login 与此命令等价。
使用 --provider codex 时,CLI 会在沙箱会话内写入 /home/gem/.codex/config.toml,配置 OAuth 登录使用的 codex_login 模型提供方,并把默认模型 gpt-5.5 同步到 CODEX_MODEL、OPENCODE_MODEL 与 MODEL_AGENT_NAME。本地 API Key 不会随订阅凭据注入。
sandbox model-login
model-login 与 codex-login 等价,用于将本地 Codex 或 Claude 订阅凭据注入沙箱会话。
sandbox scp
在本地与已有沙箱会话之间传输文件或目录。远端路径必须以sandbox: 开头;相对远端路径会解析到 /home/gem 下。该命令使用本地会话缓存,因此目标会话需要先通过 sandbox exec、sandbox shell、sandbox web、sandbox invoke 或登录命令创建。