Files
jczxw-pc/content/docs/ai/workflow.md
2026-04-23 16:30:57 +08:00

3.9 KiB
Raw Permalink Blame History

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: 工作流执行失败怎么办?

  1. 查看执行日志定位问题节点
  2. 检查输入数据格式
  3. 查看节点配置是否正确
  4. 联系支持时提供执行 ID

Q: 可以嵌套工作流吗?

是的,可以在一个工作流中调用另一个工作流:

workflow.addNode('sub-workflow', {
  type: 'workflow',
  config: {
    workflowId: 'wf-xxx',
    input: '{{current-data}}'
  }
})