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

AnyLogic中Learner Agent无法访问Simulation Agent集合的问题排查

解决AnyLogic中Learner智能体访问Simulation集合的问题

问题核心

你在Learner智能体的状态入口动作中调用applyAdjustments(factorAdjustments)时报错,是因为factorAdjustments属于Simulation智能体,而Learner的上下文环境中没有直接引用这个变量,必须通过智能体层级链来访问。

智能体通信逻辑

你的三个智能体层级关系是:

  • Main:顶层智能体,管理Learner群体,同时包含Simulation智能体(带滑块UI的实例)
  • Simulation:嵌入在Main中的智能体,存储factorAdjustments集合
  • Learner:由Main管理的群体智能体,无法直接跨层级访问Simulation的变量,必须先获取Main实例,再通过Main获取Simulation实例

具体修复步骤

  1. 确认Main中的Simulation实例名称:打开Main智能体画布,找到你添加的Simulation智能体组件,确认它的名称(默认是simulation,如果你改了名字要对应替换)。

  2. 修改applyAdjustments方法中的代码:通过Main实例获取Simulation,再访问factorAdjustments,修改后的代码如下:

// Access the Main agent instance
Main main = (Main) get_Main();

// Ensure the Simulation instance exists and learners population is not empty
if (main.simulation != null && !main.learners.isEmpty()) {
    // Iterate over the factor adjustments from Simulation agent
    for (Map.Entry<String, Double> entry : main.simulation.factorAdjustments.entrySet()) {
        String factorName = entry.getKey();
        double percentageChange = entry.getValue();

        // Retrieve the first Learner in the population
        Learner sampleLearner = main.learners.get(0);
        double minFactor = sampleLearner.min_fscore(factorName);
        double maxFactor = sampleLearner.max_fscore(factorName);

        // Iterate over all learners and apply changes
        for (Learner learner : main.learners) {
            learner.change_fscore(factorName, minFactor, maxFactor, percentageChange);
        }
    }
}
  1. 修改状态入口动作的调用:把applyAdjustments(factorAdjustments);改成applyAdjustments();,因为现在方法内部已经直接从Main->Simulation获取集合了,不需要再传参(如果要保留传参模式,也可以改成applyAdjustments(main.simulation.factorAdjustments);)。

额外注意事项

  • 确保Simulation智能体在Main中是已实例化的(即你已经把Simulation组件拖到Main画布上,而不是只创建了Simulation智能体类型)。
  • 如果你的Simulation实例名称不是simulation,比如叫uiSimulation,要把代码中的main.simulation替换成main.uiSimulation。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 16:04:55