SuperAPI AI 工具集

migrating-workflow-v4-to-v5

办公与效率

查看项目

更新于 10-15 20:05

技能介绍

用途:把应用从 Workflow SDK 4.x 升级到 5.0。5.0 保留 4.x 编程模型("use workflow" / "use step"、start()、getRun()、hooks、webhooks、streams、sleep()、retries、事件日志),多数业务代码可原样编译;破坏性变更集中在运行时入口、World 接口和构建集成三处,不应重写 workflow 或 step 主体。

主要能力与用法:先做盘点,读取 package.json 中 workflow 与所有 @workflow/* 依赖,grep getWorld、createWorld、runStep、stepEntrypoint、internal/private、core/private、getConflict、getHookByToken、resumeHook、experimental_setAttributes 等,确认框架集成与是否实现自定义 World。随后把依赖统一升到 ^5.0.0(不可跨大版本混用),重装并重建,不手改生成产物;Node 要求不变(^18 || ^20 || ^22 || ^24)。机械改写包括:getWorld()/createWorld()/getWorldHandlers() 改为 await;createLocalWorld/createVercelWorld 改为 createWorld;runStep 改为直接调用 step 函数;删除 stepEntrypoint 手写路由;移除 internal/private 导入;流方法迁到 world.streams.* 且 runId 前置(参数顺序翻转,需逐处交换);world.steps.get() 与 events.listByCorrelationId() 需传 runId;hook.getConflict() 解析为 Run;hook.metadata 变为 Promise;experimental_setAttributes 改名 setAttributes;SWC 的 mode: 'client' 改为 'step';NestLocalBuilder 移到 workflow/nest/builder。

适用场景与限制:适用于升级依赖或命中已移除 v4 API 的项目。行为变更需人工决策而非静默修复,如 tracing 默认 linked、事件 ID 变为槽位号、每 run 事件上限、流写入立即刷新、重复 ID 构建失败、沙箱对非确定性更严格、进行中的 run 不迁移等。自定义 World 需改用 migrating-world-v4-to-v5 技能,事件 ID 必须为槽位号且强制分配,旧 ULID 编号的 run 无法被新代码重放。资料未提供具体收费与平台支持信息。