
大家好,我是正在实战各种 AI 项目的程序员晚枫。
机器人能回答问题很棒,但能真正"办事"才更值钱。
你想过没有:
- 机器人帮用户查快递 ✅
- 机器人帮用户查订单 ✅
- 机器人帮用户预约会议室 ✅
- 机器人帮用户创建工单 ✅
这些光靠知识库做不到,需要连接外部服务。这一讲,我教你这个技能。
🎯 先说说什么是"外部服务"
简单理解
1 2 3 4 5 6 7 8 9 10 11
| 📚 知识库能做的: → 回答已有答案的问题 → "课程多少钱?" → 读知识库回答 → "退货政策是什么?" → 读知识库回答
🔌 外部服务能做的: → 调用实时数据 → 查快递:输入单号 → 返回物流信息 → 查订单:输入手机号 → 返回订单状态 → 查天气:输入城市 → 返回实时天气 → 创建预约:输入信息 → 写入数据库
|
知识库 = 静态问答库
外部服务 = 动态交互接口
外部服务能做什么?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| ✅ 查询类(读取数据) → 查快递物流 → 查订单状态 → 查库存数量 → 查天气/汇率/股票 → 搜新闻/搜图片
✅ 操作类(写入数据) → 创建订单 → 创建预约 → 发送通知 → 发送邮件/短信 → 录入数据
✅ 第三方集成 → 接入CRM系统 → 接入ERP系统 → 接入支付系统 → 接入客服系统
|
🔌 扣子的插件系统
什么是插件?
插件 = 扣子帮你封装好的外部服务连接
你不需要写代码,直接拖过来用就行。
扣子官方插件市场
扣子提供了很多官方插件:
| 插件 | 功能 | 使用场景 |
|---|
| 🌤️ 天气查询 | 获取实时天气 | 出行助手 |
| 📰 资讯搜索 | 搜索新闻/文章 | 新闻机器人 |
| 🔍 网页搜索 | 搜索网页内容 | 百科问答 |
| 📷 图像生成 | AI生成图片 | 设计助手 |
| 🧮 计算器 | 数学计算 | 财务计算 |
| 📅 日程管理 | 日程增删改查 | 私人助理 |
| 📧 邮件发送 | 发送邮件 | 通知提醒 |
使用官方插件
步骤:
1 2 3 4
| 1. 扣子后台 → 「📊 插件」 2. 找到需要的插件 3. 点击「添加」 4. 在工作流中调用
|
示例:天气查询插件
1 2 3 4 5 6 7 8 9 10 11 12 13
| 用户:上海天气怎么样? 机器人:[调用天气插件] ↓ 插件返回: { "city": "上海", "weather": "晴", "temperature": "25°C", "wind": "东南风3级" } ↓ 机器人:今天上海天气晴朗,25°C,东南风3级~ 适合出行哦!☀️
|
第三方插件
除了官方插件,扣子还支持第三方插件:
1 2 3 4 5 6 7 8 9
| 🔍 常用第三方插件: → 快递查询(多家快递公司) → 航班查询(实时航班信息) → 电影查询(院线排片) → 音乐搜索(网易云/QQ音乐) → 视频搜索(B站/抖音视频)
找到方式: 插件市场 → 搜索关键词 → 找到需要的插件 → 添加
|
📡 自定义 API 调用(进阶)
什么是 API?
API = 应用程序接口
简单说,就是软件和软件之间的"电话"。机器人通过 API 调用其他系统的数据。
1
| 🤖 机器人 ──API──→ 其他系统(你的订单系统/库存系统/CRM)
|
常见 API 类型
1 2 3 4 5 6 7 8 9 10 11
| 🌐 HTTP API(最常见) → 用 HTTP 协议通信 → 简单易用,扣子原生支持
📊 数据库 API → 直接操作数据库 → 查询/插入/更新/删除数据
☁️ 云服务 API → 阿里云/腾讯云/百度云的各种服务 → 短信/邮件/存储/计算
|
在扣子中调用自定义 API
场景:查询订单状态
第一步:获取 API 信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 你需要从你的系统获取: ├── API 地址:https://api.yourstore.com/order/status ├── 请求方法:GET ├── 参数:order_id(订单号) ├── 认证方式:Bearer Token └── 返回格式:JSON
{ "order_id": "123456", "status": "已发货", "express": "中通快递", "express_no": "SF1234567890", "delivery_time": "2026-03-01 15:30" }
|
第二步:在扣子中配置 HTTP 请求
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
| 扣子后台 → 工作流 → 创建工作流
┌──────────────────────────────────────────────┐ │ 开始 │ │ 输入:用户消息 │ └──────────────────┬───────────────────────────┘ ▼ ┌──────────────────────────────────────────────┐ │ 询问订单号 │ │ 机器人:请输入您的订单号 │ └──────────────────┬───────────────────────────┘ ▼ ┌──────────────────────────────────────────────┐ │ HTTP 请求节点 │ │ URL: https://api.yourstore.com/order/status │ │ Method: GET │ │ 参数: order_id = 用户输入的订单号 │ └──────────────────┬───────────────────────────┘ ▼ ┌──────────────────────────────────────────────┐ │ 处理返回数据 │ │ 解析 JSON → 提取 status/express 等字段 │ └──────────────────┬───────────────────────────┘ ▼ ┌──────────────────────────────────────────────┐ │ 回复用户 │ │ 格式化输出订单信息 │ └──────────────────┬───────────────────────────┘ ▼ ┌──────────────────────────────────────────────┐ │ 结束 │ └──────────────────────────────────────────────┘
|
第三步:填写配置
1 2 3 4 5 6 7
| HTTP 请求节点配置:
URL:https://api.yourstore.com/order/status?order_id={{order_id}} Method:GET Headers: Authorization: Bearer your_token_here Content-Type: application/json
|
第四步:解析返回数据
1 2 3 4 5
| 扣子会自动解析 JSON 返回值,你可以在后续节点中引用:
{{http_request_1.response.status}} → 订单状态 {{http_request_1.response.express}} → 快递公司 {{http_request_1.response.express_no}} → 快递单号
|
第五步:格式化回复
1 2 3 4 5 6 7
| 回复模板: 您的订单状态如下: 📦 订单号:{{order_id}} 🚚 状态:{{status}} 📬 快递:{{express}} {{express_no}}
如有其他问题,随时问我~
|
用 AI 生成 API 调用配置
如果你不太熟悉 API,可以这样让 AI 帮你写:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| 你是一名 API 集成专家。
我要调用以下 API: - 地址:https://api.example.com/order/status - 方法:GET - 参数:order_id(订单号) - 返回格式: { "order_id": "123456", "status": "已发货", "express": "中通", "express_no": "SF123456" }
请帮我设计扣子工作流: 1. 如何配置 HTTP 请求节点 2. 如何解析返回的 JSON 数据 3. 如何格式化回复内容 4. 错误处理(如 API 调用失败怎么办)
输出详细的配置步骤和代码示例。
|
🛒 常见应用场景
场景1:快递查询机器人
用户输入快递单号 → 机器人查询并返回物流信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| 用户:帮我查一下快递 SF1234567890 ↓ 机器人:[调用快递100 API 或快递公司 API] ↓ 返回: ┌─────────────────────────────────────┐ │ 📦 快递查询结果 │ │ 单号:SF1234567890 │ │ 状态:运输中 │ │ ────────────────────── │ │ 2026-03-01 15:30 已发出 │ │ 2026-03-01 18:45 到达上海中转站 │ │ 2026-03-02 09:20 派送中 │ │ 预计今日送达~ │ └─────────────────────────────────────┘
|
实现方式:
1 2
| 工作流: 用户输入单号 → 调用快递 API → 解析返回 → 格式化输出
|
场景2:库存查询机器人
用户问有没有货 → 机器人查库存系统
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| 用户:iPhone 15 Pro 有货吗? ↓ 机器人:[调用库存系统 API] ↓ 返回: ┌─────────────────────────────────────┐ │ 🔍 iPhone 15 Pro 库存查询 │ │ ───────────────────────────────── │ │ 128GB 黑色:✅ 有货(5台) │ │ 128GB 白色:✅ 有货(3台) │ │ 256GB 黑色:⚠️ 紧张(1台) │ │ 256GB 白色:❌ 缺货 │ │ ───────────────────────────────── │ │ 价格:128GB ¥7999 / 256GB ¥8999 │ └─────────────────────────────────────┘
|
场景3:预约登记机器人
收集用户信息 → 创建预约记录 → 发确认
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| 用户:我想预约周日的咨询 ↓ 机器人:请告诉我: 1. 您的姓名 2. 联系电话 3. 预约时间
用户:姓名:王先生,电话:138xxxx,预约周日下午3点
↓ 机器人:[调用预约系统 API,创建预约记录] ↓ 返回:✅ 预约成功!
┌─────────────────────────────────────┐ │ 📅 预约确认 │ │ 姓名:王先生 │ │ 电话:138xxxx │ │ 时间:周日 15:00 │ │ ───────────────────────────────── │ │ 已发送确认短信到您的手机 │ │ 如需更改,请回复「改签」 │ └─────────────────────────────────────┘
|
场景4:发送通知机器人
触发条件 → 发送短信/邮件/微信通知
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| 用户:提醒我明天上午10点开会
↓ 机器人:[创建日程提醒]
↓ 第二天 10:00: ↓ 机器人:[调用通知 API,发送提醒] ↓ 收到通知: ┌─────────────────────────────────────┐ │ 🔔 会议提醒 │ │ 会议时间:10:00(30分钟后) │ │ 地点:会议室A │ │ 参会人:张总、李经理 │ │ ───────────────────────────────── │ │ [查看详情] [标记完成] │ └─────────────────────────────────────┘
|
场景5:CRM 集成机器人
查询客户信息 → 更新跟进记录 → 创建商机
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| 销售:查一下王老板的跟进记录
↓ 机器人:[调用 CRM API,查询客户信息] ↓ 返回: ┌─────────────────────────────────────┐ │ 👤 客户信息 │ │ 姓名:王老板 │ │ 公司:XX科技有限公司 │ │ 来源:官网表单 │ │ 状态:意向客户 │ │ ───────────────────────────────── │ │ 最近跟进:3天前 │ │ 意向产品:企业版套餐 │ │ 预估金额:¥50000 │ │ ───────────────────────────────── │ │ [添加跟进记录] [创建商机] │ └─────────────────────────────────────┘
|
⚠️ 错误处理
常见错误类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ❌ API 调用失败 → 网络问题 → API 服务挂了 → 参数错误
❌ 认证失败 → Token 过期 → 权限不足 → API Key 错误
❌ 数据问题 → 返回格式不对 → 缺少必要字段 → 数据为空
|
错误处理方案
方案1:友好提示
1 2 3 4
| 抱歉,系统有点忙,请稍后再试~ 😅
如果着急,可以直接联系客服: 📱 微信:aiwf365
|
方案2:转人工
1 2 3
| 这个问题我需要查询一下,请稍等。 (等待超时后) 抱歉,这个问题我处理不了,已帮您转接人工客服~ 👨💻
|
方案3:重试机制
1 2
| 抱歉,网络有点问题,我再试一次... (等待几秒后重试)
|
方案4:引导用户提供更多信息
1 2 3 4 5 6
| 抱歉,订单号查询不到结果。 请确认: 1. 订单号是否正确 2. 是否在我店购买
如有问题,联系客服:微信 aiwf365
|
扣子中配置错误处理
1 2 3 4 5 6 7 8 9 10 11
| HTTP 请求节点 → 高级设置 → 错误处理:
失败时: ├─ 重试 1-2 次 ├─ 等待 3 秒再试 └─ 失败后执行备用逻辑
备用逻辑: ├─ 返回友好提示 ├─ 转人工 └─ 记录日志
|
🛠️ 本讲作业
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| ✅ 作业1:探索插件市场 → 进入扣子插件市场 → 看看有哪些插件可用 → 添加 2-3 个你感兴趣的插件
✅ 作业2:调用一个公开 API → 找一个公开 API(天气/快递等) → 获取 API 密钥 → 在扣子中配置调用 → 测试是否正常工作
✅ 作业3:设计一个完整场景 → 根据你的业务需求 → 设计一个连接外部服务的场景 → 画出工作流 → 配置并测试
|
下一步
👉 第九讲:机器人个性化
下一讲我们会聊:
- 🎭 打造独特人设
- 🗣️ 语气和风格定制
- 🌟 品牌化设计
让机器人成为你品牌的代言人!
💬 加入学习交流群
扫码加入学习群,分享你的 API 集成经验:
👉 点击加入交流群
连接外部服务,让机器人从"能说话"变成"能办事"。这是机器人价值的关键提升。记住:能办事的机器人,比只会聊天的机器人值钱 10 倍。加油!💪
💬 联系我
主营业务:AI 编程培训、企业内训、技术咨询
🎓 AI 编程实战课程
想系统学习 AI 编程?程序员晚枫的 AI 编程实战课 帮你从零上手!