SuperAPI AI 工具集

inngest-workflow

智能体与模型

查看项目

更新于 10-16 09:29

技能介绍

用途:该技能用于在平台上通过 Inngest 构建持久化执行的工作流。资料明确指出 Inngest 是本平台唯一的工作流引擎,所有持久化执行都经由 Inngest 完成。适用场景包括智能体工作流、审批流、定时任务及多步骤异步流程。

主要能力与模式:

  1. 入站消息处理核心模式,依次执行收集上下文、智能体推理、按需请求审批或直接执行动作、创建草拟回复等步骤,每一步通过 step.run 包装以获得可重试能力。
  2. 节流去重:throttle 配置按 key、limit、period 限制重复处理,例如 key 为 event.data.conversationId,limit 1,period '10s'。
  3. 等待事件(审批流):step.waitForEvent 配合 match 与 timeout(如 '24h')实现审批。资料强调 match 字段必须与触发事件和等待事件中的字段名完全一致(如 data.actionId),否则永不匹配;超时需自行处理。
  4. 休眠(定时任务):step.sleep,如 step.sleep('wait-for-send', '5m') 后再执行发送。
  5. 调用子工作流:step.invoke 指定 function 与 data。
  6. 事件命名约定为 {source}/{entity}.{action},示例 front/inbound_received、action/approved、stripe/refund.completed。

必要用法与限制: 数据库访问必须使用惰性初始化 getDb() 在 step 函数内部调用,禁止在导入时使用单例,否则在无服务器/Turbopack 构建中会因 DATABASE_URL 不可用而失败。 在 Vercel 无服务器环境需保持 Inngest 函数注册,通过 cron 路由向 /api/inngest 发送 PUT 请求,并在 vercel.json 配置 crons 调度(示例为 */5 * * * *)。 调用外部 API(如 Front、Stripe)时应提供回退数据,在 try/catch 中出错时返回 fallback 并记录警告。

文件位置:Inngest 客户端位于 packages/core/src/inngest/client.ts;工作流定义位于 packages/core/src/inngest/workflows/;事件类型位于 packages/core/src/inngest/events.ts;cron 端点位于 apps/front/app/api/cron/route.ts。完整细节见 docs/support-app-prd/65-workflows.md。

其他信息(如具体收费、平台支持范围等)资料暂未提供。