Skip to main content
网络策略只限制 Environment 内进程的出站网络,不会限制 AgentCompass 在 host 上发出的请求。 你可以分别控制 Environment 准备、agent 运行和结果验证阶段的网络访问。例如,准备阶段可以联网安装依赖,agent 运行阶段则只能使用任务中已有的文件。

三个阶段的策略

任务命令在任务 Environment 中执行。验证方式由 Benchmark 决定:可以直接在 host 上验证,也可以复用任务 Environment,或新建一个干净的验证 Environment。verifier_network_policy 只影响后两种验证方式。
字段生效范围
network_policy基础策略。用于 Environment 启动,以及 Environment 内未处于 agent 运行或验证阶段的准备、产物收集和其他操作。
run_network_policyagent 运行期间,Environment 内进程使用的策略。
verifier_network_policy在复用的任务 Environment 或新建的验证 Environment 中执行验证时使用的策略;不影响 host 上的验证进程。
network_policy 默认为 public。如果没有设置 run_network_policyverifier_network_policy,对应阶段会继承 network_policy。Recipe 也可能根据 Benchmark 要求补充网络设置;需要自定义策略时,建议显式设置三个字段。
Environment 准备完成后才会切换到 run_network_policy。因此,可以先使用基础策略安装可信依赖,再以更严格的策略运行 agent。

三种网络模式

publicno-network 直接写成字符串。allowlist 需要使用对象:
允许列表中的每一项只能是以下形式之一:
  • 域名,例如 api.example.com
  • *. 开头的通配符域名,例如 *.assets.example.com
  • IP 地址;
  • CIDR 网段。
不要填写 URL 协议、路径或端口,例如 https://api.example.com/v1 无效。CIDR 必须使用规范网络地址,例如填写 203.0.113.0/24,不能填写 203.0.113.10/24。不同 provider 支持的地址类型和数量也可能不同,具体限制见下方的 provider 表格及对应页面。

哪些请求会受到限制

请求是否受限,取决于发起请求的进程位于 host 还是 Environment。 因此,只有当 model、搜索或评测服务由 Environment 内的进程调用时,才需要把相应端点加入允许列表。AgentCompass 调用 provider API 来创建或关闭 Environment 的请求发生在 host 上,不属于这里的控制范围。 网络策略只控制出站访问,不负责限制从 host 或 provider 控制面进入 Environment 的连接。

provider 支持情况

Docker 使用的辅助出站代理由 AgentCompass 自动管理。它只负责执行允许列表,不是另一个需要单独配置的 Environment。离线使用时,应提前确保 Docker 可以取得代理镜像。 Daytona 最多接受 20 个域名条目或 10 个 IPv4 网络条目。详细的格式、互斥设置和前置条件,请查看对应 provider 页面。

设置网络策略

以下以 CLI 为例,将三个字段通过 --env-params 传给 Environment。配置文件、Python SDK 和编排文件的写法见配置 Environment。下面的配置允许准备阶段联网,但在 agent 运行和验证时关闭网络:
如需允许列表,把相应字段的字符串替换为 allowlist 对象即可:
第一次配置时,建议先运行一个任务,再扩大并发。这样更容易发现遗漏的重定向域名、文件分发域名或身份验证端点。

验证策略是否生效

使用 --file-log-level DEBUG 运行一个行为可预期的测试任务。日志中的以下字段分别表示准备、运行和验证阶段最终解析出的共享网络策略:
  • setup_network_mode
  • run_network_mode
  • verifier_network_mode
如果任务允许 agent 执行终端命令,还可以分别访问一个应当放行和一个应当阻止的地址。检查时要确认请求确实由 Environment 内的进程发出;在 host 上运行相同命令不能验证 Environment 网络策略。 单次请求失败不能单独证明隔离已经生效。DNS 解析、凭证或目标服务故障也会导致相同现象,应同时核对日志中的共享策略。若还配置了 provider 原生网络字段,则必须结合 provider 配置和实际访问测试判断最终网络行为。

排查网络问题

其他阶段性错误见评测故障排查

相关页面