--- title: AI 工作流配置 description: 使用工作流引擎,构建定时任务与自动化业务流。 category: ai order: 3 --- # AI 工作流配置 > 使用工作流引擎,构建定时任务与自动化业务流。 ## 🔄 什么是工作流? 工作流(Workflow)是预定义的一系列自动化步骤,可以: - ⏰ **定时执行**:每天早上发送报表 - 🔗 **事件触发**:用户注册后自动发送欢迎邮件 - 🔁 **条件分支**:根据条件执行不同操作 - 📊 **数据处理**:批量处理数据 ## 🏗️ 核心概念 | 概念 | 说明 | |------|------| | **触发器 (Trigger)** | 工作流的启动条件 | | **节点 (Node)** | 工作流中的单个步骤 | | **连接 (Edge)** | 节点之间的数据流向 | | **变量 (Variable)** | 存储和传递数据 | | **执行日志** | 每次运行的记录 | ## 🚀 创建第一个工作流 ### 代码定义 ```typescript import { WorkflowBuilder } from '@websopy/ai-sdk' const workflow = new WorkflowBuilder({ name: '每日数据报告', description: '每天早上 9 点生成数据报告' }) // 添加触发器:定时执行 workflow.addTrigger({ type: 'schedule', config: { cron: '0 9 * * *', // 每天 9:00 timezone: 'Asia/Shanghai' } }) // 添加节点:获取数据 workflow.addNode('fetch-data', { type: 'http-request', config: { url: 'https://api.analytics.com/daily-stats', method: 'GET' } }) // 添加节点:生成报告 workflow.addNode('generate-report', { type: 'ai-agent', config: { prompt: '根据以下数据生成日报:{{fetch-data.output}}' } }) // 添加节点:发送邮件 workflow.addNode('send-email', { type: 'email', config: { to: ['team@company.com'], subject: '📊 每日数据报告', body: '{{generate-report.output}}' } }) // 节点连接 workflow.connect('fetch-data', 'generate-report') workflow.connect('generate-report', 'send-email') // 保存 const created = await client.workflow.create(workflow.toJSON()) console.log('工作流 ID:', created.id) ``` ### 可视化编辑器 在控制台 → AI 功能 → 工作流,点击「新建工作流」打开可视化编辑器。 ## 📦 节点类型 | 节点类型 | 说明 | |----------|------| | `http-request` | HTTP 请求 | | `ai-agent` | AI 智能体 | | `condition` | 条件分支 | | `loop` | 循环 | | `delay` | 等待/延迟 | | `webhook` | Webhook 通知 | | `transform` | 数据转换 | | `email` | 发送邮件 | ## 🔔 触发器类型 ### 定时触发 ```typescript workflow.addTrigger({ type: 'schedule', config: { cron: '0 */4 * * *', // 每 4 小时 interval: 'daily', // daily, weekly, monthly time: '09:00' } }) ``` ### Webhook 触发 ```typescript workflow.addTrigger({ type: 'webhook', config: { // 创建后获得 webhook URL } }) ``` ### 事件触发 ```typescript workflow.addTrigger({ type: 'event', config: { events: [ 'user.created', 'order.completed', 'ai.task.failed' ] } }) ``` ## 📊 执行与监控 ### 手动执行 ```typescript const run = await client.workflow.run(workflowId, { input: { date: '2024-01-15' } }) console.log('执行 ID:', run.id) ``` ### 查看执行日志 ```typescript const logs = await client.workflow.getRunLogs(run.id) for (const log of logs) { console.log(`[${log.timestamp}] ${log.node}: ${log.status}`) if (log.error) { console.log(' 错误:', log.error) } } ``` ## ❓ 常见问题 ### Q: 工作流执行失败怎么办? 1. 查看执行日志定位问题节点 2. 检查输入数据格式 3. 查看节点配置是否正确 4. 联系支持时提供执行 ID ### Q: 可以嵌套工作流吗? 是的,可以在一个工作流中调用另一个工作流: ```typescript workflow.addNode('sub-workflow', { type: 'workflow', config: { workflowId: 'wf-xxx', input: '{{current-data}}' } }) ```