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

Anylogic中如何在一个Agent内调用另一Agent的变量?

非main层级跨代理调用变量的脚本错误说明

现存核心编写错误

  • 作用域访问不符合规则
    不同代理的变量默认属于自身私有作用域,在tir代理的函数内直接调用变量时,引擎只会按顺序查找tir代理自身作用域、main全局作用域下的同名变量,不会主动跨代理检索magazzini代理下的私有内容,会直接触发变量未定义的报错。
  • 缺少完整的代理寻址路径
    两个代理都不处于main层级下,脚本中没有写全magazzini代理的完整层级路径,既没有通过流程图内置的上下文对象获取magazzini代理的有效实例,也没有在调用变量时指定对应代理的访问前缀,执行时根本无法定位到目标变量的所属位置。
  • 流程图可调用函数未声明跨代理依赖
    供流程图调度的功能函数如果需要访问其他代理的资源,必须在函数定义时提前声明依赖的外部代理,否则流程图执行引擎调度该函数时,不会把magazzini代理的上下文注入到tir代理下的函数执行环境中,即使变量名书写正确也无法读取到对应值。

修正参考写法

跨代理调用变量需要先获取目标代理的实例引用,再访问对应变量,参考逻辑如下:

// 第一步:通过流程图上下文,按完整层级路径获取magazzini代理实例
const magazziniInstance = flowContext.getAgent('你的代理所在层级路径/magazzini');
// 第二步:通过代理实例访问目标变量
const needValue = magazziniInstance.你要调用的变量名;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 12:03:23