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

AnyLogic技术求助:按编号为Agent分配指定Resource Pool

AnyLogic 按Agent编号分配对应资源池实现步骤

1. 给Agent添加编号参数

  • 打开你的Agent类型(自定义或默认Agent)的属性面板,添加一个整数类型参数,命名为resourceGroupId,用于存储1-24的分组编号。

2. 在Source出口分配1-24编号

  • 打开Source的属性面板,找到「On exit」事件(Agent生成并离开Source时触发)。
  • 在事件中写入代码:
    • 若要随机分配(每个编号概率均等):
      agent.resourceGroupId = uniform_discr(1, 24);
      
    • 若要按顺序循环分配(第1个Agent=1,第2个=2…第24个=24,第25个回到1):
      agent.resourceGroupId = (source.getOutputCount() - 1) % 24 + 1;
      

3. Service Block根据编号绑定对应资源池

前置准备

先创建24个Resource Pool,命名为pool1、pool2…pool24,分别对应编号1-24。

动态绑定资源池(两种方法)

方法一:直接条件判断(适合少量资源池)

  • 打开Service Block的「Resources」选项卡,选择「Use specified resource units」,点击「Edit」。
  • 点击「Add」→ 选择「Resource pool (dynamic)」。
  • 在「Pool」输入框中写入条件判断代码:
    agent.resourceGroupId == 1 ? pool1 : 
    agent.resourceGroupId == 2 ? pool2 : 
    agent.resourceGroupId == 3 ? pool3 : 
    // ... 依次写全到24
    pool24
    

方法二:数组批量绑定(高效简洁)

  • 在Main的「Properties」→「Parameters」中,添加一个ResourcePool[]类型的参数,命名为resourcePools,赋值为:
    new ResourcePool[]{pool1, pool2, pool3, ..., pool24}
    
  • 回到Service Block的资源选择窗口,选择「Resource pool (dynamic)」,在「Pool」输入框中写入:
    resourcePools[agent.resourceGroupId - 1]
    
    (注:数组索引从0开始,所以用resourceGroupId - 1对应到数组的第n个元素)

注意事项

  • 确保resourceGroupId的取值范围始终是1-24,避免数组越界或条件判断遗漏。
  • 根据模型需求设置每个Resource Pool的容量,防止资源不足导致Agent阻塞排队。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 09:39:58