SmartPi 智能体平台实战:从知识库问答到设备控制的完整闭环
在智能家居和语音交互产品开发中,如何让设备"懂"你的产品?如何让用户通过自然对话完成设备控制?SmartPi 智能体平台提供了一套完整的解决方案——从知识库问答(RAG)到设备控制(MCP),让开发者能够快速打造智能语音交互体验。 平台更新说明(2026): 本文将带你完成一个完整的实战项目:打造一个能回答设备说明书问题,并能控制灯光亮度的智能语音助手。 在开始实战之前,先理解 SmartPi 智能体平台的整体架构: 核心组件说明: 在开始之前,请确认以下资源已准备就绪: 我们的第一个目标是:让智能体能够回答设备说明书中的问题,例如"这款设备怎么配网?"、"如何恢复出厂设置?"等。 填写基本信息: 知识库是智能体的"专业大脑",让它能够回答你们产品/设备的专属问题。 文件格式支持: 文件准备建议: Q&A 格式示例(Excel): 在智能体预览窗口测试以下三类问题: 如果智能体对资料外的问题也在"胡编",需要在提示词中加入更强的约束: 知识库让智能体"能答",现在要让它"能做"。我们将通过 MCP(Model Context Protocol)工具让智能体能够控制设备。 MCP 是连接大模型与设备控制的桥梁: 在配置 MCP 工具之前,需要先在小程序平台定义好可控制的"控件": 工具描述示例: 如果你的方案需要通过插件方式调用,可以按以下步骤操作: 现在我们已经有了: 最后一步是将智能体发布为 API 服务,并绑定到具体设备。 PAT(Personal Access Token)是调用智能体 API 的安全凭证。 调用 API 时需要在请求头中携带: 发布后记录两个关键信息: 创建新配置并填写: 绑定成功后,可以进行端到端测试: 对于需要通过代码调用智能体的场景,智能体平台提供了标准的 REST API。 所有 API 调用都需要携带以下请求头: 在发起对话之前,需要先创建一个会话: 响应示例: 使用流式输出可以获得更好的用户体验: 流式事件顺序: 如果使用对话流/工作流,可以直接执行: PAT 通常只在创建时展示一次,丢失后需要: 按以下顺序排查: 智能体对话的完整链路包括:ASR → 网络传输 → LLM 推理 → 工具调用 → 网络传输 → TTS 常见优化方向: 对于复杂场景,可以使用对话流编排多个工具的调用顺序: 如果需要接入自建的大模型服务(如 VLLM、Xinference): 填写配置参数: VLLM 部署示例: 通过自建 GPU 服务器部署方言识别和 TTS 合成: 通过本文的实战演练,我们完成了一个完整的智能体开发流程: 关键要点回顾: 下一步学习建议: 本文档基于 SmartPi 官方文档整理,涵盖智能体平台的核心功能和实战操作。前言
mcp_tool.yaml 文件一键导入一、智能体平台架构概览
┌─────────────────────────────────────────────────────────────────┐
│ 用户交互层 │
├─────────────────────────────────────────────────────────────────┤
│ 语音唤醒 → ASR识别 → 智能体对话 → TTS播报 → 设备控制 │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 智能体平台 (云端) │
├─────────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 知识库RAG │ │ 插件/MCP │ │ 自定义LLM │ │
│ │ (设备问答) │ │ (设备控制) │ │ (扩展能力) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ SmartPi 平台 (中台) │
├─────────────────────────────────────────────────────────────────┤
│ 固件配置 → MCP工具生成 → 二维码绑定 → 小程序控制 │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 设备端 (本地) │
├─────────────────────────────────────────────────────────────────┤
│ 语音模块 → 命令执行 → GPIO控制 → 状态上报 │
└─────────────────────────────────────────────────────────────────┘组件 作用 典型应用 知识库 (RAG) 让智能体基于你提供的资料回答 设备说明书、FAQ、产品规格 MCP/插件 让智能体能够调用外部工具控制设备 开关控制、参数调节、状态查询 PAT API 调用鉴权凭证 保护智能体接口安全 二维码绑定 将云端智能体与本地设备关联 一键完成配置同步 二、准备工作
2.1 必备条件
资源 说明 获取方式 SmartPi 平台账号 用于配置固件和生成二维码 https://smartpi.cn 注册 智能体平台地址 你们部署的控制台地址 由技术团队提供 支持智能体的设备 带 "AI 智能体" 菜单的语音模组 如 JX-A7T 等在线语音模块 微信小程序 "智能公元"小程序 微信搜索即可 2.2 检查设备是否支持智能体
注意:如果看不到该菜单,说明当前设备/固件不支持智能体功能,需要升级到支持在线语音的固件版本。
三、实战第一步:创建知识库问答智能体
3.1 创建智能体
设备说明书助手(或更具体的场景名,如"客厅灯光助手")回答设备使用问题,并能控制设备# 最小可用提示词(可直接复制)
你是设备的智能语音助手。
你的任务是:
1. 回答用户关于设备使用的各种问题
2. 基于知识库内容回答,找不到答案就说"这个问题我不太清楚"
3. 用简洁的中文回答,每次回答不超过50字3.2 准备知识库文件
.docx).txt, .md).xlsx, .csv) —— 适合 Q&A 格式建议 说明 文件大小 单文件控制在 5MB 以内,大文件请按章节拆分 内容格式 使用清晰的标题和段落结构 Q&A 格式 关键信息推荐用问答对方式呈现,便于精准匹配 问题 答案 设备如何配网? 打开小程序,点击添加设备,选择设备型号,输入 Wi-Fi 密码即可完成配网 如何恢复出厂设置? 长按设备上的复位按钮 5 秒,听到提示音后松开,设备将恢复出厂设置 设备支持哪些语音指令? 支持开关控制、亮度调节、颜色切换等指令,具体请查看产品说明书 3.3 创建并关联知识库
设备说明书-2025Q13.4 验证知识库效果
问题类型 示例问题 预期结果 资料里有答案的 "设备怎么配网?" 能准确回答 资料里有步骤的 "如何恢复出厂设置?" 能按步骤说明 资料里没有的 "你们公司上市了吗?" 回答"不清楚"或类似内容 ## 重要限制
- 只能基于知识库内容回答
- 知识库中没有答案的问题,必须回答"这个问题我不太清楚"
- 不要猜测或编造信息四、实战第二步:让智能体具备设备控制能力
4.1 理解 MCP 工具
┌─────────────┐ 语音输入 ┌─────────────┐
│ 用户 │ ──────────────────→ │ 智能体 │
└─────────────┘ └─────────────┘
│
│ 调用 MCP 工具
↓
┌─────────────┐ 工具调用 ┌─────────────┐
│ 设备 │ ←────────────────── │ MCP 服务 │
│ (GPIO等) │ └─────────────┘
└─────────────┘4.2 配置设备控件
控件类型 控件 ID 说明 开关 switch_light控制灯光开关 滑块 slider_brightness调节亮度(0-100) 状态显示 text_status显示当前状态 4.3 生成 MCP 工具
工具名称 描述 控制灯光开关打开或关闭灯光,参数:on=开,off=关 调节灯光亮度调节灯光亮度,参数:0-100 的数值,0 为最暗,100 为最亮 查询灯光状态查询灯光当前的状态,包括开关和亮度值 4.4 发布 MCP 工具
注意:MCP 工具只有在固件发布后才会生效,修改描述后需要重新发布。
4.5 导入插件到智能体(可选方案)
mcp_tool.yaml 文件token 固定填 Bearer test五、实战第三步:发布智能体并绑定设备
5.1 生成个人访问令牌 (PAT)
Authorization: Bearer pat_xxxxx5.2 发布智能体为 API 服务
bot/ 后的数字5.3 在 SmartPi 平台创建智能体配置
5.4 使用小程序扫码绑定
注意:二维码有效期为 10 分钟,超时需重新生成。
5.5 验证完整流程
测试指令 预期行为 "你好" 智能体正常回复 "设备怎么配网?" 基于知识库回答配网步骤 "把灯打开" 调用 MCP 工具,设备灯光开启 "把亮度调到 50" 调用 MCP 工具,亮度变为 50% "现在灯什么状态?" 调用查询工具,播报当前状态 六、OpenAPI 调用速查
6.1 请求头配置
Authorization: Bearer pat_xxxxx
Content-Type: application/json6.2 创建会话(Conversation)
curl --location '{{host}}/v1/conversation/create' \
--header 'Authorization: Bearer pat_xxxxx' \
--header 'Content-Type: application/json' \
--data '{"bot_id":"<bot_id>"}'{
"code": 0,
"data": {
"conversation_id": "conv_xxxxx",
"created_at": 1234567890
}
}6.3 发起对话(Chat v3,流式 SSE)
curl --location --request POST '{{host}}/v3/chat?conversation_id=<conversation_id>' \
--header 'Authorization: Bearer pat_xxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"bot_id": "<bot_id>",
"user_id": "<your_user_id>",
"stream": true,
"auto_save_history": true,
"additional_messages": [
{"role":"user","content":"你好","content_type":"text"}
]
}'事件 说明 conversation.chat.created对话创建 conversation.chat.in_progress对话进行中 conversation.message.delta消息增量(流式返回内容) conversation.message.completed消息完成 conversation.chat.completed对话完成 done流结束 6.4 消息列表与清理上下文
# 获取消息列表
POST {{host}}/v1/conversation/message/list?conversation_id=<conversation_id>
# 清理对话上下文
POST {{host}}/v1/conversations/<conversation_id>/clear6.5 执行工作流(Workflow)
curl --location --request POST '{{host}}/v1/workflow/run' \
--header 'Authorization: Bearer pat_xxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"workflow_id": "<workflow_id>",
"parameters": "{\"user_id\":\"12345\"}"
}'七、常见问题排查
7.1 PAT 忘记保存怎么办?
7.2 设备端没有反应?
排查项 检查方法 菜单支持 小程序中是否有"AI 智能体"菜单 配置正确 bot\_id 和 PAT 是否正确(多余空格也会导致失败) API 发布 智能体是否已发布为 API 服务 网络连接 设备是否正常联网 固件版本 是否烧录了包含 MCP 工具的最新固件 7.3 知识库回答不准确?
问题 解决方案 回答内容与资料不符 检查知识库文件解析是否完成 对资料外问题乱回答 在提示词中加入更强的约束规则 找不到答案 调整相似度阈值(默认 0.5,可适当降低) 7.4 MCP 工具调用失败?
问题 解决方案 工具未启用 在插件管理中确认工具已启用 试运行失败 确认 token 参数填写正确( Bearer test)设备无响应 检查固件是否正确烧录,MCP 工具是否已发布 7.5 响应延迟过大?
环节 优化建议 网络传输 确保设备网络稳定,减少路由跳数 LLM 推理 使用更快的模型,或启用流式输出 对话流 关闭"深度思考"功能以减少响应时间 缓存 对常见问题配置缓存机制 八、进阶技巧
8.1 对话流/工作流 (Workflow) 应用
token、deviceKeyworkflow_id8.2 自定义大模型接入
docker run --gpus all \
-v ~/.cache/huggingface:/root/.cache/huggingface \
-p 8000:8000 \
--name vllm-server \
vllm/vllm-openai \
--model your-model-name \
--trust-remote-code8.3 方言支持
方言 支持情况 粤语 支持 ASR 和 TTS 上海话 支持 ASR 和 TTS 四川话 支持 ASR 和 TTS 九、总结
知识库配置 → MCP 工具生成 → API 发布 → 设备绑定 → 端到端测试要点 说明 知识库 是智能体的专业大脑,用 Q&A 格式效果最佳 MCP 工具 是连接 AI 与设备的桥梁,描述要清晰准确 PAT 只展示一次,务必妥善保存 二维码绑定 有效期 10 分钟,需要提前准备设备 提示词优化 根据实际效果持续迭代,加入约束规则 参考资源
资源名称 链接 SmartPi 平台 https://smartpi.cn 智能体平台快速开始 官方文档 /ai-agents/get-started 知识库配置指南 官方文档 /ai-agents/knowledge-base-setup 智能体控制台指南 官方文档 /ai-agents/platform-guide 智能体实践教程 官方文档 /ai-agents/tutorial