You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从3台自托管代理池中任选两台指定代理中的一台执行任务

问题解答

是可以实现该需求的,你给出的示例配置本身就是符合语法规范的可用方案。

自托管代理池的需求匹配规则原生支持or()逻辑运算符组合多个判断条件,你写的配置会让对应流水线阶段自动匹配代理池中名称为Agent1或Agent2的空闲代理,只要两台中的任意一台处于可用状态,就会调度任务到该代理上执行,不会匹配到第三台未被纳入条件的Mac设备。

如果需要更灵活的配置适配后续调整,可以参考两种优化方案:

  • 方案一:将允许的代理名称配置为流水线变量,后续调整代理列表只需要修改变量值,无需改动YAML逻辑:
# 变量定义
variables:
  allowedAgents: Agent1,Agent2

# 阶段级代理配置
stages:
- stage: 你的阶段名称
  pool:
    name: 你的Mac自托管代理池名称
    demands:
    - or(agent.name -equals ${{ split(variables.allowedAgents, ',')[0] }}, agent.name -equals ${{ split(variables.allowedAgents, ',')[1] }})
  jobs:
  - job: 你的任务名称
    steps:
    - script: echo "任务执行中"
  • 方案二:给目标两台Mac代理新增同一个自定义用户能力(比如给Agent1、Agent2都添加名为target-mac-agent、值为true的自定义能力),后续新增目标代理时只需要给对应代理添加相同能力即可,完全不需要修改YAML配置:
demands:
  - target-mac-agent -equals true

注意:demands配置需写在对应阶段的pool属性下,如果你需要全流水线所有阶段都遵循该匹配规则,也可以将demands配置在根节点的pool属性中,会全局生效。

内容的提问来源于stack exchange,提问作者Chubsdad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 03:45:07