多 Agent 死循环检测与预防

多 Agent 系统中,Agent 之间可能互相等待或互相触发,形成死循环。这比单 Agent 的循环更难检测,因为循环跨越了多个 Agent 的边界。

死循环的典型模式

互相委托

 
Agent A: "这个问题应该问 Agent B"
 

 
Agent B: "这个问题应该问 Agent A"
 

 
Agent A: "这个问题应该问 Agent B"
 
    ↓ (无限循环)
 

任务回传

 
Agent A 完成任务 → Agent B 审查 → 发现问题 → 退回 Agent A
 

 
Agent A 修改 → Agent B 审查 → 发现新问题 → 退回 Agent A
 
    ↓ (无限循环)
 

三层检测方案

架构层检测

机制说明
通信轮数限制设置最大消息传递次数
拓扑分析运行前检测环路
角色约束限制哪些 Agent 可以互相通信

逻辑层检测

机制说明
消息重复检测检测相同内容是否重复发送
参数重复检测检测相同参数的工具调用
任务状态追踪检测任务是否在相同状态间循环

监控层检测

机制说明
超时机制整个流程超时强制终止
成本监控超过预算强制停止
日志分析实时分析 Agent 通信日志

预防策略

策略说明
明确职责边界每个 Agent 有清晰的职责范围
设计终止条件每个任务都有明确的完成标准
引入裁判 Agent第三方 Agent 判断是否陷入循环
降级处理检测到循环时切换到单 Agent 模式

▶ 对应实操:46-LangGraph MemorySaver Checkpoint

速记卡(面试闪卡)

Q1:一句话讲清「多 Agent 死循环检测与预防」到底是什么?

A:多 Agent 死循环是 Agent 互相等待或触发形成的跨边界无限循环,靠三层检测与四招预防来治理。

Q2:死循环的典型模式 —— 怎么理解?

A:两种互锁——① 互相委托:A 说「该问 B」、B 说「该问 A」,无限踢皮球;② 任务回传:A 做完交 B 审查、B 退回、A 改完再交,问题越改越多。像两人互甩锅。

Q3:三层检测方案 —— 怎么理解?

A:三道报警线——① 架构层:限最大通信轮数、拓扑分析找环、限谁能说话;② 逻辑层:查重复消息/参数/卡同一状态;③ 监控层:超时强杀、超预算停、实时分析日志。循环藏不住。

Q4:预防策略 —— 怎么理解?

A:治本四招——① 明确职责边界别越界互推;② 设计终止条件想清「怎样算做完」;③ 引入裁判 Agent 判是否陷循环;④ 降级切回单 Agent 模式。核心是别让两 Agent 互等。

Q5:为什么比单 Agent 循环更难检测? —— 怎么理解?

A:单 Agent 循环好查(一个进程看调用栈);多 Agent 循环「跨界」——A 状态在 B 那、B 卡点在 A 这,单方面日志看不全,必须靠跨 Agent 全局视角(轮数/裁判/全链路日志)才能定位。

Q6:核心速记主线有哪些?

  • 典型模式:互相委托、任务回传两种互锁

  • 三层检测:架构层限轮数 / 逻辑层查重复 / 监控层控超时成本

  • 预防四招:职责边界 / 终止条件 / 裁判 Agent / 降级单 Agent

  • 比单 Agent 难:循环跨边界,需全局视角定位

口诀

A:多体互锁爱踢球,

委托回传绕圈兜;

三层设防监控守,

裁判降级解死扣。

相关链接


快速问答

问题参考答案
多 Agent 死循环的典型模式?互相委托(Agent A 说问 B,B 说问 A)和任务回传(审查-退回-修改-审查循环)
如何检测多 Agent 死循环?三层检测:架构层(通信轮数限制)、逻辑层(消息/参数重复检测)、监控层(超时/成本监控)
如何预防死循环?明确职责边界、设计终止条件、引入裁判 Agent、降级处理

相关链接