小智Pro:让小智控制 OpenClaw,一个MCP连接海量Skills

📅 发布时间:2026/7/16 5:38:28 👁️ 浏览次数:
小智Pro:让小智控制 OpenClaw,一个MCP连接海量Skills
前文分享了openclaw免费部署教程永久免费 OpenClaw 部署和实战7x24在线手把手教程上面带大家跑通了接入飞书的流程。不管是飞书还是QQ、微信等IM工具最常用的交互方式是文字。语音才是最天然的聊天交互。如何把小智语音对话机器人和openclaw打通其基本流程是进一步小智的能力就不再局限于接入的MCP工具而是openclaw背后的海量Skills。今日分享聊聊小智Pro的具体做法平台侧建立和openclaw的通信用户侧接入自己的openclaw并通过设备端MCP指挥openclaw1. 建立和openclaw的通信1.1 通信协议要实现和openclaw通信传输层本质上是WebSocket。飞书、微信都是一种终端。如何进行区分不同终端和不同会话答client.id和session_key因此多个 client可以共用一个 session 的记忆和对话历史我们可以在openclaw控制台选择查看指定session的对话1.2 核心接口基于openclaw的通信协议关键请求方法整理如下我们把所有方法通过self.request接口封装底层协议采用 WebSocket 传输示例代码如下async def chat_send(self, message: str) - Any: 发送聊天消息到指定session return await self.request(chat.send, { sessionKey: self.session_key, message: message, idempotencyKey: f{int(time.time() * 1000)}-{hash(message)}, }) async def get_history(self, limit: int 50) - Any: 获取聊天历史 return await self.request(chat.history, { sessionKey: self.session_key, limit: limit }) async def list_sessions(self) - Any: 列出所有session return await self.request(sessions.list) async def list_agents(self) - Any: 列出agents return await self.request(agents.list) async def get_config(self) - Any: 获取配置 return await self.request(config.get)1.3 响应解析响应结果中重点关注agent和chat事件从日志中查看几个关键节点的数据结构2026-02-15 17:38:44 - openclaw - INFO - 尝试连接: ws://14.xx.xx.82:18789 2026-02-15 17:38:44 - openclaw - INFO - WS已连接等待 challenge... 2026-02-15 17:38:44 - openclaw - INFO - 收到 challenge: {type: event, event: connect.challenge, payload: {nonce: ae76555e-1d6e-4dc1-acea-294e67e0dcce, ts: 1771148324902}} 2026-02-15 17:38:44 - openclaw - INFO - ✅ 连接成功 2026-02-15 17:38:44 - openclaw - INFO - 消息已发送runId: 1771148324960--1126353816726381137等待 AI 回复... 2026-02-15 17:38:45 - openclaw - INFO - Agent事件: runId1771148324960--1126353816726381137, streamlifecycle, data{phase: start, startedAt: 1771148325217} 2026-02-15 17:38:50 - openclaw - INFO - Agent事件: runId1771148324960--1126353816726381137, streamassistant, data{text: 收到, delta: 收到} 2026-02-15 17:38:50 - openclaw - INFO - Chat事件: runId1771148324960--1126353816726381137, statedelta, message{role: assistant, content: [{type: text, text: 收到}], timestamp: 1771148330101} 2026-02-15 17:38:50 - openclaw - INFO - Agent事件: runId1771148324960--1126353816726381137, streamassistant, data{text: 收到我去, delta: 我去} 2026-02-15 17:38:50 - openclaw - INFO - Chat事件: runId1771148324960--1126353816726381137, statedelta, message{role: assistant, content: [{type: text, text: 收到我去检查下人设文件}], timestamp: 1771148330294} 2026-02-15 17:38:50 - openclaw - INFO - Agent事件: runId1771148324960--1126353816726381137, streamassistant, data{text: 收到我去检查下人设文件。, delta: 。} 2026-02-15 17:39:11 - openclaw - INFO - Agent事件: runId1771148324960--1126353816726381137, streamlifecycle, data{phase: end, endedAt: 1771148351507} 2026-02-15 17:39:11 - openclaw - INFO - Chat事件: runId1771148324960--1126353816726381137, statefinal, message{role: assistant, content: [{type: text, text: 你说得对我漏了。SOUL.md 里写得清清楚楚\n\n 收到任何消息或者任务先立即回复我\收到\然后再去具体执行\n\n以后我会先回收到再干活。记住了。}], timestamp: 1771148351507}1.4 架构设计基于以上分析小智Pro采用双WebSocket桥接架构后端服务作为中间代理Proxy一端连接 前端客户端/Esp32设备端一端连接用户的OpenClaw Gateway前端连接成功后可以尝试给openclaw发一条消息2. 设备端 MCP 调用以上小智Pro已打通和openclaw的通信。设备端如何调用呢本质上还是通过MCP再看文章开头的流程图因此我们只需在设备端新增一个 Toolself.openclaw.send。但是小智的语音识别很难精准命中openclaw所以最好给openclaw一个中文名字欧克劳就他了。测试发送成功并收到了openclaw的回应3. 用户接入openclaw流程3.1 修改人设设定因为openclaw接入的是推理模型thinking阶段耗时较长。为了减少等待时长需要修改下openclaw的人设3.2 前端建立连接首先在openclaw控制台获取你公网可访问的Gateway URL和用于鉴权的Token。然后前往小智Pro控制台填入对应字段注session_key需遵循以下命名规范agent:agent_id:label如果不需要区分会话可用openclaw控制台的Default Session Key。连接成功后可在小智Pro控制台进行对话和查看历史对话记录人设修改后在前端看下延时简单指令基本秒回~再让小智给openclaw发送一个任务指令回到openclaw控制台验收下成功搞定写在最后本文分享了小智Pro让小智接管 OpenClaw的实现方案。如果对你有帮助不妨点赞收藏备用。欢迎体验小智Pro更多功能请戳https://mkwyqeoebedx.sealosbja.site注接管 OpenClaw能力需设备端固件v2.2.2.2版支持。目前已全面适配小智官方仓库收录的开发板型号下载地址https://github.com/hougeai/xiaozhiPro/releases有任何问题欢迎进群交流。