第三章 工作流进阶:让你的天气机器人更聪明
|从“能用”到“好用”|拖拽式编排|零代码实现精准控制|
上一篇文章,我们用自然语言+插件快速搭了一个天气查询智能体。它能回答问题,但你也发现了不少毛病:
—问“北京”,它不知道怎么查(因为没有指定时间)
—输出格式乱七八糟,想让它固定成卡片样式,却总是不听话
—穿衣建议太笼统,能不能根据早中晚分别给出?
这些问题,本质上是大模型“自由发挥”的结果。自然语言提示词再详细,大模型偶尔还是会“抽风”。
怎么解决?答案就是工作流(Workflow)。
工作流就像一张“流程图”,你把每一个步骤用节点画出来,机器人必须严格按照你的流程执行,没有自由发挥的空间。
今天,我就带你从零创建一个工作流,把天气机器人从“能用”升级到“好用”。
📌本篇你将学到什么?
✅什么是工作流,以及它的核心价值
✅如何创建工作流并连接节点
✅用大模型节点解析用户输入(城市+时间)
✅调用天气插件获取真实数据
✅用代码节点精确计算星期几(修复大模型幻觉)
✅自定义输出格式,让回复更美观
全程拖拽+配置,不写一行代码(除了一个可选的Python小片段)。
第一步:为什么需要工作流?
回顾一下我们上一篇文章的架构:
```用户提问→大模型(自然语言)→天气插件→直接输出```
这个流程中,大模型既要理解用户的话,又要决定是否调用插件,还要决定输出格式。任务太多,容易出错。
工作流把每个环节拆开,变成一个个独立的节点:
```用户提问→[开始节点]→[大模型节点(只做解析)]→[插件节点(只查天气)]→[代码节点(处理数据)]→[结束节点]→输出```
每个节点只做一件事,环环相扣,绝对可控。
第二步:创建工作流
1.登录Coze,点击左侧“编程”→“工作流”→“新建工作流”。
2.名称:`weather_workflow`(只能字母、数字、下划线)
3.描述:`根据用户提问,查询指定城市、指定时间的天气,并返回格式化结果。`
4.点击确认,进入工作流编辑界面。
你会看到画布上已经有了两个节点:开始节点和结束节点。这是我们工作流的起点和终点。
第三步:配置开始节点(接收用户输入)
点击开始节点,在右侧配置面板中,添加一个输入参数:
|
参数名 |
类型 |
描述 |
是否必要 |
|
input |
string |
用户输入的问题(例如“北京未来三天天气”) |
✅ |
|
这个 input 就是用户发给机器人的原始提问。 | |||
第四步:添加大模型节点(解析用户输入)
从左侧节点库拖拽一个“大语言模型”节点到画布,放在开始节点右边。然后连接开始节点的输出端到大模型节点的输入端。
点击大模型节点,配置如下:
|
配置项 |
内容 |
|
运行模式 |
单词处理 |
|
模型选择 |
豆包Pro或云雀(任意) |
|
输入参数 |
引用开始节点的input |
|
提示词 |
见下方 |
|
输出变量 |
添加四个字符串变量:city、town、start_date、end_date |
提示词内容(直接复制):
```从用户输入{{input}}中提取以下信息:
—城市(city)
—区/县/镇(town,如果没有就填空字符串)
—开始日期(start_date)
—结束日期(end_date)
日期格式必须为YYYY—MM—DD,例如2025—05—20。
如果用户没有指定时间,则默认start_date为今天的日期,end_date为今天+2天。
只输出JSON格式,不要有其他内容。```
这个提示词的作用是:让大模型把“北京未来三天天气”这样的自然语言,转换成`{"city":"北京","start_date":"2025—05—20","end_date":"2025—05—22"}`这样的结构化数据。
配置完成后,点击右上角“试运行”,输入测试内容“北京未来三天天气”,查看大模型节点的输出。你应该能看到类似这样的结果:
```json
{
"city":"北京",
"town":"",
"start_date":"2025—05—20",
"end_date":"2025—05—22"
}
```
如果解析不对,微调提示词(比如强调“日期必须补零”)。
第五步:添加插件节点(查询天气)
拖拽一个“插件”节点到画布,放在大模型节点右边,连接两者。
在插件节点中,搜索并选择你上一篇文章添加的天气插件(如“和风天气”或“彩云天气”)。
配置插件的输入参数,映射到大模型节点的输出:
|
插件参数 |
映射来源 |
|
City |
大模型节点的city |
|
start_date |
大模型节点的start_date |
|
end_date |
大模型节点的end_date |
不同插件的参数名可能不同,但一般都有城市、开始时间、结束时间。如果插件要求“城市代码”而不是名称,可以在后续用代码节点转换,这里先按最简单的来。
插件节点的输出是天气数据的JSON数组,包含每一天的温度、天气状况、日期等。
第六步:添加代码节点(精确计算星期几)
这里有一个很多人会踩的坑:大模型直接根据日期推算星期几,经常算错(比如把5月20日周二说成周三)。这是典型的“大模型幻觉”。
最靠谱的方法是:用代码算。Python的`datetime`模块永远不会算错。
拖拽一个“代码”节点到画布,放在插件节点右边,连接两者。
点击代码节点内的“编辑”按钮,进入IDE。选择Python语言,粘贴以下代码:
```python
importjson
fromdatetimeimportdatetime
defmain(input_data):
从插件节点获取天气数据列表
weather_list=input_data.get("weather_list",[])
result=[]
foriteminweather_list:
date_str=item.get("date","")格式应为YYYY—MM—DD
ifdate_str:
dt=datetime.strptime(date_str,"%Y—%m—%d")
weekday():0=周一,6=周日
weekday_map=["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]
item["weekday"]=weekday_map[dt.weekday()]
result.append(item)
return{"weather_data":result}
```
这段代码的作用:遍历每一天的天气数据,根据日期计算出正确的星期几,然后添加到数据中。
配置代码节点的输入参数:引用插件节点的输出(通常叫`output`或`data`),参数名设为`weather_list`。
配置代码节点的输出参数:添加一个变量`weather_data`,类型为`array<object`。
点击“测试”,模拟输入插件节点的返回数据,确认代码能正确输出带星期几的天气列表。
第七步:配置结束节点(输出最终回答)
结束节点是工作流的出口。我们需要把处理好的天气数据,加上自定义格式,返回给用户。
连接代码节点的输出端到结束节点。
在结束节点的配置中:
—回答方式:选择“使用设定的内容直接回答”。
—回答内容:使用Markdown格式,循环输出每一天的天气。由于工作流结束节点不支持循环语法,我们需要用大模型节点来生成文本。但为了简单起见,这里先用一个大模型节点做格式化。
优化方案:在代码节点和结束节点之间,再添加一个大模型节点,专门用来生成最终回答。
新建一个大模型节点,连接代码节点。配置如下:
|
配置项 |
内容 |
|
输入参数 |
引用代码节点的weather_data |
|
提示词 |
见下方 |
|
输出参数 |
final_answer(字符串) |
提示词:
```
请根据以下天气数据,生成一段友好的回答。要求:
—按日期顺序输出
—每一天的格式为:【日期星期】天气:XXX|温度:最低温—最高温℃|穿衣建议:根据温度给出(20度以下穿外套,20—25度短袖,25度以上防晒)
—最后加一句温馨提醒
天气数据:{{weather_data}}
```
然后让结束节点直接输出这个大模型节点的`final_answer`。
第八步:试运行与发布
点击右上角“试运行”,输入测试内容:
—“北京未来三天天气”
—“上海今天天气”
—“杭州”
检查输出是否:
—日期格式正确
—星期几准确
—穿衣建议合理
—没有多余内容
一切正常后,点击“发布”。
第九步:把工作流关联到智能体
回到你之前创建的“天气查询”智能体编辑页。
1.在左侧“技能”→“工作流”中,点击“+”,添加刚发布的`weather_workflow`。
2.关闭原先直接调用的天气插件(避免冲突)。
3.修改人设与回复逻辑为:
```
你是一个天气查询助手。请调用工作流`weather_workflow`查询天气,并根据工作流返回的内容直接输出。你只能回答天气相关的问题。如果遇到无法解答的问题,请回复:“对不起,我只能回答天气问题。”
```
点击“优化”,然后发布智能体。
🎉你现在拥有了一个“聪明”的天气机器人
对比一下优化前后的区别:
|
场景 |
优化前(自然语言) |
优化后(工作流) |
|
问“北京” |
报错或乱猜 |
自动查未来三天 |
|
输出格式 |
不稳定,随大模型心情 |
完全自定义,固定样式 |
|
星期几 |
经常算错 |
代码计算,100%准确 |
|
穿衣建议 |
笼统 |
根据温度区间智能推荐 |
|
这就是工作流的威力:把不可控的大模型“黑盒”,变成可控的“流水线”。 | ||
📢下篇预告:知识库——让机器人拥有长期记忆
下一篇,我们将进入Coze另一个核心功能:知识库。
你会学到:
—如何上传Excel、PDF、Word文档作为知识来源
—如何让机器人精准回答“课程价格是多少”“某某老师教什么课”
—如何用“索引列”实现表格数据的智能查询
适合做智能客服、企业问答系统的你。
如果不想错过,点击关注,第一时间收到更新。
💬最后
这一篇比上一篇复杂了不少,你可能需要花20—30分钟跟着一步步操作。如果遇到问题,欢迎在评论区留言,我会一一解答。
下篇见。
柒柒
2026年4月
📌本文已同步收录于专栏《无代码AI智能体开发实战:从零到一搭建你的专属机器人》,欢迎订阅持续学习。
更多推荐


所有评论(0)