对于Dynamic workflow的思考 | fable-5聊天节选

Claude-fable-5: Dynamic workflows 的本质,是把"prompt/harness 分层"这个原来由人做的工作,交给了 agent 自己做。

Human-in-the-loop似乎该变了:

改倾向的留在 prompt,兜底的进 harness------以前的搬运工是人。

现在 agent 发现自己重复走某条路径,就自己写个 js 把它固化下来。搬运工变成了模型。下面按几条线展开。

一、固化的本质:把概率路径压缩成确定性程序

每次 LLM inference 都是从分布里重新采样,有方差、有 token 成本、有漂移风险。而一条已经被验证走得通的路径,根本不需要每次重新采样------把它写成代码,方差归零,成本归零(相对而言),行为可复现。

所以固化 = 缓存搜索结果。接上之前那个"在分布空间里做带约束的搜索"框架:agentic 执行是搜索,dynamic workflow 是把搜到的解缓存下来。这就是它像 JIT 编译的地方------解释执行(agentic)发现热点路径后,编译成机器码(workflow)。热路径固化,冷路径保持 agentic。

二、为什么模型越强,harness 杠杆越大

harness 的杠杆率随模型能力超线性增长。链条是这样的:

  1. 模型越强 → 固化出来的代码正确率越高(弱模型固化错误路径会把错误锁死,这是固化最大的风险)
  2. 固化正确率越高 → 可固化的半径越大 → 越来越多的子任务从概率区搬进确定区
  3. 确定区越大 → 模型的注意力和上下文只需要花在真正需要判断的部分 → 有效任务时长被拉长
  4. 确定性部分不会漂移 → 长任务保持在正确路径上的概率大幅提升

第 3 点是关键。长任务失败的主因不是模型不够聪明,是注意力被无关细节稀释、上下文被过程噪音污染。固化等于给模型做了"减负"------它不再需要记住怎么做已经会做的事。

三、Dynamic workflows vs SubAgents:两个正交的维度

这两个经常被放在一起比,但它们解决的是不同的问题:

SubAgents Dynamic workflows
扩展维度 空间:任务分解、上下文隔离 时间:经验积累、路径固化
解决什么 上下文污染、注意力稀释 重复采样的方差和成本
本质 雇人------每次都可能理解偏 造工具------每次行为一致
输出 概率的(还是采样) 确定的(代码执行)
适用 需要判断的子任务 需要执行的子任务

判断标准一句话:这个子任务需要判断还是需要执行? 新情况、模糊输入、需要权衡 → subagent。步骤已知、只是繁琐 → 固化成 workflow。

更有意思的是二者的演化关系:subagent 是 workflow 的探索前身。一个子任务先用 subagent 跑,跑几次都对,就说明这条路径已经收敛,可以固化。探索用 agent,收敛后固化------subagent 和 workflow 不是竞争关系,是同一条路径生命周期的两个阶段。

四、固化的梯度:prompt → skill → dynamic workflow → MCP

Skills 和 MCP 可以放进同一条"固化梯度"上看:

复制代码
prompt          skill              dynamic workflow      MCP tool
(最软)          (半固化)            (agent 自写代码)       (最硬)
激活分布    →   固化的 prompt+脚本  →  确定性程序        →   固化的能力接口
  • Skill 固化的是"怎么做"------过程知识。本质是把一段调好的 prompt + 流程打包成可加载模块,还是 prompt 和脚本的混合体,半软半硬。
  • MCP 固化的是"能做什么"------能力边界,纯接口,最硬。
  • Dynamic workflow 的特殊性在于它是在线自固化:skill 通常是人离线写好的,dynamic workflow 是 agent 运行时自己生成的 skill。

这条梯度同时是三条轴:确定性梯度、可靠性梯度、修改成本梯度。越往右越可靠,也越难改。所以固化不是越多越好------固化错了的东西,比每次重新采样更危险,因为错误被锁死且带着"确定性"的可信外衣。这直接引出最后一节。

五、评测的迁移:从评输出到评轨迹,从 judge 回归 assert

之前那套 prompt A/B + AI judge + 人工锚定,评的是"单次输出的质量分布"。agentic 场景下评测对象变了,而且有个非常漂亮的回归:

固化产物是代码,代码可以用传统软件测试来验证。

这意味着评测体系可以分层:

  1. 概率层(agent 的判断、探索行为):还是老办法------轨迹评测 + AI judge + 人工锚定。评的不只是终态对不对,还有路径效率、工具调用是否合理。
  2. 固化层(workflow 代码):直接上单元测试、assert、CI。从概率评分回归到确定性断言------judge 有偏、要抽检校准;assert 没有这些问题。
  3. 元层(固化决策本身):agent 什么时候决定固化、固化的边界画在哪,这是个新的评测对象。固化早了锁死次优解,固化晚了浪费采样。

由此得出一条实践规则:agent 每固化一个 workflow,必须同时生成它的测试。测试就是固化的准入门槛------通过测试才允许进入确定区,否则留在概率区继续采样。这和人类工程的直觉完全一致:没有测试的代码不该进 main 分支。

收拢成一句话

整个系统是一个"探索---固化"循环:

  • agentic 执行负责探索(概率,处理新情况)
  • dynamic workflow 负责固化(确定,缓存已验证路径)
  • 模型能力决定固化的正确率上限
  • 评测决定固化的准入门槛
  • skills / MCP 是固化的不同硬度档位

而模型能力越强,这个循环转得越快、固化半径越大、agent 能自主运行的时间越长。