SuperAPI AI 工具集

using-workflows

办公与效率

查看项目

更新于 10-16 03:13

技能介绍

用途:该技能用于创建和运行可持久化的工作流,支持步骤、流式传输与智能体(agent)执行,并覆盖工作流的启动、恢复与结果持久化。

目录结构:每个工作流在 src/workflows/ 下拥有独立子文件夹。workflows/steps/ 存放可跨工作流复用的共享步骤函数(如流辅助函数);index.ts 含带 "use workflow" 指令的主编排函数;steps/ 存放带 "use step" 指令的独立步骤函数,每个步骤都是持久化检查点;types.ts 定义该工作流的 UI 消息类型。

创建与启动:主函数用 "use workflow" 指令定义,内部调用步骤函数进行编排。使用 workflow/api 的 start 启动,返回 run.runId(唯一标识)与 run.readable(UI 消息块流)。

恢复:使用 getRun 重新连接到进行中或已完成的工作流,再调用 run.getReadable({ startIndex })。

步骤与流式输出:步骤以 "use step" 声明并持久化其结果。向客户端流式发送 UIMessageChunk 时,必须在 agent.run() 前调用 startStream()、之后调用 finishStream(),以保证 WorkflowChatTransport 能正确解析。两者分别写入 { type: "start", messageId } 与 { type: "finish", finishReason: "stop" } 并关闭流。

元数据与日志:用 getWorkflowMetadata 获取 workflowRunId 以支持恢复。工作流运行时不支持 Node.js 模块,日志调用需包装在步骤中。

智能体与持久化:使用自定义 Agent 类获得完整流式控制,设置 maxSteps 与 writable: getWritable()。通过步骤函数保存输出,assertChatAgentParts 校验通用 UIMessage parts 是否匹配应用的工具与数据类型。