用途:基于 Vercel Workflow DevKit 构建持久化、可恢复、能承受重启、部署与失败的工作流,适用于长时间运行任务、后台作业与 AI 智能体等场景。
主要能力:通过两种 TypeScript 指令分工协作。"use workflow" 负责编排步骤、睡眠与挂起,要求确定性,不能有副作用、不能使用 Node.js 模块与全局 fetch;"use step" 承载业务逻辑、I/O 与副作用,在独立请求中运行,失败自动重试。工作流基于事件溯源,状态以事件存储并重放,因此步骤间数据按值传递,步骤内对对象的修改不会影响工作流变量,必须返回修改后的数据。
必要用法:安装 npm i workflow,并在 next.config.ts 中使用 withWorkflow 包装配置。workflow 包提供 sleep、fetch、FatalError、RetryableError、createHook、createWebhook、defineHook、getWritable、getWorkflowMetadata、getStepMetadata;workflow/api 包提供 start、getRun、resumeHook、resumeWebhook、getHookByToken。sleep 支持 "10s"、"5m"、"2h"、"1d"、"2w"、毫秒数与具体日期。可用 FatalError 阻止重试,用 RetryableError 指定延迟重试;用 getStepMetadata 的 stepId 作为幂等键。流式输出需全部在步骤中操作,并记得 releaseLock。@workflow/ai 的 DurableAgent 可用于 AI 智能体,需在 workflow 中设置 globalThis.fetch = fetch。
适用场景与限制:适合需要睡眠数天、人工审批 Hook、外部事件恢复、并行执行、Saga、断路器、定时任务与人机协同流程。调试可用 npx workflow web 与 npx workflow inspect 系列命令,生产可在 Vercel 上使用 --backend vercel --env production。部署推荐 Vercel,其他后端需设置 WORKFLOW_TARGET_WORLD,可选 @workflow/world-local、@workflow-worlds/postgres、@workflow-worlds/turso、@workflow-worlds/mongodb、@workflow-worlds/redis。具体定价、限额与平台支持细节本资料暂未提供。