Agent 陷入循环时每一轮看起来都有动作任务却没有新增证据、状态变化也没有更接近完成。常见表现包括同一参数反复调用工具、两个 Agent 互相退回、计划文字变了但下一步没变。排查时先比较相邻两轮的目标、状态、工具参数和回执找到始终没有变化的字段。ZGI 的 Workflow 支持设置循环次数和中断条件Runtime 对连续工具步骤也设有安全上限。这些硬边界可以阻止任务无限运行循环能否提前结束还取决于完成条件、状态写入和工具回执是否足够清楚。概念示意图判断、调用和结果沿轨道循环每一轮检查状态变化与新增证据没有进展时进入停止或人工接管。先看这一轮增加了什么工具调用次数多不一定已经陷入循环。分页读取、分段处理和多轮检索都可能需要重复动作区别落在每一轮是否带来了新页码、新文件、新状态或更小的剩余范围。动作不断发生进展记录却原地不动才需要触发停止策略。循环常留下几种指纹。同一个工具携带相同参数连续出现模型改写了计划却再次选择相同动作失败结果回到原节点后没有改变输入两个 Agent 反复把任务交给对方双方都没有明确的验收条件。把相邻两轮并排比较通常比只看最后一条报错更容易找到入口。系统为什么还允许下一轮开始完成条件写成“把事情处理好”程序无法判断何时结束。工具已经返回文件标识结果却没有写入任务状态Agent 下一轮仍会认为文件尚未生成。外部接口只返回一段模糊文字没有区分成功、失败和结果未知也会让模型继续尝试。多 Agent 交接还会引入另一个断点。上一个 Agent 没有留下当前负责人、已完成项和验收条件下一个 Agent 读取到整段对话后可能重新规划已经做过的步骤。任务在角色之间移动完成状态却没有一起移动。给每一轮留一张进展记录进展记录保留六个字段当前目标、上轮动作、新增证据、状态变化、剩余缺口、下一步许可。“新增证据”可以是文件 ID、查询结果、审批选择或明确错误“状态变化”应采用程序能读取的值。连续两轮都没有新证据也没有状态变化系统就不再自动进入下一轮而是补问缺失信息、换一次备用路径或交给人工处理。局部刹车和全局刹车分开设置局部刹车盯住某一个重复单元。可以把工具名、规范化参数和目标对象组成调用签名同一签名连续出现且返回没有变化时阻止再次调用。这样能抓住“查询同一订单”“反复生成同一文件”一类短循环。全局刹车观察整项任务。最大轮次、总耗时、调用预算和目标差距都可以成为上限其中一项触发后任务保存当前结果与停止原因。ZGI 的循环节点可以用循环次数和中断条件限制 Workflow排查时再结合相邻节点的输入输出确认流程在哪里重新进入了旧状态。停止以后留下可继续的信息任务停止后别把结果统一标成失败。记录可以区分“已经完成”“等待补充资料”“工具返回异常”“连续无进展”和“已转人工”。后续恢复时先读取停止原因再决定补参数、换工具或从指定节点继续避免恢复动作再次回到原循环。选一条曾经重复执行的任务把任意相邻两轮摆在一起。若说不清第二轮新增了什么就补上进展字段和停止路径再允许它继续运行。GitHubhttps://github.com/zgiai/zgiGiteehttps://gitee.com/zgiai/zgi