在Dify中实现Tree of Thoughts需四步:一、开启多轮上下文记忆与长缓存,上传结构化评估标准;二、通过Agent指令或Python函数生成互斥分支;三、用JSON Schema强制结构化评分,公式节点加权计算并动态路由;四、用测试题日志和嵌入聚类验证分支多样性。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在Dify中用思维树(Tree of Thoughts)解决需要反复试错、多路径探索的复杂推理任务,比如解逻辑谜题、生成合规性检查方案或设计跨约束的产品策略,必须绕开默认的单链式推理模式,主动构造分支—评估—回溯的闭环流程。Dify本身不内置ToT执行器,但可通过提示工程+工作流编排+自定义函数调用实现等效效果。
第一步:在Dify应用中启用多轮思维生成能力
进入Dify控制台 → 应用设置 → 高级配置 → 开启「支持多轮对话上下文记忆」并勾选「允许长上下文缓存」。这一步不可跳过,【若未开启,后续所有分支思维将丢失历史状态,无法做横向对比】。Dify默认只保留最近3轮上下文,而ToT需同时维护多个思维节点的中间状态,至少需16K token缓存空间。
在知识库配置页,上传一份《ToT评估打分标准》文档(含清晰的“可行性/一致性/信息完备性”三项评分细则),供后续自动评估模块调用。该文档必须是纯文本或Markdown格式,PDF会被切片破坏结构。
第二步:构建ToT核心工作流
方法一:用Agent工作流手动编排分支
新建一个Agent工作流 → 添加「LLM节点」→ 在提示词中写入明确的ToT指令:“你正在执行Tree-of-Thoughts推理。请按以下顺序操作:①基于问题生成3个互斥的初始思维方向;②对每个方向独立展开2步推演,输出中间结论;③用提供的评估标准逐条打分;④选出最高分方向继续深挖,其余方向存档备用”。注意:此处必须指定“3个互斥方向”,否则模型易生成语义重叠的分支,浪费算力。
方法二:调用自定义Python函数实现自动分支管理
在Dify「函数节点」中接入一段轻量级Python代码:接收原始问题→调用LLM批量生成5个候选思维→用嵌入模型(如bge-m3)计算两两余弦距离→剔除距离<0.65的相似分支→剩余3个送入评估环节。这段代码的关键在于【余弦阈值设为0.65而非0.8,太严格会导致有效分支被误删,太宽松则丧失多样性】。
第三步:部署评估与择优机制
第一步:把评估标准转成可解析的JSON Schema
将你上传的《ToT评估打分标准》重写为结构化schema,例如:{“feasibility”: {“type”: “integer”, “min”: 1, “max”: 5}, “consistency”: {“type”: “integer”, “min”: 1, “max”: 5}, “completeness”: {“type”: “integer”, “min”: 1, “max”: 5}}。Dify的JSON Schema校验器会强制LLM输出严格匹配该结构的结果,避免自由文本导致后续无法聚合。
第二步:用公式节点计算综合得分
添加「公式节点」→ 输入表达式:(feasibility * 0.4) + (consistency * 0.35) + (completeness * 0.25) → 输出字段命名为“final_score”。权重分配必须按任务类型调整:逻辑类任务提高consistency权重,创意类任务提高completeness权重。
第三步:设置动态路由规则
在工作流末尾添加「条件路由」→ 规则设为“final_score ≥ 4.2 → 走‘深度扩展’分支;3.5 ≤ final_score < 4.2 → 走‘微调优化’分支;final_score < 3.5 → 触发‘重生成分支’”。这里阈值不是固定值,需根据首轮测试结果动态下调0.3~0.5——首测时模型常因不熟悉评估维度而集体低分。
第四步:验证ToT效果是否真正生效
准备一个含明确冲突约束的测试题,例如:“设计一款面向糖尿病患者的零食,要求:①碳水<10g/份;②含优质蛋白;③成本≤8元/包;④保质期≥90天”。向工作流提交该题后,立即检查运行日志中的「思维节点快照」。
若看到3个分支分别聚焦于“植物蛋白基底”“乳清蛋白浓缩液”“昆虫蛋白粉”且各自推演中均出现“成本超标→替换包材→影响保质期”的链式修正,则ToT已激活;若3个分支全在讨论同一原料的配比细节,说明分支生成失败,需返回第二步修改初始指令中的“互斥”强度词,把“互斥”换成“从不同学科视角切入(营养学/食品工程/供应链)”。
打开Dify的「调试面板」→ 查看每个分支的embedding向量聚类图 → 确认3个思维点在二维降维图中呈散点分布而非聚集在一处。这是判断思维多样性是否真实的唯一客观依据。


















