第三章:流程编排:工作流基础应用

第三章:流程编排:工作流基础应用


3.1 工作流设计理念

3.1.1 适用场景:我们为什么需要工作流?

大家好,欢迎来到 Coze 学习中最激动人心的模块。之前我们所有的操作,都还停留在“对话”层面。而工作流,将赋予我们的 Bot “执行” 的能力。它就像是为 Bot 的大脑接上了手和脚。

我们先来看一个最简单的场景:我想让 Bot 根据一个城市的实时天气,为我推荐旅游行程。

如果只用 Prompt,我们没法将“实时天气”这个动态信息告诉 Bot。但如果我们能设计一个流程:

  1. 第一步:调用一个“天气查询”工具,查到“北京”今天是“晴天”。
  2. 第二步:再把“北京”和“晴天”这两个信息,一起告诉 Bot 的大脑(大模型),让它基于此去创作行程。

这种“先做A,再做B”的确定性流程,就是工作流大显身手的舞台。它专门用来处理需要多个步骤、有逻辑先后、且需要和外部工具交互的复杂任务。

3.1.2 数据流转:工作流的“血液”

在动手之前,我们必须理解工作流的灵魂——数据流转。我们可以把它想象成一条数据的“接力赛”。

在我们截图的这个最简单的“天气行程规划”案例中,数据是这样流动的:

未命名白板

看,数据就这样一步步被处理和传递,最终完成了我们的任务。


3.2 核心节点深度剖析(手把手搭建)

现在,我们正式开始,完全复刻并理解您截图中的这个工作流。

第一步:创建并进入工作流
首先,我们在 Bot 编辑界面的“技能”区域,点击“工作流”旁边的 + 号,选择“创建工作流”,给它起个名字叫 plan_ai,然后我们就进入了这张空白的“画布”。

第二步:配置“开始”节点
画布上默认就有一个“开始”节点。我们用鼠标选中它,此时界面右侧会出现它的配置面板。我们点击“添加”输入,参数名就叫 destination_city。这就好比是给我们的工作流开了一个“信件投递口”,专门接收用户想要查询的城市名。

img

第三步:添加并配置“插件”节点
接下来,我们从界面最左侧的节点列表中,找到“插件”,用鼠标把它拖到画布上,放在“开始”节点的右边。我们选中这个新的插件节点,在右侧的配置面板中,从下拉列表里选择“DayWeather”天气插件。

image-20250731143054181

最关键的一步来了:连线! 我们要用鼠标,从“开始”节点右侧代表 destination_city 的那个小圆点上,按住并拖动出一条线,连接到“DayWeather”节点左侧代表 city 的输入小圆点上。这条线,就代表着我们将用户输入的城市名,传递给了天气插件。

image-20250731143259184

第四步:添加并配置“大模型”节点
我们用同样的方法,从左侧拖入一个“大模型”节点,可以给它重命名为“天气规划助手”。现在,我们要进行第二次“连线”:

  1. “开始” 节点的 destination_city 输出,连接到 “天气规划助手” 节点的 destination_city 输入。
  2. “DayWeather” 插件的 data 输出(这里面包含了天气信息),连接到 “天气规划助手” 节点的 weather_condition 输入。
  3. 最后,我们选中“天气规划助手”节点,在右侧的“用户提示”框里,写入我们的提示词
1
2
3
4
5
6
# 系统提示词:
你是旅游规划专家,根据输入的天气状况和城市名来规划行程。

# 用户提示词:
现在 ,请根据{{destination_city}}的当前天气{{weather_condition}}情况,为用户规划一份生动有趣的一日游行程。
- 注意,这里的双括号表示的是变量名,从上一个天启插件节点拿到的condition与我们第一次开始输入的天气做了一个拼接的操作

image-20250731143624373

第五步:连接“结束”节点并测试
别忘了最后一步,将“成文”节点的 output 输出点连接到默认的“结束”节点上。至此,一个完整的工作流就搭建完毕了!我们可以点击画布下方的“试运行”,在右侧输入一个城市名,亲眼见证我们的 Bot 一步步执行流程,并最终生成我们想要的行程规划。

image-20250731143758121


3.3 批处理:搭建“AI 旅行内容生成矩阵”工作流

本节我们将通过一个完整的实战案例,学习如何搭建一个多任务、多模态的工作流。本案例的目标是:仅输入一个旅行主题,工作流就能自动并行处理,最终输出两项内容:

  1. 一篇符合社交媒体风格的旅行攻略长文案。
  2. 一套与文案内容配套的图文卡片。

第一步:配置初始大模型节点(任务分发)

这个节点是整个工作流的数据源,它负责将用户输入的单个主题,扩展成结构化的、可供后续流程使用的数据。

  • 操作流程

    1. 拖入一个 “开始” 节点,并为其定义一个名为 topic 的输入变量。
    2. 拖入一个 “大模型” 节点,命名为资深旅行策划师并将“开始”节点的 topic 输出连接到它的 topic 输入。
  • 节点配置

    1. 选中该大模型节点。在右侧的配置面板中,将以下完整提示词粘贴到节点的“系统提示”区域:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
          # 角色
      你是一位资深旅行策划师,擅长用生动详细的方式为旅行者规划个性化旅行方案。你可以根据用户提供的【主题】自动生成专业且实用的旅行相关建议。

      示例主题: "浪漫海滨七日游规划"
      ===示例文案开始===
      [
      {
      "name": "目的地选择",
      "description": "推荐如三亚、厦门等知名海滨城市,拥有美丽的沙滩、清澈的海水和丰富的海洋文化景点,能满足浪漫海滨游需求。"
      },
      {
      "name": "住宿安排",
      "description": "可选择海边度假酒店或特色民宿,既能享受海景,又能体验当地风情。部分酒店还提供浪漫情侣套餐。"
      },
      {
      "name": "行程规划",
      "description": "第一天抵达后稍作休息,前往海边欣赏日落;第二天参观海洋馆,了解海洋生物;第三天去沙滩进行水上活动;第四天体验当地海鲜市场并品尝美食;第五天前往周边小岛游玩;第六天享受海边 SPA 放松身心;第七天自由购物后返程。"
      },
      {
      "name": "交通指南",
      "description": "到达目的地后,可选择租车自驾方便出行,也可乘坐公共交通,部分城市有观光巴士可供选择。"
      },
      {
      "name": "美食推荐",
      "description": "当地特色海鲜是必尝美食,如清蒸石斑鱼、辣炒蛏子等,还有各类特色甜品和水果。"
      },
      {
      "name": "景点门票预订",
      "description": "提前在官方网站或旅游平台预订热门景点门票,避免耽误行程。"
      },
      {
      "name": "拍照打卡点",
      "description": "标志性的灯塔、彩色的海边小屋、落日下的沙滩都是绝佳拍照点,能留下浪漫回忆。"
      },
      {
      "name": "浪漫活动安排",
      "description": "安排一次海上日出游船之旅,或者在沙滩上进行一场私人沙滩晚宴。"
      },
      {
      "name": "旅行预算",
      "description": "大致预算包括交通、住宿、餐饮、门票和活动费用,预计每人[X]元左右,可根据实际选择调整。"
      },
      {
      "name": "注意事项",
      "description": "注意防晒,携带必要的防晒用品;提前了解当地天气,合理安排行程;尊重当地风俗习惯。"
      }
      ],
      "旅行建议": "根据个人喜好和时间灵活调整行程,提前做好各项准备工作,享受浪漫海滨之旅。"
      ===示例文案结束===

      ## 技能
      ### 技能 1: 根据主题规划旅行
      1. 当用户给出【主题】时,按照示例文案格式生成旅行规划内容。
    2. 利用工具搜索相关旅行目的地、景点、美食等信息,确保规划合理且丰富。

      技能 2: 回答旅行相关问题

      1. 当用户提出旅行相关问题,如交通方式、当地特色等,使用工具搜索答案。
      2. 如果获取信息不全面,继续使用工具打开搜索结果中的相关链接,深入了解后回答用户。
      1
              
    3. 在“用户提示”区域,输入 用户输入 = {{topic}}

    4. 重点:配置该节点的输出。点击“输出”旁的 + 号,创建一个名为 output 的变量,并确保其类型为 Array<Object>(泛型对象数组)。

      他最后会输出如下的数据:

      1
      2
      3
      4
      5
      6
      7
      8
      {
      "output": [
      {
      "name": "目的地选择",
      "description": "..."
      }
      ]
      }

      这个结构化的数组是后续所有并行任务的数据基础。

image-20250731160152976


第二步:配置文本生成任务线

这条任务线负责将上一步生成的结构化 JSON 数据,转换成一篇通俗易懂、适合社交媒体发布的文章。

  • 操作流程:在第一个大模型节点后,连接一个新的 “大模型” 节点。

  • 数据连接:将第一个大模型节点的 output(JSON数组)输出,连接到这个新节点的 input 输入。

  • 节点配置:选中这个新的大模型节点,在“用户提示”区域,粘贴以下完整提示词:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    请把{{input}}json格式的内容转换为符合小红书调性的文字,文字中需根据语境添加Emoji表情,例如⛽⚓⛵⛴✈,书写案例如下:

    【旅行策划干货】10个必备技能|教你设计完美行程✨

    大家好呀!我是旅行策划师Luna~今天分享10个让我策划过500+行程的独家秘籍,学会这些你也能轻松规划完美旅行!

    ① 目的地调研技巧🔍
    ◇ 善用谷歌地球看实景
    ◇ 关注当地旅游局账号
    ◇ 挖掘3个小众打卡点
    (示例:巴厘岛除了秋千还有哪些隐藏美景?)

    ② 预算规划秘籍💰
    ◇ 交通/住宿/餐饮6:3:1法则
    ◇ 提前3个月订票省30%
    ◇ 设置应急备用金

    ③ 季节选择指南🌸
    ◇ 避开旅游旺季人多价高
    ◇ 掌握各地最佳旅行月份
    ◇ 雨季也有独特体验

    ④ 路线设计诀窍🗺️
    ◇ 每天不超过3个主要景点
    ◇ 景点间交通不超过1小时
    ◇ 留足拍照和休息时间

    ⑤ 特色体验挖掘🌟
    ◇ 预约当地手作课程
    ◇ 参加民俗节庆活动
    ◇ 拜访当地人家庭

    ⑥ 美食地图制作🍜
    ◇ 收集必吃榜单前10
    ◇ 标记夜市和早餐店
    ◇ 预留2顿自由探索

    ⑦ 应急方案准备⚠️
    ◇ 备份电子证件
    ◇ 记录大使馆电话
    ◇ 准备常用药品清单

    ⑧ 行前沟通技巧💬
    ◇ 制作图文并茂的行程单
    ◇ 说明着装建议
    ◇ 提醒文化禁忌

    ⑨ 装备清单整理🎒
    ◇ 按气候准备衣物
    ◇ 必备转换插头
    ◇ 便携急救包

    ⑩ 反馈收集方法📝
    ◇ 设计简洁问卷
    ◇ 鼓励分享照片
    ◇ 记录改进建议

    该节点最终会输出一个 String 类型的文本。

image-20250731160739377


第三步:配置图文卡片批量生成任务线

这条任务线与文本生成线并行,它负责为旅行规划中的每一个项目都独立制作一张图文并茂的卡片。

  • 操作流程:从左侧节点列表中,拖入一个“批处理”节点。该节点的功能是遍历数组

  • 数据连接:同样将第一个大模型节点的 output 数组输出,连接到这个“批处理”节点的输入上。这一步是告诉循环节点,它内部的流程需要为数组中的每一个对象都完整地执行一次。

  • 配置循环内部流程:我们需要在“批处理”节点内部,搭建一条处理流程。对于数组中的每一个元素(Coze中用 item 指代),它都会走一遍下面的流程:

    1.图像生成节点:在循环内部添加一个“图像生成”节点。其提示词需要引用循环变量 item,例如:为“{{item.name}}”这个旅行主题,生成一张相关的风景图片。这里的 {{item.name}} 在每次循环中都会动态地被替换成“目的地选择”、“住宿安排”等。

    image-20250731163659228

    1
    2
    3
    4
    # 正向提示词
    根据{{prompt}}生成一个只有主体图案的内容风格,旅行图片背景,图像的主题位于一个正方形中央,背景留白。
    # 反向提示词
    不能有文字相关的内容

    2.图像处理节点 (cutout):可以连接一个图像处理节点(如cutout),对上一步生成的图片进行编辑,例如进行抠图或添加效果。

    image-20250731163922238

    3.画板节点:最后,连接“画板”节点。此节点将接收上一步处理好的图片作为背景,再接收当前循环项的文本 {{item.name}}{{item.description}} 作为标题和正文,将它们组合成一张最终的图文卡片。

image-20250731170622338


第四步:配置工作流的最终输出

我们已经完成了两条并行的任务线,现在需要将它们的成果配置为最终输出。

  • 文本输出:将第二步中生成“小红书”文案的那个大模型节点的最终输出,连接到一个“结束”节点。
  • 图片输出:“批处理”节点在执行完所有循环后,会自动将其内部每次循环生成的画板图片链接,汇总成一个新的数组。我们将这个包含所有图片链接的数组输出,连接到另一个“结束”节点。

最终,当我们在预览窗口输入一个主题并点击运行时,这个工作流就会并行处理。片刻之后,我们就能得到文案

重要信息: 注意,这里有一个小技巧我们可以用得到,我们可以通过markdown的图片语法,将最后的回答内容以如下的方式进行包裹:

1
2
3
4
5
6
7
8
9
10
11
12
{{output}}
{{wenan}}}}
![]({{image[0]}})
![]({{image[1]}})
![]({{image[2]}})
![]({{image[3]}})
![]({{image[4]}})
![]({{image[5]}})
![]({{image[6]}})
![]({{image[7]}})
![]({{image[8]}})
![]({{image[9]}})

这样就能保证我们在运行出来的时候,每一张图片都可以及时预览

image-20250731170752156

image-20250731170642135