必须以业务达标条件为主控逻辑、最大次数为安全兜底;先定义可计算退出目标(如摘要长度≤60且含“仅限工作日”),检查节点输出稳定布尔值,规则① short_enough = len(candidate)
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在Dify工作流中实现真正可控、可观察、能收敛的多轮迭代循环,必须绕开“只靠次数限制”的惯性思维,把业务达标条件作为主控逻辑,再用最大次数作安全兜底。
明确一个可计算的退出目标
先在循环体外定义一个清晰、可判定的达标字段,比如摘要长度≤60且包含关键词“仅限工作日”。这个字段必须能被检查节点稳定输出布尔值,不能依赖模型主观打分。
在检查节点中写明两项规则:① 【short_enough = len(candidate) ;② 【keeps_limit = "仅限工作日" in candidate】。只有两者同时为真,才视为业务达标。
这一步不做,后续所有循环都只是盲目重试——模型可能每轮都生成更短但漏掉关键词的版本,或保留关键词却超长,永远无法触发退出。
让检查结果真正驱动退出分支
方法一:在Loop节点配置面板中填写 break_condition 表达式
输入 {{ step.check_output.passed == true }},其中 check_output 是检查节点的输出变量名。该表达式为真时继续循环,为假时立即退出。
方法二:用条件分支节点承接检查输出,手动连接 Exit Loop 节点
将检查节点的 passed 字段接入条件分支,True 分支连到正常后续流程,False 分支必须直连 Exit Loop 节点——【不要连回循环起点,否则会跳过退出逻辑】。
配置最大次数作为硬性兜底
第一步:进入工作流编辑界面,选中 Loop 节点
第二步:在右侧属性面板中找到“最大循环次数”字段
第三步:输入数值(开发环境建议 ≤50,生产环境 ≤30)
第四步:保存并部署工作流
注意:这个值不是目标,而是熔断开关。它不能代替业务判断,但能防止因检查逻辑缺陷导致无限执行。若三轮内未达标,说明检查器或生成器本身需要重构,而不是调高次数。
验证检查器是否真正可区分
在连入 Loop 前,用三段固定文本单独测试检查节点:
① “会议仅限工作日召开,时长不超过30分钟”(应返回 passed=true)
② “会议安排在周末”(应返回 passed=false,feedback 指向关键词缺失)
③ “本会议仅限工作日召开,时间为每周一至周五上午九点整开始,持续约四十五分钟,请提前十分钟到场签到。”(应返回 passed=false,feedback 指向长度超标)
只有这三段输入能触发不同反馈,后续循环的退出路径才是可解释、可调试的。











