需创建支持天气与物流双查询的Bot,通过接入和风天气API及快递100 Webhook,并设计条件分支与代码节点实现联动响应。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

创建支持天气+物流双查询的Bot
你需要一个能同时响应“上海今天热不热”和“我的快递到哪了”这两类问题的智能体,而不是两个割裂的机器人。登录Coze平台后,直接创建新Bot,名称填“出行物流小管家”,描述写“查天气、跟快递,一句话全搞定”,头像选带云朵和货车图标的组合款——这一步决定用户第一眼是否愿意多聊两句。
进入Bot编辑页,先关闭默认的「知识库」开关,因为本次核心能力来自API而非文档检索;再把「多轮对话记忆」设为开启,否则用户问完天气紧接着问“那快递呢”,Bot会忘记刚聊过上海。
接入和风天气API(自定义HTTP工具)
在左侧菜单点「工具」→「添加工具」→「自定义工具」。
工具名称填“实时天气查询”,描述写“调用和风天气v7接口,返回温度、天气状况、风速、湿度四字段”。【URL必须用https开头,且含{location}和{key}两个占位符,例如https://devapi.qweather.com/v7/weather/now?location={location}&key={key}】
参数配置里只加两项:location(勾选“用户可输入”,变量名填city)、key(不勾选“用户可输入”,值填你从https://dev.qweather.com申请到的32位API Key)。别漏掉key——漏了Bot每次调用都会返回401错误,但错误提示藏在日志里,前端用户只看到“我暂时无法回答”。
响应处理中,状态码填200,JSONPath填$.now.textDay(天气状况)、$.now.temp(温度)、$.now.windScale(风力等级)、$.now.humidity(湿度),四个字段全部映射为Bot可用变量。
接入快递100物流API(Webhook中转)
快递100要求每次请求携带sign签名,且需用当前时间戳参与计算,扣子原生HTTP工具无法动态生成签名,必须走Webhook。
方法一:用现成的云函数模板(推荐)
访问https://github.com/coze-plugins/kuaidi100-webhook → 点击“Deploy to Cloudflare Workers”,填入你的快递100企业ID、API Key和Webhook Secret,5分钟自动生成HTTPS地址。
方法二:本地调试用Flask快速搭建
新建main.py,粘贴以下代码:
from flask import Flask, request, jsonify
import hashlib, time, json
app = Flask(__name__)
@app.route('/track', methods=['POST'])
def track():
data = request.json
num = data.get('number')
key = 'YOUR_KUAI100_KEY'
time_str = str(int(time.time()))
sign_str = f'key{key}number{num}time{time_str}'
sign = hashlib.md5(sign_str.encode()).hexdigest().upper()
# 此处调用快递100真实接口并返回json结果
return jsonify({'status': '200', 'data': [{'time': '2026-06-05 14:22:00', 'ftime': '2026-06-05 14:22:00', 'context': '快件已由【北京朝阳区】发出'}]})
在扣子「自定义工具」中选「Webhook」类型,URL填你部署好的地址,如https://yourdomain.workers.dev/track。测试时用Postman发一个{"number":"SF123456789CN"},确认返回含context字段的JSON才算通。
设计联动工作流:天气影响物流判断
第一步:添加「条件分支」节点,判断用户提问是否含“快递”“物流”“单号”任一关键词。
第二步:若命中,执行「快递100查询」工具,提取返回中的最新物流节点时间(ftime)和描述(context)。
第三步:若未命中,则执行「实时天气查询」工具,获取当前城市温度(temp)和天气状况(textDay)。
第四步:插入「代码节点」,用Python做简单逻辑:
if int(temp) > 35 and '晴' in textDay:
output = f"⚠️高温预警:{temp}℃,建议避开午后派件;{context}"
elif '雨' in textDay or '雪' in textDay:
output = f"?️雨雪天气:{textDay},配送可能延迟;{context}"
else:
output = f"✅天气正常:{textDay} {temp}℃;{context}"
最后把output作为Bot回复内容输出。


















