🏠 home › projects › sentino-iot
tags
[IoT, AI语音, 嵌入式, 项目]
created
2026-04-12
updated
2026-04-30
status
active
repo
~/local/iot-docs
sources
[raw/snippets/iot-docs/README.md, raw/snippets/iot-docs/architecture-overview.md, raw/snippets/iot-docs/architecture-technical.md, raw/notes/sentino-iot-terminal-facing-api-2026.md, raw/snippets/bk7258-build/iot-architecture-onboarding.md, raw/notes/2026-04-30-claude-desktop-buddy-vs-sentino-iot-sample-architecture.md]

概述

sentino IoT 是面向 AI 语音交互设备的物联网平台,让嵌入式设备(玩偶、故事机、机器人、音箱)能与云端 AI 进行实时语音对话。

商务关系:Sentino 是 Agora 合作伙伴——RTSA / ConvoAI / RTC 等基础设施层的官方推荐解决方案商。

核心能力:AI 实时语音对话、多角色智能体、NFC 角色切换、BLE 一键配网、工作流编排(Function Calling)、AI 设备控制、OTA 远程升级。

硬件接入路径(基于 Agora R1 / BK7258 自定义固件)

Sentino 提供完整的端到端固件示例项目(sentino-jp/sentino-iot-sample,目前 GitHub private)——客户用 BK7258 硬件 → 烧录 Sentino 自定义固件 → 连接 Sentino IoT 平台 → Agora SD-RTN 实时语音对话。

完整链路

BLE 配网 Web App ──BLE V1──▶ BK7258 设备 ──MQTT──▶ Sentino IoT 云端
                                  │                        │
                                  │◀── Agora RTC 参数 ─────┘
                                  │
                                  ▼
                          Agora SD-RTN(音频通道)
                                  │
                                  ▼
                            AI Agent (ConversationalAI)

仓库结构: - device/ — BK7258 固件工程(集成声网 RTSA Lite SDK,CPU0 跑信令/网络,CPU1 跑 OPUS 编码) - web-app/ — BLE 配网工具:基于 Web Bluetooth API 的浏览器端工具(Chrome),通过 ble-provisioning BLE V1 协议完成 WiFi 配网和设备绑定

用户操作流: 1. 编译并烧录 BK7258 固件(Sentino IoT 模式) 2. 启动配网工具:cd web-app && node server.js,Chrome 打开 http://localhost:3000 完成 BLE 配网 3. 配网成功后,短按开发板 S2启动与 AI Agent 的语音对话

关键产品事实(合作伙伴关系的具体落地)

使用 Sentino IoT 平台接入时,Agora ConvoAI 服务由 Sentino 统一提供,开发者无需单独向声网申请开通。 — 引自 Sentino IoT Sample README

这是 Sentino 是 Agora 合作伙伴的具体商业落地——Sentino 把 Agora ConvoAI 能力封装并代理给客户,客户不需要自己向声网申请 ConvoAI 服务开通,由 Sentino 统一提供。这是 IoT 客户场景下"Sentino 是客户唯一对接方"的重要表述。

Fork 关系(致谢声网/Agora 官方):本固件示例项目 fork 自 Shengwang-Community/Conversational-AI-IOT-Sample(声网官方 IoT 示例工程)并定制。声网与 Agora 是同一家公司(海外品牌 Agora、国内品牌声网),同一份代码在 GitHub 有两个 mirror:AgoraIO-Community/Conversational-AI-IOT-Sample(海外)与 Shengwang-Community/...(国内)——Sentino 致谢的是中国版仓库,但代码是同源。这意味着 Sentino 不是从零写硬件接入,而是基于声网/Agora 官方推荐路径做产品化包装,印证 sentino-agent 经验教训段"Sentino-Agora 合作 + 竞合"关系——基础设施层走官方代码,应用层叠加 Sentino 自家能力。

当前仓库 private——对外销售/客户对话引用时需先确认是否到了 NDA / 公开阶段。

架构分层: - 设备层:MQTT Client + Agora RTSA Lite C SDK(agora-rtsa-sdk)+ BLE + NFC(可选) - Sentino IoT 平台:MQTT Broker、设备生命周期管理、AI 智能体管理、REST API 网关 - Sentino Agent 平台:LLM 推理调度、TTS 语音合成调度、工作流编排 - Agora 声网:SD-RTN 全球实时音频网络、Conversational AI Engine(ASR + Agent 运行时) - 外部 AI 服务:LLM(GPT/DeepSeek/通义)、TTS(MiniMax/ElevenLabs)

设备有两条通信链路: 1. MQTT(信令通道):设备 ↔ Sentino,用于认证、状态上报、获取 RTC 参数 2. Agora RTC(音频通道):设备 ↔ Agora,用于实时语音对话

两条产品路径:IoT 设备路径(MQTT 信令 + 嵌入式 RTC SDK)和 Web 路径(HTTPS + 浏览器 RTC SDK),共享同一套 Agent 平台工作流引擎。

架构定位:面向终端,而非面向开发者

Sentino IoT 的 API 是面向终端直接调用的(App/设备 → Sentino 云),而非传统的"给开发者在服务端调用"的模式(开发者后端 → 平台 API)。这是 Tuya 模式,不是 AWS IoT 模式。

证据:REST API 公共请求头(client_idapp_idpackage_namechannel_identifier)全部是移动端 App 标识符,不是 server-side API Key。认证方式是 UID(终端用户身份),不是开发者凭证。

核心含义: - Sentino 就是客户的后端——品牌方不需要自建服务端,App 直接调 Sentino 云 - Standalone Agent 是唯一的可编程扩展点——客户没有自己的后端,无法用自定义服务端代码扩展,Agent 替代了本来该由后端完成的自定义逻辑(见 sentino-agent) - Enterprise 模式是架构切换,不只是功能增强——普通用户:终端直调(Sentino 就是后端);Enterprise:服务端集成(Sentino 是后端的一个组件,通过 Webhook 对接客户系统) - 安全约束——每个 API 请求来自不可信环境(用户手机),API 暴露面需要克制,返回值要假设会被逆向 - 与 Agent 平台的概念割裂(2026-04-29 决策已落地)——IoT 侧的"智能体"是配置绑定单元,Agent 侧的"Agent"是运行时实体。已决策Agent SaaS 是 agent 核心概念的 source of truth,IoT 平台仅做配置展示(拉 Agent SaaS 数据展示给终端用户 / 设备绑定,不持有 agent 定义、不做 CRUD)。详见 sentino "决策状态" #1。含义:IoT 平台的产品定位收紧——不是与 Agent SaaS 平级的"另一种 agent 平台",而是 Agent SaaS 的设备接入层 + 终端面向 UI 层

待解决:谁在写调用这些 API 的 App?白标 App / App SDK / 品牌方自己开发?这决定了 DX 投入方向。

关键决策

经验教训

对照样本:claude-desktop-buddy(协议优先派)

Anthropic 2026-04-20 开源的 claude-desktop-buddy(M5StickC Plus 桌宠 + 225 行 BLE 协议规范)是 sentino-iot-sample 的最强对照样本——同样是"BLE + 设备"参考代码,但完全相反的设计哲学:

维度 sentino-iot-sample(平台优先) claude-desktop-buddy(协议优先)
stable surface 整套链路(BLE → MQTT → Agora RTC → AI Agent) REFERENCE.md 225 行协议
BLE 协议 自定义 GATT 0x1910(广告 0xA101)+ V1 帧(HEAD/SN/CRC/重组) Nordic UART Service 业界标准 + newline JSON
加密 应用层声称 AES-ECB 但 web 工具走 plaintext LE Secure Connections + Passkey + Bond,BLE 链路层强制(AES-CCM)
设备身份 三元组 + HMAC-SHA256 + Sentino 云端账号体系 无(OS BLE bond 即够)
架构 三段式(浏览器配网 + MQTTS 上云 + Agora RTC 媒体) 端到端两点(桌面 ↔ 设备),无云
代码组织 BK SDK 组件目录式 + 4 层重构(business/adapter/SDK/BSP) main.cpp 1265 行单文件主导,"够用就行"
维护姿态 主动维护 + 多客户配置 + 4 层架构 "best contribution is a fork",明确拒收新功能

→ 两种哲学没有谁对谁错——商业模式决定的(Anthropic 卖模型,开放协议拉硬件生态;Sentino 卖云服务,整链路必须一体)。但 sentino-iot-sample 的 web-app 配网工具可以学 buddy 的 "REFERENCE.md 是契约" 姿态,把 BLE V1 帧 + 状态码 + bind 双信号确认明确写成对外协议文档(已部分做到 raw/snippets/iot-docs/ref-ble.md),让客户能自己 fork 配网工具。详见 claude-desktop-buddy

关于 sentino-iot-sample 命名

正式名 sentino-iot-sample(仓库 sentino-jp/sentino-iot-sample,GitHub private)。本地目录 ~/local/Conversational-AI-IOT-Sample/ 保留旧名,是因为 fork 自 Shengwang-Community/Conversational-AI-IOT-Sample。wiki 与对外材料统一用 sentino-iot-sample。

相关概念