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

Delay块移除代码中getElapsedTime始终返回0的问题排查求助

问题原因及解决办法

为什么delayX.getElapsedTime(agent)返回0?

当Delay块触发“移除时”事件时,智能体已经被移出该块的内部管理队列/处理状态,此时getElapsedTime()方法已经无法读取到该智能体在块内的有效计时数据,所以返回0。

正确获取等待时长的方法

直接在智能体进入Delay块时记录时间戳,移除时计算时间差即可:

  1. 给你的智能体添加一个double类型的参数,比如命名为enterDelayTime。
  2. 在delayX的「进入时」代码段中写入:
    agent.enterDelayTime = time();
    
  3. 在delayX的「移除时」代码段中计算等待时长:
    double waitDuration = time() - agent.enterDelayTime;
    

这样就能准确得到智能体在delayX中实际等待的时长。

如果你的Delay块是使用固定/动态设置的等待时长(而非条件触发移除),也可以直接调用Delay块的getWaitTime()方法获取设置的时长,但如果是基于事件或条件提前移除的场景,上面的时间戳方法更可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 23:14:49