SuperAPI AI 工具集

inngest-realtime

智能体与模型

查看项目

更新于 10-15 18:31

技能介绍

用途:从 Inngest 持久函数向实时 UI 流式推送更新,用频道(channel)和主题(topic)广播进度,可渲染工作流执行过程,或构建双向的人机回环(human-in-the-loop)流程。资料聚焦 TypeScript,Python/Go 请参考 Inngest 官方文档,核心概念跨语言通用。

主要能力与架构:由三部分组成——频道定义(服务端与客户端共用的类型化契约,含主题 schema);发布(在步骤间调用 step.realtime.publish 包裹为持久发布,或在 step.run 内用 inngest.realtime.publish);订阅(服务端 action 签发订阅 token,React 客户端用 useRealtime hook,非 React 用底层 subscribe())。v4 已原生支持实时,无需 middleware。

典型模式:订单状态页随步骤完成动画;AI 智能体向聊天 UI 流式输出 token;长任务日志尾部;人机回环审批(频道 + waitForEvent);管理后台实时订单列表扇出。

必要用法与限制:需安装 Inngest v4 SDK(npm install inngest),.env.local 设置 INNGEST_DEV=1,本地运行 npx inngest-cli@latest dev。v4 实时 API 位于子路径 inngest/realtime;独立包 @inngest/realtime 属 v3,与 inngest@4.x 不兼容,混用会导致 PUT /api/inngest 报 TypeError: Cls is not a constructor、订阅 token 401 等。签发 token 前必须校验用户对频道的归属,否则他人可凭猜 ID 订阅。手动 subscribe 路径下不可从 Next.js server action 返回 ChannelInstance(含 zod 类方法无法序列化),需拆为原始值;getClientSubscriptionToken 已返回可序列化结构。INNGEST_DEV=1 缺失时 SDK 要求云签名密钥并导致 401/500,需硬重启开发服务器。主题 schema 在发布时校验。