3.9 KiB
3.9 KiB
title, description, category, order
| title | description | category | order |
|---|---|---|---|
| AI 工作流配置 | 使用工作流引擎,构建定时任务与自动化业务流。 | ai | 3 |
AI 工作流配置
使用工作流引擎,构建定时任务与自动化业务流。
🔄 什么是工作流?
工作流(Workflow)是预定义的一系列自动化步骤,可以:
- ⏰ 定时执行:每天早上发送报表
- 🔗 事件触发:用户注册后自动发送欢迎邮件
- 🔁 条件分支:根据条件执行不同操作
- 📊 数据处理:批量处理数据
🏗️ 核心概念
| 概念 | 说明 |
|---|---|
| 触发器 (Trigger) | 工作流的启动条件 |
| 节点 (Node) | 工作流中的单个步骤 |
| 连接 (Edge) | 节点之间的数据流向 |
| 变量 (Variable) | 存储和传递数据 |
| 执行日志 | 每次运行的记录 |
🚀 创建第一个工作流
代码定义
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 |
发送邮件 |
🔔 触发器类型
定时触发
workflow.addTrigger({
type: 'schedule',
config: {
cron: '0 */4 * * *', // 每 4 小时
interval: 'daily', // daily, weekly, monthly
time: '09:00'
}
})
Webhook 触发
workflow.addTrigger({
type: 'webhook',
config: {
// 创建后获得 webhook URL
}
})
事件触发
workflow.addTrigger({
type: 'event',
config: {
events: [
'user.created',
'order.completed',
'ai.task.failed'
]
}
})
📊 执行与监控
手动执行
const run = await client.workflow.run(workflowId, {
input: { date: '2024-01-15' }
})
console.log('执行 ID:', run.id)
查看执行日志
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: 工作流执行失败怎么办?
- 查看执行日志定位问题节点
- 检查输入数据格式
- 查看节点配置是否正确
- 联系支持时提供执行 ID
Q: 可以嵌套工作流吗?
是的,可以在一个工作流中调用另一个工作流:
workflow.addNode('sub-workflow', {
type: 'workflow',
config: {
workflowId: 'wf-xxx',
input: '{{current-data}}'
}
})