在LangGraph中,大模型(尤其是在使用ReAct架构或Agent模式时)陷入“逻辑死胡同”(例如:反复调用同一个报错的工具、在两个状态之间来回横跳)是一个非常常见的问题。 为了防止这种无限死循环,LangGraph 提供了从框架底层到业务逻辑层的多重防御机制。以下是解决这个问题的五种核心方法,建议组合使用(深度防御): --- 1. 框架自带防御:设置 (最基础的底线) LangGraph 在执行图(Graph)时,默认带有一个递归深度限制(默认通常是 25)。如果状态流转次数超过这个限制,框架会直接抛出 。 你可以根据业务的复杂程度,在调用 或 时手动调整这个限制,并捕获异常: 优点:实现成本为0,绝对能防止无限消耗Token。 缺点:属于“硬着陆”,直接抛出异常,不够优雅,无法在图的内部做平滑的错误恢复。 --- 2. 状态级防御:引入“步数计数器”(最推荐的优雅做法) 为了实现“软着陆”,最好的方法是在你的 (状态字典)中增加一个计数器,并使用条件边(Conditional Edge)来判断是否应该强制结束。 实现步骤: 1. 在 State 中增加 。 2. 在核心...