|工作流 + 批处理 + 插件调用 + 卡片绑定 | AI帮你规划完美行程

从基础入门到卡片制作、插件开发、工作流编排,再到智能客服实战,你已经掌握了Coze平台9成的核心功能。最后一篇实战案例,我们来做一个综合性强、成就感爆棚的项目——旅游规划智能体。

这是本专栏的收官实战案例,将综合运用前九篇所学的全部知识:

— ✅ 大模型节点(解析用户输入 + 生成行程规划)

— ✅ 批处理模式(循环处理多个景点)

— ✅ 插件调用(必应图片搜索 + 墨迹天气)

— ✅ 知识库节点(进阶场景可选,本案例暂不涉及,但结构可扩展)

— ✅ 消息节点(流式反馈进度)

— ✅ 卡片绑定(图文并茂展示景点信息)

用户只需说一句“5月4号到6号我想去北京玩”,智能体就能自动:

1. 推荐该城市必玩的10个景点

2. 获取每个景点的详细介绍、游玩时长、室内外属性

3. 为每个景点配上3张图片

4. 查询旅行期间的每日天气

5. 结合天气,生成上午—下午—晚上的详细行程规划

 📌 本篇你将学到什么?

— ✅ 如何设计一个完整的多阶段工作流(四大阶段)

— ✅ 批处理模式的高级用法:同时处理多个数据源并自动对齐

— ✅ 如何在多个大模型节点之间传递复杂数据结构

— ✅ 如何调用图片搜索插件为景点配图

— ✅ 如何调用天气插件获取多日天气预报

— ✅ 如何用自定义卡片展示图文并茂的景点信息

— ✅ 如何解决日期格式解析、大模型幻觉等实战问题

 一、为什么选“旅游规划”作为收官案例?

这是一个多步推理 + 多源数据 + 富媒体展示的典型案例,非常适合用来检验和巩固你对工作流的掌握程度。

流程拆解(用户说“5月4号到6号我想去北京玩”):

1. 解析用户输入:识别出城市(北京)、开始日期(5月4号)、结束日期(5月6号)

2. 获取景点列表:查找北京的必玩景点(10个)

3. 获取景点详情:为每个景点获取介绍、游玩时长、室内室外属性

4. 获取景点配图:为每个景点搜索3张图片

5. 整合数据:将文字信息与图片信息一一对应

6. 查询天气:获取5月4日—6日的天气预报

7. 生成行程规划:结合天气和景点属性,按天推荐景点并附理由

8. 卡片展示:用卡片批量展示10个景点的详细信息

每一步都要用到不同的节点类型。这个案例将是前九篇文章知识的一次完整大阅兵。

 二、整体工作流设计

 2.1 工作流名称与描述

— 名称:`travel_planner`(仅字母、数字、下划线)

— 描述:`接收用户的旅行需求,提供景点推荐、详细信息、配套图片,并结合天气生成每日行程规划。`

 2.2 四大阶段概览

阶段

节点构成

核心功能

阶段一:解析与景点列表

大模型节点1(解析时间+城市)→ 大模型节点2(生成景点列表)

从用户输入中提取城市和日期,生成该城市的10个必玩景点名称

阶段二:景点详情与配图

大模型节点3(获取景点详情,批处理)→ 必应图片插件(获取配图,批处理)

为每个景点获取介绍、时长、室内外属性,并搜索3张图片

阶段三:数据整合

大模型节点4(批处理,同时处理文字和图片数组)

将每个景点的5项文字信息和3张图片信息整合到一个对象中

阶段四:天气查询与行程规划

墨迹天气插件 → 大模型节点5(生成行程规划)

获取多日天气预报,结合景点信息生成每日行程

数据流向图(建议在文章中画一张流程图,让读者一目了然):

```

用户输入 → [阶段一] → 景点列表(数组) → [阶段二批处理] → 景点详情+图片 → [阶段三] → 完整景点数据                                                       ↓

                        墨迹天气插件 → 天气数据 → [阶段四] → 最终行程规划

```

 2.3 流式反馈节点设计

为了提升用户体验,在工作流执行过程中插入两个消息节点,实时反馈进度,让用户知道机器人在“干活”。

— 消息节点1(置于大模型节点2之后):

   我已经收到您的请求,并为您推荐了以下景点:{{景点1}}、{{景点2}}……正在为您查询景点的详细信息和图片,请稍等……

  将数组元素逐个写出,避免机器人以JSON格式输出。

— 消息节点2(置于大模型节点4之后):

   景点信息查询完成,正在为您规划行程……

  不编写额外回答内容,仅用于绑定后续的卡片数据。

 三、阶段一:解析用户输入并获取景点列表

 3.1 开始节点

添加一个输入参数:

— 名称:`input`

— 类型:`string`

— 描述:`用户输入的旅行需求,例如“5月4号到6号我想去北京玩”`

 3.2 大模型节点1:解析时间与城市

配置项

内容

输入参数

引用开始节点的 input

运行模式

单次处理

模型选择

豆包 Pro 或 云雀

提示词

见下方

输出参数

city(字符串)、start_date(字符串)、end_date(字符串)

提示词:

```

你是一个信息提取助手。从用户输入 {{input}} 中解析出以下三个信息:

1. 目标城市(city)

2. 旅行的开始日期(start_date)

3. 旅行的结束日期(end_date)

日期格式必须为 YYYY—MM—DD,例如 2025—05—04。

如果用户输入的是“5月4号到6号”,则 start_date 为 2025—05—04,end_date 为 2025—05—06。

只输出 JSON 格式,不要有其他内容。

```

 关键点:日期格式必须为 `YYYY—MM—DD`,否则后续天气插件无法识别。

 3.3 大模型节点2:生成景点列表

配置项

内容

输入参数

引用大模型节点1的 city

运行模式

单次处理

提示词

见下方

输出参数

name_list(数组<string>)

提示词:

```

输出城市 {{city}} 必玩的10个旅游景点名称,将名称赋值给字符串类型的数组。

输出格式示例:["故宫博物院", "长城", "颐和园", "天坛", ...]

只输出数组,不要有任何其他内容。

```

 测试:输入“北京”,节点应输出10个北京必玩景点名称。

 四、阶段二:获取景点详细信息及配套图片

 4.1 大模型节点3:获取景点详情(批处理)

配置项

内容

运行模式

批处理

循环数组

引用大模型节点2的 name_list

循环项变量名

item(代表当前景点名称)

输入参数

引用 item

提示词

见下方

输出参数

见下方

提示词:

```

根据景点名称 {{item}},输出以下信息:

— 景点名称(name)

— 景点介绍(description,50字左右)

— 建议游玩时长(duration,如“2—3小时”)

— 室内/室外属性(indoor_outdoor,值为“室内”或“室外”)

— 所在行政区(district,如“东城区”)

输出 JSON 格式,不要有其他内容。

```

输出参数(均为字符串):

— `name`

— `description`

— `duration`

— `indoor_outdoor`

— `district`

 4.2 必应图片搜索插件节点(批处理)

配置项

内容

插件名称

Bing Image Search

运行模式

批处理

循环数组

引用大模型节点2的 name_list

循环项变量名

item

参数设置

query:引用 item(必填);count:留空(使用默认值);offset:留空

输出

图片信息列表,核心字段为 data.value[].contentUrl(图片直链)和 hostPageUrl(来源网页)

 测试:输入“故宫博物院”,插件应返回多张图片的URL列表。

⚠️ 常见问题:必应图片插件返回的部分图片 `contentUrl` 可能已失效,导致图片无法显示。后续优化中可考虑更换其他图片搜索插件,或通过代码节点对链接进行有效性校验。

 五、阶段三:整合文字信息与图片信息(核心难点)

 5.1 问题分析

大模型节点3输出的是10个景点的文字信息(数组),必应图片插件输出的是10个景点的图片信息(数组)。

两个数组的第N个元素都是同一个景点的信息——这是批处理模式的重要特性,Coze会按数组下标自动对齐,即第N个景点文字对应第N个景点的图片。

 5.2 大模型节点4:数据整合(批处理)

配置项

内容

运行模式

批处理

循环数组

同时循环两个数组——大模型节点3的 output_list(文字信息)和图片插件的 output_list(图片信息)

输入变量绑定

文字部分:name、description、duration、indoor_outdoor、district;图片部分:image_list(从插件输出中提取 data.value 数组)

提示词

见下方

输出变量

共11个(5个文字变量 + 6个图片变量)

提示词:

```

将 name、description、duration、indoor_outdoor、district 分别赋值给对应的输出变量。

从 image_list 中取出前 3 张图片的 contentUrl 和 hostPageUrl,分别赋值给图片1、图片2、图片3 的对应输出变量。

输出 JSON 格式。

```

输出变量列表:

— `name`(字符串)

— `description`(字符串)

— `duration`(字符串)

— `indoor_outdoor`(字符串)

— `district`(字符串)

— `img1_url`(字符串)

— `img1_page`(字符串)

— `img2_url`(字符串)

— `img2_page`(字符串)

— `img3_url`(字符串)

— `img3_page`(字符串)

 为什么需要11个输出变量? 因为我们需要把每个景点的文字信息(5项)和三张图片的信息(URL+来源页,共6项)全部提取出来,才能在卡片中完整展示。

 六、阶段四:天气查询与行程规划

 6.1 墨迹天气插件节点

— 输入参数:

  — `city`:引用大模型节点1的 `city`

  — `start_date`:引用大模型节点1的 `start_date`

  — `end_date`:引用大模型节点1的 `end_date`

  — 省份、区县、乡村:留空(非必填)

— 输出:`weather_data`(包含时间段内每日天气信息,如“晴”“小雨”“18—25℃”等)

 6.2 大模型节点5:生成行程规划

配置项

内容

运行模式

单次处理(不批处理,避免景点重复安排)

输入参数

attractions(引用大模型节点4的 output_list,含景点详细信息);weather(引用墨迹天气插件的 weather_data)

模型选择

豆包 Pro(对长文本处理能力更强)

提示词

见下方

输出参数

itinerary(字符串)

提示词(重点,长度篇幅较长,建议在文章中完整列出):

```

你是一个专业的旅游规划师。请根据以下信息,为用户制定每日行程安排。

景点信息:{{attractions}}

天气信息:{{weather}}

要求:

1. 按照用户提供的开始时间和结束时间,为每一天分别安排景点。

2. 所有安排的景点不可重复。

3. 根据天气调整:晴天优先安排室外景点,雨雪天优先安排室内景点。

4. 按白天8小时游玩时间计算。若时间充足且景点距离较近,可以上午、下午各安排1个景点;晚上可安排适合夜游的景点。

5. 为每一个安排给出具体的推荐理由,理由需结合景点特点、游玩时长、室内外属性和当日天气。

输出格式示例(请严格按此格式):

2025年5月4日(晴天):

— 上午:故宫博物院(室外,游玩3—4小时)—— 晴天适合参观宫殿建筑群......

— 下午:景山公园(室外,游玩1—2小时)—— 登高俯瞰故宫全景......

— 晚上:前门大街(室内外结合,游玩2小时)—— 品尝老北京小吃......

2025年5月5日(小雨):

— 上午:国家博物馆(室内,游玩3—4小时)—— 雨雪天适合室内文化体验......

— ...

```

 为什么这里不能用批处理? 如果对大模型节点5开启批处理,会导致每个景点被独立处理,产生重复的行程安排(比如每个景点都会生成一整天)。单次处理才能让大模型“看到”所有景点,统筹安排。

 七、景点信息卡片绑定

为了让景点信息展示更直观,我们为大模型节点4的输出绑定一个自定义卡片。

 7.1 卡片布局设计

采用单列布局,按以下顺序添加组件:

1. 景点名称(加粗、中等字号)

2. 室内/室外属性 + 所在行政区(合并显示,例如 `室内,东城区`)

3. 游玩时长

4. 景点详细介绍(设置最大行数为20行)

5. 三张景点图片(可并排或纵向排列)

 7.2 变量绑定与循环渲染

— 数据源:设置为数组对象,字段与大模型节点4的输出变量一致(11个字段)

— 循环渲染:开启卡片的循环渲染功能,绑定大模型节点4的 `output_list`,实现10个景点信息的批量展示

— 图片模块设置:

  — `资源` 项绑定对应图片的 `img_url`

  — 开启 “点击事件”,绑定 `img_page`,实现点击图片跳转至来源网页

 7.3 卡片发布与关联

1. 完成卡片设置后点击 “发布”

2. 返回智能体编辑页,在 “卡片” 设置中,将回复方式改为 “我的卡片”,选择刚发布的景点信息卡片

3. 设置数据来源为消息节点2的输出,最大长度设为10

4. 确认保存

 八、测试、问题排查与优化

 8.1 首次试运行可能遇到的问题

问题

现象

原因

解决方法

天气插件无输出

weather_data 为空

用户输入的中文日期格式(如“5月4号”)无法被插件识别

在大模型节点1提示词中强制要求输出 YYYY-MM-DD 格式

行程规划时间异常

有时只输出一天,有时输出多天

大模型节点5提示词未明确输出格式

在提示词中添加输出格式示例,明确要求按用户输入的时间范围输出

大模型幻觉

出现不合理建议(如“圆明园晚上游玩”)

大模型不知道景点的真实开放时间

建立景点专属知识库,录入各景点的开放时间、夜游属性等

图片失效

部分图片无法显示

必应图片插件的部分链接已失效

更换其他图片搜索插件,或通过代码节点对URL进行有效性校验

 8.2 避坑指南

1. 日期格式:用户输入的“5月4号”必须被大模型转换为 `2025—05—04`,这是导致天气查询失败的最常见原因。

2. 批处理数值限制:批处理模式最大批处理次数为10。如果要推荐10个景点,数组长度不要超过10。

3. 大模型输出稳定性:大模型节点5的行程规划输出可能不稳定,建议在提示词中加入“严格按输出格式,不要新增额外内容”的约束。

4. 卡片循环渲染的字段匹配:卡片中绑定的字段名必须与大模型节点4的输出变量名严格一致,否则无法显示。

 九、案例总结

完成这个旅游规划智能体后,你已经掌握了:

— ✅ 工作流的完整编排思路(多阶段、多节点协同)

— ✅ 批处理模式的高级用法(同时处理文字和图片数组,自动对齐)

— ✅ 复杂数据的整合与传递

— ✅ 两个外部插件的同时调用(墨迹天气 + 必应图片搜索)

— ✅ 自定义卡片的循环渲染

— ✅ 实战问题的排查与解决

这是对前九篇文章所学知识的一次完整检验。把这个案例做出来,你就正式从入门走到了精通。

 十、下篇预告:Coze 2.0 新特性与进阶技巧

10篇实战案例到此结束。最后一篇(第十一篇)将是进阶特辑,介绍Coze 2.0及之后版本的新特性,包括:

— 多Agent模式(多个智能体协同工作)

— 变量节点(工作流与智能体数据互通)

— 快捷指令(可视化变量赋值)

— 照片知识库(专门存储和检索图片)

— 触发器(定时任务推送)

这些新功能将让你的机器人在自动化、复用性上更加强大。

点击关注,精彩继续。

这个旅游规划智能体的工作流非常长,你花了多长时间搭建?哪个环节卡住了?欢迎评论区交流。

柒柒  

2026年5月


 📌 本文已同步收录于专栏《无代码AI智能体开发实战:从零到一搭建你的专属机器人》,欢迎订阅持续学习。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐