在dify中构建自纠错agent需定制三个工具并配置循环工作流:① validate_reasoning检测矛盾,② reconstruct_step生成替代推导,③ check_facts验证事实;通过条件判断与retry_count计数(上限3次)或超时中断实现容错终止。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Dify中构建一个能自动识别并修正自身推理错误的Agent,需要绕过平台默认的单次LLM调用链路,通过自定义工具、条件分支和循环机制实现错误检测与重试逻辑。
准备可验证的自我纠错工具集
创建三个核心自定义工具:① 【validate_reasoning】 工具,接收原始推理链与结论,返回“一致/矛盾/无法判断”及理由;② 【reconstruct_step】 工具,针对指定推理步骤生成3种替代推导路径;③ 【check_facts】 工具,从用户输入与知识库中提取事实依据并比对结论是否被支撑。
这三个工具必须全部启用“允许在工作流中调用”选项,否则后续条件判断将失效。
搭建带循环校验的Agent工作流
进入Agent配置页→点击“编辑工作流”→删除默认的单一LLM节点→拖入“开始”节点→连接至“LLM推理”节点(此处使用你选定的大模型)→从该节点引出输出线,接入“工具调用”节点,选择validate_reasoning工具→将工具输出接入“条件判断”节点。
在条件判断中设置规则:当输出字段verdict等于"矛盾"时,走“是”分支,连接至“工具调用”节点并选择reconstruct_step工具;当verdict为"一致"时,走“否”分支,直接输出最终答案。
注意:【reconstruct_step工具的输出必须包含原始错误步骤编号与新推导文本】,否则后续替换无法定位。该工具调用后需接一个“文本处理”节点,用正则re.sub(r'步骤\d+:', '', output)剥离前缀,再拼回原推理链对应位置。
配置容错边界与终止策略
方法一:在工作流顶部添加“变量初始化”节点,设retry_count = 0;每次进入重构分支前,插入“变量更新”节点执行retry_count += 1;在条件判断后增加二级判断:若retry_count > 2,则强制走“否”分支并附加说明“已尝试三次修正,返回当前最优解”。
方法二:启用Dify的“超时中断”功能,在LLM节点高级设置中将“最大响应时间”设为15秒,并勾选“超时后跳过本节点”,防止陷入无限循环。
这一步不能省略——没有重试次数限制的自我纠错会卡死整个工作流,且Dify不提供运行时手动中断入口。











