Workflow 4.1 Beta 发布:采用事件溯源架构提升可恢复性

2 分钟阅读
2026 年 2 月 3 日
Workflow 4.1 Beta 调整了工作流在内部跟踪状态的方式。现在不再原地更新记录,而是将每一次状态变化都存储为事件,并通过回放事件日志重建当前状态。本次发布还新增了 provider-executed tools 支持,并提升了整体吞吐能力。
Link to heading事件溯源对工作流意味着什么
事件溯源 是一种持久化模式:将状态变化按事件序列存储,而不是直接修改原有记录。系统不再保存“这次运行已完成”这样的最终状态,而是保存“run_created,然后 run_started,然后 run_completed”,再通过回放这些事件重建当前状态。
在 Workflow 4.1 中,run、step 和 hook 不再是可变的数据库记录,而是基于仅追加(append-only)事件日志的物化结果。每个事件都会记录时间戳和上下文,运行时按顺序处理事件来推导当前状态。
这种架构从三个方面提升了工作流可靠性:
-
自愈能力:如果队列消息丢失或发生竞态条件,回放工作流路由会识别缺失状态,并重新入队所需消息。旧版 run 在队列故障后通常需要人工干预;新版 run 可自动恢复。
-
完整审计轨迹:事件日志可回放导致任意状态的完整事件序列,让分布式工作流调试更容易。
-
一致性:事件为仅追加写入,因此写入过程中的部分失败不会让实体落入不一致状态。事件日志就是唯一事实来源(single source of truth)。
如果你想更深入了解事件模型(包括 run、step、hook 生命周期的状态机图),可查看事件溯源文档。
Link to heading其他更新
-
吞吐提升:工作流队列系统现在每秒可处理数千个 step。在依赖允许的情况下,多个 step 可并行执行。
-
Provider-executed tools:
@workflow/ai现已支持 Google Search、WebSearch 等 provider-executed tools,这些工具运行在模型提供商基础设施上,而非你的工作流内部。 -
NestJS 支持:新包
@workflow/nest为 NestJS 应用提供构建支持,处理依赖注入模式,让工作流更容易与现有 NestJS 服务集成。 -
顶层
using声明:SWC 插件现已支持在 step 和 workflow 函数中使用 TC39 Explicit Resource Management 提案,实现资源自动清理。 -
自定义类序列化:Client mode 现在支持自定义类序列化,可通过
manifest.json中的classes对象声明可序列化类型。 -
修复
@workflow/ai中 tool 输出被重复序列化的问题

