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

AnyLogic中如何向当前执行动作的Forklift Agent直接发消息?

如何向当前执行动作的特定Agent发送消息(AnyLogic场景)

问题场景

需要使用wait for message过渡,限制forklifts群体中的Agent在离开特定模块前继续推进:

  • 叉车Agent进入service模块的队列等待,离开队列后,需向该Agent发送消息,触发其进入下一状态:离开service模块、经过exit模块后,通过main.enter1.take(this);将Agent移至sink。

核心疑问

  • 向群体中任意Agent发送消息,与向当前正在离开模块且处于状态图中的Agent发送消息是否有区别?
  • 是否可以向群体中随机Agent发送消息?
  • 仅希望当前Agent在离开模块时响应消息,该如何实现?

尝试过的方法

  1. 在service模块的On exit字段写入代码,但Agent未按预期推进状态:
send("I'm Ready", agent);
  1. 在某模块的On enter字段使用以下代码,能成功向状态图发送消息,但认为无需使用findFirst函数:
Forklift fl=findFirst(forklifts,f->f.inState(f.idle));
if(fl!=null){
    send(agent,fl);
}

同时疑惑是否只需在状态图中添加fireEvent函数即可解决问题。

解决方案

通过以下代码成功获取目标叉车Agent并发送消息,实现预期效果:

Forklift fa=agent.flLink.getConnectedAgent();
send("Go", fa);
traceln("Message Sent");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 12:55:58