复杂任务跑到一半报 Agent stopped due to iteration limit or time limit,答案被截断,用户只看到中间过程。

一开始怀疑是「任务本身需要多步规划,默认值偏小」,查了一圈,方向不对。

真正麻烦的地方在于,几个原因的现象几乎一样。工具调用链条太长,超过默认迭代次数。另一种情况是工具返回信息不足,Agent 反复尝试。

少数情况下是时间上限先到,迭代次数还没用完。

适当提高迭代上限

agent = initialize_agent(tools, llm, max_iterations=25)

同时放宽执行时间限制

agent = initialize_agent(tools, llm, max_execution_time=180)

精简工具数量,减少试错

python -c "print(len(tools))"

等前面都确认过,再在提示词里要求先规划再调用

prompt = '先列出步骤,再逐个调用工具'

同一份数据我导出了两份,一份留底,一份拿来试。

改完先别撤,确认这几项。任务能够完整跑完并给出最终答案,日志里迭代次数落在上限以内。

把上限调得过高时,出错的任务会烧掉大量 token,配合超时和最大步数一起设才安全。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189