大家好,我是正在实战各种 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 倍。加油!💪


💬 联系我

平台账号/链接
微信扫码加好友
微博@程序员晚枫
知乎@程序员晚枫
抖音@程序员晚枫
小红书@程序员晚枫
B 站Python 自动化办公社区

主营业务:AI 编程培训、企业内训、技术咨询

🎓 AI 编程实战课程

想系统学习 AI 编程?程序员晚枫的 AI 编程实战课 帮你从零上手!