# 工作流与对话流 低代码工作流用于处理功能类的请求,可通过顺序执行一系列节点实现某个功能。低代码对话流是基于对话场景的特殊工作流,专门用于处理对话类请求。在低代码应用中添加低代码对话流,将对话中的用户指令拆分为一个个步骤节点,并为其设计用户界面,你可以搭建出适用于移动端或网页端的对话式 AI 应用,实现自动化、智能化的对话流程。 ## 对话流和工作流的区别 相较于工作流而言,对话流更适合处理对话场景下的交互逻辑。每个对话流都绑定了一个会话,运行时可以从此会话中读取历史消息,同时将本次运行对话流产生的消息记录在这个会话中,相当于一个拥有了记忆的工作流。 * 你如果需要搭建一个智能体,智能体本身支持上下文和会话能力,那么可以随意选择工作流或对话流。 * 如果你需要搭建一个对话式的 AI 应用,例如 AI 助手、智能体客服等基于对话方式交互的 AI 应用,扣子编程推荐你使用对话流,对话流中的大模型可以读取会话上下文、管理会话,还可以搭建对话式的用户界面,发布到各种社交通讯软件中。 * 如果你需要搭建一个工具类的 AI 应用,批量处理数据、实现任务流程的自动化,可以选择工作流实现。 二者的详细具体区别如下: | **差异** | **工作流** | **对话流** | | --- | --- | --- | | 场景 | 用于处理功能类的请求,可通过顺序执行一系列节点实现某个功能。适合数据的自动化处理场景,例如生成行业调研报告、生成一张海报、制作绘本等。 | 基于对话场景的特殊工作流,更适合处理对话类请求。对话流通过对话的方式和用户交互,并完成复杂的业务逻辑。对话流适用于 Chatbot 等需要在响应对话请求时进行复杂逻辑处理的对话式应用程序,例如智能客服、虚拟伴侣等。 | | 节点 | 大模型节点等涉及大模型处理的节点不支持查看对话历史。 | * 开始节点必须传入会话名称,以便记录用户和模型的对话历史。
* 对话流中的模型类节点支持读取对话历史,会话中的上下文会和用户问题一起传递给大模型。 | | 角色配置 | 不支持角色配置。 | 支持角色配置。
![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/2187c858b24d4be4a74ad658612f5726~tplv-goo7wpa0wc-image.image)
创建对话流时,你可以为每个对话流单独配置角色名称、头像、开场白、音色、输入方式等角色属性。在以下场景中,对话服务将根据这些配置以指定的角色与用户进行交互:

* **发布应用为 Chat SDK**:当你将应用发布为 Chat SDK 后,智能对话服务将根据配置的角色属性与用户进行互动,提供个性化的用户体验。
* **AI 对话组件绑定对话流**:在应用中绑定 AI 对话组件时,选择相应的对话流,智能对话服务将以配置的角色属性与用户进行交互。
如果 AI 对话组件配置了角色属性,则优先采用 AI 对话组件的配置;若智能体处于对话流模式并绑定了对话流,则以智能体中的角色配置为准。
| | 用户界面 | 支持布局组件、展示组件等丰富的组件类型。 | 目前仅支持 **AI 对话**组件。
**AI 对话**组件可将对话流包装为一个聊天面板,展示在移动端或网页端页面中。 | | 发布渠道 | 在 AI 应用中的工作流,支持发布到 API,工作流绑定用户界面之后,还可以发布到模板、商店。
暂不支持发布到社交渠道、Chat SDK、小程序。 | 在 AI 应用中的对话流,支持发布到 API&SDK 、小程序、社交渠道、商店、模板等扣子编程提供的所有发布渠道。 | | API 调用 | 通过 API [执行工作流](https://docs.coze.cn/api/open/docs/developer_guides/workflow_run)或[执行工作流(流式响应)](https://docs.coze.cn/api/open/docs/developer_guides/workflow_stream_run)调用工作流。 | 通过 API [执行对话流](https://docs.coze.cn/api/open/docs/developer_guides/workflow_chat)调用对话流。 | ## 常见问题 ### 对话流和工作流可以互转吗 对话流和工作流可以互转。 * 对话流转为工作流之后,大模型、意图识别等涉及模型处理的节点不支持读取对话历史,也无法绑定会话;开始节点的预置参数也会转为普通参数,可以删除或修改。 * 工作流转为对话流之后,开始节点会添加两个预置参数 **USER_INPUT** 和 **CONVERSATION_NAME**,不可删除或修改。 例如将工作流转为对话流,在资源库中找到指定的工作流,在**操作**列单击**切换为对话流**即可。 ![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/06f2246f78d243c5b35654adbc052a1a~tplv-goo7wpa0wc-image.image) ### 对话流和工作流的节点有什么区别 对话流和工作流均支持扣子编程提供的所有节点,但节点配置略有差异。对话流的开始节点中需要指定一个会话,对话流中添加的大模型、意图识别等涉及模型处理的节点支持读取对话历史。 详细差异如下: | **差异** | **工作流** | **对话流** | | --- | --- | --- | | 开始节点 | 预置一个非必填参数,格式为 `String`,默认命名为 `input`。 | 预置了以下必选参数:

* **USER_INPUT**:用户在对话流中输入的原始内容。
* **CONVERSATION_NAME**:对话流绑定的会话。 | | 大模型节点 | 不支持对话历史。 | 支持读取对话历史,会话中的上下文会和用户问题一起传递给大模型。 | | 意图识别节点 | 不支持对话历史。 | 支持读取对话历史,会话中的上下文会和用户问题一起传递给大模型。 |