Skip to content
🔗 分享本题
查看我的学习进度 →

通过最大步数、总超时、动作去重、进展检测和人工接管防止 Agent 死循环

🧠 记忆锚点:限制预算,检测无进展,必要时交给人。

💡 答案要点

问题原因:

  1. 工具调用失败,Agent 重复尝试
  2. 任务太复杂,Agent 无法完成
  3. Prompt 设计不好,Agent 理解错误

解决方案:

python
max_iterations = 10
iteration = 0
visited = set()  # 记录已执行的动作

while iteration < max_iterations:
    action = agent.thought()
    if action in visited:
        break  # 检测到循环
    visited.add(action)
    result = agent.act(action)
    iteration += 1

防护措施:

  1. 最大轮次限制(如最多 10 轮)
  2. 超时机制(如 60 秒无进展则停止)
  3. 工具调用去重(记录已调用的工具 + 参数)
  4. 反思机制(让 Agent 评估当前进展)
  5. 人工介入(复杂任务允许用户中断)

📚 参考:LangGraph:可控循环与状态图