使用前准备
- 在 Linux 安装 Docker Engine,或在 WSL 2 中安装 Docker Engine / 启用 Docker Desktop WSL 集成;不要同时连接两个 Docker 守护进程。
- 确认当前用户可以非交互地访问 Docker。可以先运行
docker version和docker run --rm hello-world。 - 私有镜像需要提前执行
docker login <registry>。AgentCompass 不保存或代管镜像仓库凭证。
Docker 守护进程具有较高的 host 权限。不要把不可信用户加入
docker 组,也不要随意挂载 host 上的敏感目录。使用 run 验证配置
下面以 SWE-bench Verified 和 mini-swe-agent 为例。示例通过 sample_ids 只运行一个任务;匹配的 Recipe 会根据该任务补充镜像和工作区:
agentcompass run 的最小验证示例。模型端点等通用参数见 agentcompass run。
Docker 同样支持 agentcompass launch。在编排文件的 defaults.environment 中设置所有请求共享的 Docker 配置,或在 requests[].environment 中设置单个请求;id: docker 与 Docker 参数写在同一层。详见 launch 的映射规则。
参数参考
参数可以通过--env-params 传入,也可以写在配置文件的 environments.docker 中。
上面的示例由 Recipe 补充任务镜像。将以下选项添加到该命令,可以把每个任务容器限制为 2 核 CPU 和 6 GiB 内存:
连接与凭证
Docker provider 不接收镜像仓库凭证;Docker CLI 会读取执行该命令的用户所配置的凭据。请先以同一用户运行docker login;启用 use_sudo_docker 后,还要确认 sudo 执行身份能够读取相应凭据。
镜像与启动
标识与元数据
工作区与环境变量
| 字段 | 默认值 | 说明 |
|---|---|---|
workspace | /workspace | 容器内执行任务命令的绝对路径,对应 Docker 的 —workdir;目录不存在时由 Docker 创建。该路径应与镜像中的项目或任务根目录一致。 |
default_workspace_root | /workspace/ | Benchmark 未指定任务工作目录时,提供给 Harness 的默认 workspace root;不会改变 workspace 设置的容器工作目录。 |
env | {} | 以对象形式提供的环境变量,按 key=value 注入任务容器;建议值使用字符串。不要把长期凭证写进公开配置文件。 |
mounts | [] | Docker 挂载列表。每项可以是 source:target[:mode] 字符串,也可以是含 source、target 和可选 mode 的对象;source 是 host 路径或 Docker volume,target 是容器内绝对路径,mode 例如 ro 或 rw。 |
资源
网络
| 字段 | 默认值 | 说明 |
|---|---|---|
network | 未设置;外部连接使用 Docker bridge | public 任务容器以及网络策略代理连接外部网络时使用的 Docker 网络。阶段间需要切换策略时,必须使用 bridge 类型网络。 |
allowlist_proxy_image | python:3.12-alpine | 使用 allowlist 或在阶段间切换网络策略时,网络策略代理使用的容器镜像;镜像必须包含可执行的 python。仅在需要固定镜像源或内部镜像仓库时覆盖。 |
生命周期与超时
Docker provider 不提供独立的任务容器生命周期或命令超时参数。Environment 正常关闭时会自动删除容器;使用
--keep-environment 可以保留容器,评测总超时由运行控制设置。
参数参考来源
- 运行
agentcompass config docs env docker,可以查看当前安装版本实际支持的字段、类型和默认值。 - Docker 原生参数的行为与限制见
docker container run和 Resource constraints。
agentcompass config docs env docker 的输出为准;Docker 对镜像、挂载和资源选项的解释,以所连接 Docker daemon 的版本与官方文档为准。
特有行为
image在 Recipe 和显式配置合并后仍为空时,任务会在创建容器前报错。- 固定
name会被该 provider 创建的所有任务容器复用。并发创建、使用--keep-environment,或上一次清理失败后再次创建时会发生名称冲突,因此通常应使用自动名称。 - 正常关闭 Environment 时会强制删除任务容器;使用
--keep-environment时,AgentCompass 不执行这一步。 command必须让容器保持运行,否则后续 Harness 命令无法执行。
