AI 工作流模式:运行时无关编排实现生产环境稳定性与快速评估迭代的兼顾

通过将编排逻辑与运行时解耦为可移植的接口和适配器,可以在同一套代码基础上同时实现生产环境的持久化执行和离线评估的轻量循环,消除两者之间的冲突。
生产环境要求
  • 持久化执行
  • 幂等重试
  • 水平扩展
需要重量级、分布式的持久化运行时,如 Temporal
评估迭代要求
  • 轻量级、进程内
  • 几秒内重新运行
  • 无需沙箱或队列
不需要沙箱、任务队列或测试服务器
Mastra 框架
编排逻辑内嵌于框架的特定 API(如 createWorkflow、createStep),无法脱离框架引擎运行
Temporal 工作流引擎
允许通用语言编写,但强制确定性约束,且部署时需完整引擎环境,不适合评估循环
“大多数技术栈都强迫你选择其一。团队最终会与某个运行时‘捆绑’在一起,这是因为在主流工具的设计中,编排与运行时是紧耦合的。” —— Brex 工程师
运行时无关编排的核心模式
核心举措:不再为某个运行时编写编排代码,而是针对该运行时所遵循的接口规范来编写编排代码。编排逻辑是一个普通函数,唯一的依赖是类型化的 Steps 接口,不导入任何运行时相关内容。
模式结构
agents/ 目录(代理编排 + Steps 接口) + platform/ 目录(基元 + 运行时适配器) + bin/ 目录(入口点)
代理创建者只需接触 agents/ 目录,平台代码保持不变,运行时适配器隐藏实现细节
“该编排逻辑读起来就像业务逻辑:先丰富数据,再进行分类。它并不关心 enrichWithWebData 是分派给工作进程的 Temporal 活动,还是返回测试数据的进程内调用。” —— Brex 工程师
Temporal 适配器
将 Steps 接口的每个方法映射为 Temporal 活动,编排在确定性沙箱中运行,通过 Proxy 添加方法前缀实现活动分发。
长期运行任务成功率从 96% 提升至 99.9% 通过吸收瞬时基础设施故障,任务完成率稳定在 99.9%
“正是这一层强化了我们的长期运行代理。它们每天运行约一百次,每次耗时 20 到 60 分钟,涉及数十次 LLM 和工具调用。” —— Brex 工程师
评估适配器
在进程内直接实例化 Steps 实现,使用模拟插件返回测试数据,无需沙箱或队列。
仅需几行代码,可被任何评估平台(如 Braintrust)作为黑盒封装 实现低成本、可重复的离线评估循环
收益与代价
该模式带来评估与生产零偏差、运行时选择可逆、运行时复杂性成为一次性平台成本、可靠性与业务影响提升等收益,但同时也付出直接访问运行时原生操作受限、新功能推广需跨适配器实现、失去开箱即用可视化工具等代价。
收益
  • 评估版与生产版零偏差
  • 运行时切换只需替换适配器
  • 新开发者只需适配 Steps 接口
  • 长期运行任务成功率提升至 99.9%
代价
  • 无法直接调用运行时原生操作(如 Temporal 信号)
  • 新功能须通过接口并在所有适配器中实现
  • 失去框架原生图可视化工具
“当你拥有不止一两个工作流、真正的生产级可靠性要求以及严谨的评估流程时,这种模式才能真正发挥其价值。” —— Brex 工程师
编者判断
本文提出了一种实用的架构模式,通过接口抽象和适配器分离,解决了 AI 工作流中生产持久化与评估轻量化之间的矛盾。该模式特别适合需要高可靠性且频繁迭代 LLM 提示词的中大型平台,但其抽象代价需要在团队规模与功能复杂度之间权衡。