什么是工作流?
工作流(Workflow),是指将某个业务过程中的任务按照一定的规则和顺序进行组织与执行的模式。它将一个复杂的任务分解为多个小的、可管理的步骤,并定义了这些步骤之间的逻辑关系,使得整个任务可以高效、准确地完成。
工作流可以用一张流程图来表示,如下所示:
在这个示意图中,正方形代表任务的各个步骤,箭头代表步骤之间的转换关系,菱形代表各种逻辑判断关系。工作流清晰地描绘了任务的执行路径。
工作流在生产生活的各个领域都有广泛的应用,下面举几个例子:
- 企业中的请假审批流程:
员工提交请假申请 -> 部门经理审批 -> HR 备案,就是一个典型的工作流。 - 电商的订单处理流程:
用户下单 -> 商家接单 -> 仓库发货 -> 用户签收,也是一种工作流。 - 软件开发中的 bug 解决流程:
提交 bug -> 分配给开发人员 -> 修复 bug -> 测试验证 -> 关闭 bug,同样可以用工作流来描述。
通俗来说,任何有一定流程的工作,都可以用工作流的方式来组织与管理。
传统的工作流通常是由专门的工作流管理系统来定义与执行的,这类系统一般有以下特点:
- 需要专门的服务器来部署工作流管理系统;
- 流程的定义与修改需要专业人员来完成;
- 系统一般较为复杂,学习使用成本较高;
- 扩展性与灵活性较差,很难快速应对业务变化。
而 Coze 工作流是一种全新的、智能化的工作流解决方案,它的特点是:
- 完全云端化,无需部署,注册即可使用;
- 可视化设计,拖拽式操作,人人都可以定义工作流;
- 智能化,内置强大的 AI 能力,大大降低使用门槛;
- 灵活可扩展,可以方便地集成各种三方服务,快速构建个性化解决方案。
下图是 Coze 工作流设计的配置界面:
Coze 工作流的特点
Coze 工作流是 Coze 平台中的一项核心服务,它继承了 Coze 平台的智能化特性,同时也有一些自己独特的优势。
第一,可视化、拖拽式操作
与传统的工作流系统不同,Coze 工作流拥有一个非常简单易用的可视化设计器。你只需要在设计器中,从左侧的节点栏中拖拽需要的节点到中央的画布中,然后用连接线将节点连接起来,就可以定义出一个完整的工作流。
第二,灵活的分支逻辑
许多实际的业务流程并非是简单的线性流程,而是会根据某些条件的不同而执行不同的任务分支。Coze 工作流节点本身自带了多分支处理逻辑的设计,还有加上选择器节点的具体逻辑判定,可以轻松地实现这种分支逻辑。
例如,在一个订单处理流程中,可以根据订单金额的不同,执行不同的审批流程:
这个流程可以很容易地在 Coze 工作流中实现:首先用一个选择器判断节点来判断订单金额,然后连接两个分支,分别对应不同的审批流程,如此类推。
第三,无需编码的智能化(Function Calling)
传统的工作流系统通常需要专业的开发人员来编写代码,实现各种任务与逻辑。而 Coze 工作流借助人工智能技术,大大降低了使用门槛。
在 Coze 工作流中,很多任务都可以用自然语言来描述,然后由 AI 自动生成相应的代码。比如,对于一个数据处理的任务,你只需要添加一个大模型节点,然后用自然语言描述你要如何处理数据,其节点就可以自动生成 Python 或 JavaScript 代码给后续的节点使用,无需手工编程。
比如,你使用大模型节点有这段任务描述:对一个 CSV 文件进行处理并输出结果文件。
- 读取
data.csv文件; - 过滤出
age列大于18的行; - 计算
salary列的平均值; - 将结果写入
output.csv文件。
# Coze 自动生成的 Python 代码
import pandas as pd
df = pd.read_csv('data.csv')
df = df[df['age'] > 18]
avg_salary = df['salary'].mean()
result = pd.DataFrame({'avg_salary': [avg_salary]})
result.to_csv('output.csv', index=False)Coze 工作流的核心元素
1. 节点:工作流的基本组成单元
节点是组成工作流的基本单元。每个节点代表了一个任务或者一个逻辑。工作流就是由一系列相互连接的节点构成的。
在 Coze 工作流设计器中,所有的节点都被分门别类地排列在左侧的节点栏中。你可以从节点栏中拖拽需要的节点到中央的画布中。
节点类型一览:
Coze 提供了丰富的节点类型,可以满足各种场景的需求。主要的节点类型包括:
- 开始节点:每个工作流都必须有一个开始节点,它标志着工作流的起点。
- 结束节点:每个工作流都必须有一个或多个结束节点,它标志着工作流的终点。
- 插件节点:用于调用其他外部服务的节点,如发送邮件、调用 API 等。
- 选择器节点:用于根据条件判断执行不同的分支。
- 大模型节点:用于调用 AI 模型,实现智能化的任务处理。
- 代码节点:用于执行自定义的代码逻辑。
- 知识库节点:用于查询指定 Coze 知识库中的数据。
- 图像流节点:用于整合一些自己外部的图像流到当前工作流中。
- 文本处理节点:用于处理文本数据,如拼接、分隔用户的数据或者文本的描述。
- 消息处理节点:用于在工作流处理过程中,发送一些过程中指定步骤的消息出来。
- 变量节点:用于在工作流处理过程中,对变量进行操作。
- 数据库节点:用于在工作流处理过程中,对指定外部 Coze 数据库进行操作。
2. 节点的输入输出
每个节点可以有多个输入和输出。输入用于接收上一个节点传递过来的数据,输出用于向下一个节点传递数据。
以一个发送邮件的任务节点为例,它可能有以下的输入和输出:
- 输入:
to:收件人邮箱地址。subject:邮件主题。body:邮件内容。
- 输出:
status:发送状态,成功或失败。message:发送结果的详细信息。
3. 连接线:节点之间的逻辑关系
连接线用于连接节点,表示节点之间的逻辑关系。Coze 工作流的连接线主要都是序列流连接线,即表示节点的执行顺序,上一个节点的输出会成为下一个节点的输入。
在工作流设计中,你可以在两个节点之间拖拽一条连接线来连接它们。连接线的起点和终点都有一个小圆圈,用于表示连接的方向。
4. 节点变量:工作流数据的载体
节点变量用于在工作流的执行过程中,存储和传递数据。每个节点可以读取和写入节点变量。
Coze 工作流支持多种类型的节点变量:
- 字符串(String):存储文本数据。
- 数字(Integer):存储数值数据。
- 布尔(Boolean):存储真/假两种状态。
- 对象(Object):存储结构化的数据,可以包含多个字段。
- 数组:存储一组数据,数组中每个元素的类型依然可以是字符串、数字、布尔、对象等。
注意:这里的
节点变量跟变量节点不是一个概念。节点变量是节点的属性,用于存储节点的输入和输出数据;而变量节点是一种特殊的节点,用于在工作流处理过程中,对 Bot 的全局变量进行操作。可能是有点绕,你可以认为节点变量就是一个节点内的某个变量,而变量节点是一个专门用来操作全局变量的节点。补充多一句话,Coze 里面普遍说的变量都是指某个 Bot 的全局变量,即下图位置声明的变量:
Coze 工作流的实际应用
接下来我们通过一个具体的例子,来看看 Coze 工作流如何在实际业务中应用。
一个智能客服 Chatbot 的搭建
Coze 工作流还可以用于搭建智能化的应用,比如客户客服服务。
假设我们要搭建一个简单的客服 chatbot,它可以:
- 接收用户的问题。
- 使用大模型能力,理解问题的意图。
- 根据意图,给出相应的回答:
- 如果问题与产品相关,返回产品的介绍。
- 如果问题与价格相关,返回产品的价格。
- 如果是其他问题,返回一个通用的答复,并将问题转交人工客服。
- 将互动记录保存到数据库中。
在 Coze 工作流设计中,我们可以用以下相关节点来实现这个 chatbot:
- 一个起始的
开始节点,用于接收用户的问题。 - 一个
大模型节点,用于理解问题的意图。 - 一个
选择器节点,根据意图的不同,将流程分为三个分支:- 产品问题分支,进入一个
知识库节点,调用一个产品信息的知识库召回相关的上下文内容,然后返回给结束节点让大模型参考来回答。 - 价格问题分支,进入一个
知识库节点,调用一个价格信息的知识库召回相关的上下文内容,然后返回给结束节点让大模型参考来回答。 - 其他问题分支,直接进入到
结束节点,通过 Bot 本身的大模型能力返回一个通用答复。
- 产品问题分支,进入一个
通过合理地组合各种类型的节点,你可以搭建出功能强大的智能应用,来自动化各种业务流程。
总结
通过本文的介绍,我们详细了解了工作流的基本概念、传统工作流系统的局限性,以及 Coze 工作流的独特优势。以下是几个关键点总结:
- 高效管理:工作流通过将复杂任务分解为多个步骤,并定义这些步骤之间的逻辑关系,显著提高了任务的管理和执行效率。
- 传统系统的局限:传统工作流系统通常需要专门的服务器部署、专业人员操作,复杂度高、灵活性差,难以快速应对业务变化。
- Coze 工作流的优势:
- 云端化:无需部署服务器,注册即可使用,随时随地管理工作流。
- 可视化设计:拖拽式操作界面,让工作流设计简单直观,非专业人员也能轻松上手。
- 智能化:内置 AI 功能,自动生成代码,降低使用门槛,无需编程也能实现复杂任务。
- 灵活可扩展:支持多种节点类型和第三方服务集成,满足不同业务需求。
通过实际例子,如智能客服 Chatbot 的搭建,展示了 Coze 工作流在实际业务中的应用,证明了其在自动化和智能化方面的强大能力。