复杂任务跑到一半报 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,配合超时和最大步数一起设才安全。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。