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

如何在delay块中显示当前agent的延迟时间并解决报错

报错原因

agent cannot be resolved to a variable报错是因为文本对象的值编辑器执行上下文里没有预定义agent变量,你传入的agent参数没有对应的实体对象引用,程序无法识别就会抛出该错误。getDelayTime()方法本身需要传入一个当前存在于该Delay块中的Agent类实例作为入参,才能返回对应agent的实际延迟时长。

正确实现方案

根据你要展示的延迟时间对应的场景,选择对应代码即可:

  • 场景1:文本对象放在自定义Agent类型的画布中,要显示当前agent自身在sta1Delay块里的延迟时间
    直接把入参从agent替换为代表当前agent实例的this即可,代码为:
    sta1Delay.getDelayTime(this)
  • 场景2:文本对象放在Main主画布中,sta1Delay块设置为单agent处理模式(同一时间只有1个agent在块内停留),要显示当前正在处理的延迟时间
    先从Delay块的队列中取出当前停留的第一个agent,再作为入参传入,代码为:
    sta1Delay.getDelayTime(sta1Delay.get(0))
  • 场景3:要避免Delay块为空时的索引越界报错
    增加队列长度判断,块内无agent时显示默认值0,代码为:
    sta1Delay.size() > 0 ? sta1Delay.getDelayTime(sta1Delay.get(0)) : 0
    
  • 场景4:要显示块内指定agent的延迟时间
    先通过你预设的agent标识(比如自定义参数、id属性)定位到目标agent实例,将该实例作为入参传入getDelayTime()方法即可。

注意:传入getDelayTime()的agent必须是当前正处于sta1Delay块中的实体,否则方法会返回无效值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 06:18:27