ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Dify实战-Dify workflow的确定性与Hermes agent skill的“确定性”对比

Dify实战-Dify workflow的确定性与Hermes agent skill的“确定性”对比 dify workflow的确定性与Hermes agent skill的确定性对比基于 Dify 1.16.x Hermes Agent 环境实测撰写2026-08。门户自用机器人选型案例的延伸讨论——回应读者在原文章下的疑问。 摘要上一篇文章说「门户机器人用 Dify 答因为展示场景要确定性」。有读者问Hermes 通过 skill 约束不是也可以做到确定性吗这篇文章正面回答这个问题确定性分三层——流程、行为、输出。skill 约束能锁住行为层和部分输出层但锁不住流程层因为流程决策权始终在 LLM 手里。用我们自己的四个实测案例证明文本约束是概率性服从结构约束才是确定性执行。这篇文章要解决的疑问你们说展示场景要确定性所以用 Dify——但 Hermes 有 skill 约束啊约束写好不也是确定的吗结论skill 约束能做到「部分确定性」但做不到 Dify workflow 那种「结构性确定性」。关键在分层约束 LLM 的行为 ≠ 消除 LLM 的决策。前者是概率性服从后者才是确定性执行。判断标准没有变这个场景要的是「确定性」还是「自主性」但「确定性」这个词要拆开看拆开之后答案就清楚了。场景原文章下的那个疑问上一篇写了我们门户两个自用机器人「认识我们」「AI 机器人」为什么用 Dify 回答而不是把本机的 skill 复制到云端 Hermes。核心论点公开展示面要的是确定性回答稳定、可审计、可发布这是 Dify workflow 的结构优势。文章发出后有读者问了一个很专业的问题Hermes 不是可以写 skill 约束吗约束写好了让它按流程走不也是确定性的吗这个问题问到点子上了——如果「约束」就能换来确定性那 Hermes 也能做到选 Dify 的理由就不成立了。所以我们认真把它拆开验证了一遍。痛点拆解确定性不是一回事是三层「确定性」这个词实际包含三个不同的层面层级含义举个例流程确定性下一步走哪个节点、走哪个分支问题来了先查知识库还是先问分类器行为确定性某个处理具体怎么做检索结果为空时走兜底文案还是报错输出确定性结果格式、结构、结论稳定回答永远是「结论依据建议」三段式三个层面skill 约束能覆盖的程度完全不同。实测证据skill 约束在哪里失效四个真实案例以下全部是我们自己环境里的实测记录Dify 1.16.x Hermes Agent#约束场景实测现象说明1MCP 工具 docstring 写「禁止引用其他工具名」模型仍按 docstring 里的工具名调用已禁用工具日志实证多耗一轮调用文本指令概率性失效2SOUL.md 写「知识库问题必须直接调 dify_ask禁止先浏览器搜索」部分提问仍先去浏览器/搜索兜一圈全局指令概率性不生效3RAG 改写节点 prompt 约束「保留用户关键语义」「OSPF 典型配置举例请带组网图」被改成「OSPF典型配置组网图」——「举例」被删命中全丢LLM 自由改写覆盖约束4信息链路 prompt 要求「从给定列表原样照抄标题」模型输出「英伟达芯片/价格战」等套路新闻——输入里根本没有这些内容「原样照抄」类约束直接失效四个案例是不同层级的问题docstring 失效是「模型没读工具说明」SOUL.md 失效是「全局规则和当前任务冲突时规则让路」改写丢词是「LLM 认为自己在帮忙优化」照抄跑偏是「模型自由发挥压过指令」。但它们有一个共同点全是文本约束全在概率性地服从。对照我们跑过的 36 次会话、3 种约束写法对比实验无约束 / 精简铁律 / 结构化约束结构化约束能把「执行达标率」从 88% 提到 100%但代价是 token 消耗涨 44%——约束是在「提高概率」不是在「锁定结果」。同一个输入约束生效时走 A 路径某次不生效时可能走 B 路径——这就是概率性。本质约束 LLM vs 消除 LLMDify workflow 为什么能做到确定性因为它根本不把流程决策交给 LLMskill 约束HermesworkflowDify机制约束 LLM 的行为——模型概率性服从文本规则消除 LLM 的流程决策——节点顺序/分支由平台强制执行失败模式静默漂移绕过一条铁律结果错但系统显示正常不存在「不服从」——路径固定可审计性这次为什么没遵守 skill无法稳定复现和解释节点级执行记录每步输入输出可查维护成本每条约束要实测验证约束之间还可能冲突画完即固定改流程是改图一句话skill 是「告诉 LLM 应该怎么做」workflow 是「直接规定怎么做」。前者靠说服后者靠结构。所以回到那个疑问「Hermes 写 skill 约束不也是确定性吗」——行为层可以接近流程层做不到。展示场景最要命的恰恰是流程层同一个问题这次先查知识库、下次先问分类器答案结构就漂了而你没法向访客解释「为什么昨天和今天不一样」。那 Hermes 什么时候也能确定性有边界但不是没有解。我们实际用的两条方法原理例子判定下沉为确定性脚本把「该走哪条路」从 LLM 手里拿走写成 if-else 代码检索结果判空、格式校验、兜底分支——全部 code 节点/脚本处理LLM 只做最后文案LLM 只做生成不做决策信息链路用确定性节点直出内容LLM 留在自由生成任务资讯链路code 节点提取标题摘要直出LLM 不接触原文这两条的本质和 Dify workflow 是同一个原则确定性靠「移除 LLM 决策」实现不靠「约束 LLM 决策」实现。我们能把它写在 Hermes 里但每个点都要自己写代码、自己测——Dify 是把这套做成了平台能力画图即有。边界不是「skill 没用」是「skill 的用处不在锁定确定性」说清楚防止误读不是「skill 约束没用」。我们的 36 次实验证明结构化约束把达标率从 88% 提到 100%——约束在「提高自主执行的稳定下限」上非常有用Hermes 内部交付天天靠它。不是「Hermes 不能确定性」。判定下沉为脚本后工具层和 Dify 的 code 节点一样确定。但这是「你主动把决策拿走」不是「约束让 LLM 自己守住」。不是「展示场景永远用 Dify」。如果门户机器人未来要自主操作自动生成方案、调用内部系统它就该进化成 Hermes 形态——选型是动态的场景变了工具就变。收尾回到那个疑问Hermes 用 skill 约束不是也能做到确定性吗能但只能到行为层流程层的确定性靠的是把决策权从 LLM 手里拿走——Dify 把这做成了平台能力Hermes 要靠你自己写。所以门户机器人还是用 Dify不是「约束不够好」是展示场景要的不是「更聪明的回答」是「更确定的回答」——而确定性这件事结构比说服可靠。 你遇到过「约束写了但模型没遵守」的情况吗评论区聊聊你的实测经历。 更多实战记录见我的博客鱼日先生本文基于真实工程实践记录撰写Dify 1.16.x Hermes Agent 环境门户机器人选型案例延伸讨论。文中实验数据36 次会话/3 写法对比、达标率 88%→100%、token 44%均来自我们自己的实测记录理论与推断部分已标注边界。AI 参与创作声明本文由 AI 辅助写作内容基于作者真实实测记录。
返回列表