你的 ReAct 智能体正在浪费 90% 的重试机会——以下是解决方法 (opens in new tab)
📌 One-Sentence Summary 本文揭示了 ReAct 风格 LLM 智能体中的一个关键架构缺陷,即幻觉工具名称会浪费大部分重试预算,并提出了三种结构性修复方案——错误分类、单工具熔断器和确定性工具路由——以消除这种浪费并提高生产可靠性。 📝 Summary 本文详细分析了 ReAct 风格 LLM 智能体(例如使用 LangChain、LangGraph)中一个常见但隐藏的低效问题。通过对 200 项任务进行确定性模拟,作者证明了一个简单的 ReAct 智能体将其 90.8% 的重试预算浪费在永远不可能成功的错误上——具体来说,是幻觉工具名称。根本原因在于让 LLM 在运行时输出工具名称字符串(`TOOLS.get(tool_name)`),这会导致幻觉名称返回 `None`,而全局重试计数器却将此视为可重试错误。作者提出了三种结构性修复方案:1)在重试前对错误进行分类(可重试 vs. 不可重试),2)为每个工具实现熔断器而非使用全局计数器,3)将工具路由移至确定性代码中(使用 Python 字典),让 LLM 输出步骤类型而非工具名称。基准测试表明,应用所有三种...
Read the original article