作者:微信小助手
发布时间:2025-03-27T10:11:41
上一篇文章中,我们分享了如何使用扣子搭建工作流,设计特色文案,并且介绍了用智能体调用工作流的方法。那么扣子的工作流到底怎么用,什么场景下需要使用工作流,如何编排工作流,都是很多初学者想了解的内容。 内容如下: 1.扣子工作流简介 2.扣子工作流能解决什么问题? 3.扣子工作流的逻辑结构 4.扣子工作流的组成模块 5.扣子工作流的示例 6.总结 工作流(Workflow)是指一系列相互关联的步骤或任务,这些步骤和任务被设计用来完成特定的业务过程或项目。工作流不仅定义了任务的执行顺序,还明确了每个任务的执行者以及相关的条件和规则,从而确保整个流程的顺利进行并最终达成目标。 在我们的日常工作和生活中,工作流无处不在。以下是一些典型的例子: 扣子的工作流与传统工作流有相似之处,但也具有其独特性。传统工作流可以是手动执行、自动化执行,或两者结合。而扣子的工作流则是一种完全自动化的流程,旨在通过自动执行多个相关步骤来实现可复用的流程。 一个Bot可以使用多个工作流,根据用户的行为选择并执行不同的工作流,从而提高Bot的灵活性和适应性。扣子工作流支持通过可视化的方式,将 通过使用工作流,Bot的可用性和可靠性得到了显著提升。工作流不仅可以简化复杂任务的执行,还能确保每个步骤的准确性和一致性。 说到这里,有一个很自然的疑问:既然Bot是基于大模型搭建的,为什么大模型不直接把相关的任务执行了,告诉我们结果就行?还要引入一个工作流? 原因也很简单,虽然现在的大模型比较智能,但是还没有那么智能!大模型(或者说生成式AI)是基于概率来生成内容,这就意味着它并不是每次都能给出符合要求的结果,特别是在以下几种场景下: 工作流是对当前大模型能力不足的一种补偿机制,在大模型智能化程度还不够高的时候,通过人为编排的工作流(注入人的智能),让智能体具有更高的可用性和可靠性,提升用户体验。 工作流可以有效解决以下问题: 在Coze平台上搭建Bot智能体时,通常从编写提示词开始。然而,有时即便我们按照提示词工程的最佳实践编写了结构化且明确的指令,并经过多次迭代优化,仍然无法达到预期效果。这时,工作流就显得尤为重要。例如,在长文本写作(如调研报告)中,涉及到资料收集、写作大纲生成、章节划分、进一步资料收集、章节内容生成,最后到总结的过程。仅依靠提示词,大模型可能难以生成一篇结构合理、内容详实的文章,而工作流可以帮助实现这一目标。 大模型具有Function call能力,可以调用外部工具(插件),这在某些场景下非常有用。但是,如果需要调用多个外部工具,且他们具有严格依赖关系时,大模型可能不是每次都能很好地完成目标。例如,以下是一个典型的场景: 假设你需要根据一个url,获取网页内容、总结要点、生成思维导图,整个流程需要按照顺序执行以下步骤: 这个任务可以通过工作流来实现,使得Bot具有更高的可用性和可靠性,提升用户体验。 大模型虽然能够产出还不错的内容,但是很难对数据进行精确处理,例如: 在这种情况下,可以使用工作流中的 例如: 大模型的工作方式是一问一答,即根据输入产生输出。在一些比较复杂的应用中,可能需要对一次用户的问题,回复多条消息。例如: 可以在工作流中使用 扣子工作流可以简单地理解为一个有向无环图(DAG),其特征是具有唯一的输入节点和输出节点。每个工作流由一系列节点组成,这些节点通过有序连接来实现特定的功能。每个节点都有其输入和输出参数,如下图所示: 图中展示的是一个示例工作流结构,并不代表所有工作流都包含这些节点和路径。最简单的工作流可能仅包含一个开始节点和一个结束节点。 在工作流中,“唯一输入”和“唯一输出”指的是工作流整体上有一个入口和一个出口。这并不意味着工作流只能接受一个输入参数或只能产生一个输出结果。实际上,扣子工作流可以处理多个输入参数,并生成多个输出结果。这样的设计确保了工作流的灵活性和扩展性,能够适应复杂的业务需求。 扣子工作流是由多个节点组成的有向无环图,图形化的工作流可以帮助你快速地设计和实现复杂的业务逻辑。下面是创建工作流时默认打开的页面: 工作流由多个节点组成,包括开始节点、结束节点、插件节点、大模型节点、代码节点、选择器节点、问答节点和输出节点等,下面将简要介绍这些节点的作用。 大模型节点可以调用大型语言模型,根据输入参数和提示词生成回复,通常用于执行文本生成任务,例如文案制作、文本总结、文章扩写等。 大模型节点依赖大语言模型的语言理解和生成能力,可以处理复杂的自然语言处理任务,你可以根据业务场景的需求选择不同的模型,并配置提示词来定义模型的人设和回复风格。为了更精准地控制模型生成的结果,你还可以在大模型节点中设置模型的参数,从而影响模型回复的文本长度、内容的多样性等。 *技能 支持为大模型节点配置技能,添加插件、工作流或知识库,扩展模型能力的边界。大模型节点运行时,会根据用户提示词自动调用插件、工作流或知识库,综合各类信息输入后输出回复。 配置技能后,大模型节点的能力更接近一个独立运行的智能体,可以自动进行意图识别,并判断调用技能的时机和方式,大幅度提高此节点的文本处理能力和文本生成效果,简化工作流的节点编排。例如用户需求是某地区的穿搭推荐,通常需要先通过插件节点查询某地天气,再由模型节点根据天气情况生成穿搭推荐,现在你可以直接在大模型节点添加查询天气的插件,大模型会自动调用插件,查询天气并推荐穿搭。 *模型 选择要使用的模型。此节点的输出内容质量很大程度上受模型能力的影响,建议根据实际业务场景选择模型。可选的模型范围取决于当前的账号类型,基础版账号可以使用默认的几类模型,且存在对话数量限制,专业版账号可以使用火山引擎方舟平台的模型。 你还可以单击配置图标,调整模型配置。 *输入 需要添加到提示词中的动态内容。系统提示词和用户提示词中支持引用输入参数,实现动态调整的效果。添加输入参数时需要设置参数名和变量值,其中变量值支持设置为固定值或引用上游节点的输出参数。 在多轮对话场景中,你还可以开启智能体对话历史。执行此节点时,扣子会将智能体与当前用户的最近多条对话记录和提示词一起传递给大模型,以供大模型参考上下文语境,生成符合当前对话场景的回复。一问一答场景下通常无需开启此功能。 *系统提示词 模型的系统提示词,用于指定人设和回复风格。支持直接插入提示词库中的提示词模版、插入团队资源库下已创建的提示词,也可以自行编写提示词。 编写系统提示词时,可以引用输入参数中的变量、已经添加到大模型节点的技能,例如插件工具、工作流、知识库,实现提示词的高效编写。例如{{variable}}表示直接引用变量,{{变量名.子变量名}}表示引用 JSON 的子变量,{{变量名[数组索引]}}表示引用数组中的某个元素。 *用户提示词 模型的用户提示词是用户在本轮对话中的输入,用于给模型下达最新的指令或问题。用户提示词同样可以引用输入参数中的变量。 *输出 指定此节点输出的内容格式与输出的参数。输出格式支持设置为: 参数的名称和描述有助于模型在参数中正确返回匹配的内容。当存在多个输出参数时,建议为输出参数指定有意义的名称,并设置描述信息。例如用于改写 Query 的模型节点,可以设置输出参数为 new_query,描述是改写后的 Query,另一个参数为 reason,描述是改写原因。 插件是一系列工具的集合,每个工具都是一个可调用的 API。商店中的上架插件、个人创建的插件,以节点形式被集成到工作流中,拓展智能体的能力边界。 插件节点的输入和输出结构取决于插件工具定义的输入输出结构,不支持自定义设置。在插件节点中你需要为必选的输入参数指定数据来源,支持设置为固定值或引用上游节点的输出参数。 插件节点运行时,会调用工具处理输入参数,并根据工具定义输出处理后的数据。你可以在输出区域右上角单击查看示例,查看输出参数的详细说明、完整的输出示例。 试运行工作流时,插件节点的输出默认使用真实的输出数据,你也可以选择使用模拟集的数据。模拟集是插件的模拟输出结果,每次试运行工作流时无需调用插件,直接使用数据集的数据作为后续节点的输入。支持自定义设置或 AI 自动生成模拟集。 插件节点支持忽略异常功能。开启此功能后,如果试运行工作流时此节点运行失败,工作流不会中断,而是继续运行后续下游节点。如果下游节点引用了此节点的输出内容,则使用此节点预先配置的默认输出内容。 为了实现更复杂的功能组合,扣子提供了 在一个工作流中,你可以将另一个工作流作为其中的一个步骤或节点,实现复杂任务的自动化。例如将常用的、标准化的任务处理流程封装为不同的子工作流,并在主工作流的不同分支内调用这些子工作流执行对应的操作。工作流嵌套可实现复杂任务的模块化拆分和处理,使工作流编排逻辑更加灵活、清晰、更易于管理。 通常情况下,工作流会在执行完毕后通过结束节点输出最终的执行结果。当工作流处理流程较长、运行时间较久时,开发者可以在工作流中添加输出节点,临时输出一段消息,避免用户等待时间过长、放弃对话。例如提示用户任务正在执行中,建议用户耐心等待。 输出节点也可以用于输出工作流的中间数据,下一篇文章会展示一个示例,把工作流中间生成的 输出节点支持流式和非流式两种模式,同时支持绑定卡片,展示丰富的交互效果,提升对话过程的用户体验。 根据上面介绍的知识,我们设计一个工作流,实现的功能是:根据用户输入的网址url获取网页的内容,对网页内容进行分析,总结主要观点,然后生成思维导图, 这个工作流可以被分解成3个步骤: 下面逐步完成这个工作流的创建。 参考上节课内容,搭建工作流的基本逻辑流程,其中包括三个关键节点: 输入Coze平台工作流
是搭建 Bot 智能体的一种非常重要的技能,稍微复杂或比较实用的 Bot 基本上都使用了工作流。本文从工作流概念讲起,然后介绍扣子工作流的结构,最后以一个示例结尾,学习设计一个调用DeepSeek R1生成思维导图的工作流,便于初学者透彻掌握。
1. 扣子工作流简介
什么是工作流?
工作流在日常生活中的应用
扣子工作流的独特之处
插件
、大语言模型
、代码块
等功能进行组合,实现复杂且稳定的业务流程编排,例如旅行规划、报告分析等。
此外,工作流也可以对代码进行 模块化
,我们将功能,封装在一个工作流中,对外提供统一的接口,这与现代编程语言中,将代码片段设置为 函数
,或者 类
,是一样的道理。2. 扣子工作流能解决什么问题?
代码节点
来解决。例如,我们可以使用工作流中的代码节点对用户输入的数据进行解析和处理,生成随机数,并将其以Json格式返回给用户。
选择器节点
,在执行流程中引入选择分支,根据条件选择不同的执行步骤
问答节点
在执行过程中向用户提问问题,使用 输出节点
(原名 消息节点
)输出消息。3. 扣子工作流的逻辑结构
唯一输入与唯一输出
4. 扣子工作流的组成模块
开始节点
用于开启触发一个工作流,而 结束节点
用于输出工作流的结果。开始节点
和 结束节点
是每个工作流中固定且唯一的节点之外,左侧其它节点都是可以任意添加的。
4.1 开始和结束节点
开始节点
是工作流的起始节点,用于设定启动工作流需要的输入信息。开始节点只有输入参数,没有输出参数。开始节点中默认有一个输入参数 input,表示用户在本轮对话中输入的原始内容。你也可以按需添加其他参数。
结束节点
是工作流的最终节点,用于返回工作流运行后的结果。结束节点支持两种返回方式,分别是返回变量和返回文本。
返回变量模式
下,工作流运行结束后会以 JSON 格式输出所有返回参数,适用于工作流绑定卡片或作为子工作流的场景。如果工作流直接绑定了智能体,对话中触发了工作流时,大模型会自动总结 JSON 格式的内容,并以自然语言回复用户。
返回文本模式
下,工作流运行结束后,智能体中的模型将直接使用指定的内容回复对话。回答内容中支持引用输出参数,也可以设置流式输出。4.2 大模型节点
大模型节点
是扣子提供的基础节点之一,可以在该节点使用大语言模型处理任务。节点说明
配置大模型节点
异常设置
大模型节点支持异常忽略功能。开启此功能后,如果试运行工作流时此节点运行失败,工作流不会中断,而是继续运行后续下游节点。如果下游节点引用了此节点的输出内容,则使用此节点预先配置的默认输出内容。
大模型节点配置技能,和直接使用插件等技能节点有什么区别?
4.3 插件节点
插件节点
用于在工作流中调用插件,运行指定的工具。输入与输出
模拟集
异常设置
4.4 工作流节点
工作流节点
,实现工作流嵌套工作流的效果。4.5 输出节点
输出节点
(原名 消息节点
)用于在工作流执行过程中输出指定的消息内容。思维导图文本
,通过输出节点反馈给用户。5.扣子工作流的示例
LinkReaderPlugin
读取url对应的网页内容。
DeepSeek-R1
对网页内容进行分析,总结要点。
generateTreeMind
将要点生成思维导图。
第一步 搭建工作流
1. 链接读取插件
LinkReaderPlugin
,命名为 获取网页内容
2. 大模型节点,命名为
生成思维导图文本
3. TreeMind树图插件
generateTreeMind
,命名为 生成思维导图
第二步 配置大模型节点
大模型节点的模型,设置为DeepSeek-R1 工具调用
。
设置系统提示词
为:
# 角色
你是一个专业的思维导图生成助手,能够精准分析输入内容{{input}},并将其转化为适合TreeMind使用的文本格式。
## 技能
### 技能 1: 生成思维导图文本
1. 当用户提供网页内容时,仔细分析内容结构和要点。
2. 按照TreeMind所需的格式,将网页内容转化为清晰、有条理的文本,突出关键信息和层级关系。
## 限制:
- 仅围绕网页内容进行思维导图文本的生成,不处理与网页内容无关的任务。
- 生成的文本必须符合TreeMind的格式要求。 第三步 测试工作流
大模型节点
的文档链接url
https://www.coze.cn/open/docs/guides/llm_node
下一篇文章,我们继续优化这个工作流,增加信息输出、错误判断等功能。