
如何把小智语音对话机器人和 openclaw 打通?

OpenClaw 是异步处理:收到消息 → 网关处理 → 一段时间后返回回复。
这种模式天然适合文字聊天(如 IM),但不适合语音对话的实时交互需求。
小智采用实时语音通信协议,要求低延迟、即时响应。
直接对接 OpenClaw 的异步接口会导致:
用户说话后长时间无反馈,体验割裂 语音打断、上下文同步困难
因此,需设计中间层,来管理 OpenClaw 的异步任务。
前文分享过一种实现思路:
小智Pro:让小智控制 OpenClaw,一个MCP连接海量Skills,24H在线打工人它来了
但这种设计,要维护两个 WebSocket 连接:
前端 ↔ 后端,用于接收前端指令、推送 OpenClaw 的流式响应。 后端 ↔ OpenClaw Gateway,用于和 OpenClaw 服务保持长连接,收发消息。
假设有 N 个活跃用户,就得 2N 条 WebSocket 连接,资源占用高。
怎么搞?
今日分享,聊聊:小智控制OpenClaw的全新升级版👇:
平台侧:和 OpenClaw的异步通信的基本原理用户侧:接入并管理 OpenClaw的操作指南
1. 基本原理
小智设备与 OpenClaw 通信,采用 异步消息转发 模式,整体流程如下:
小智设备 ──(MCP)──> 小智Pro服务端 ──(HTTP)──> OpenClaw Gateway
│
小智设备 <──(推送)── 小智Pro服务端 <──(Redis 缓存)──────┘

1.1 消息发送
用户对小智说出指令(如"让欧克劳帮我发一条飞书消息") 设备端通过 self.openclaw.send将消息发送到小智Pro服务端服务端收到后立即返回确认,将实际请求放入后台任务异步执行 后台任务调用 OpenClaw Gateway的 API,等待回复
1.2 回复投递
OpenClaw 返回结果后,服务端会:
缓存回复:将回复内容存入 Redis,多条回复自动拼接,5分钟自动过期 感知设备状态:查询设备当前对话状态 设备在听(listening):发送指令通知设备取消息 设备空闲(idle):先唤醒设备,再通知取消息 设备在说(speaking):自动等待,等待结束后再通知取消息 设备取消息:设备收到通知后,主动调用 retrieve 接口获取缓存的回复 取完即删:回复被读取后立即从 Redis 删除,确保消息不重复消费
1.3 关键设计
2. 操作指南
2.0 OpenClaw 配置示例
确保
OpenClaw Gateway监听在公网可访问的地址和端口,并配置了 Token 认证。
找到 OpenClaw 的配置文件:~/.openclaw/openclaw.json
重点关注以下三个配置项:
"gateway": {
"http": {
"endpoints": {
"chatCompletions": { "enabled": true }
}
},
"tools": {
"allow": ["sessions_send"]
},
"mode": "local",
"auth": {
"mode": "token",
"token": "xxx"
},
"port": 18789,
"bind": "loopback",
},
"session": {
"dmScope": "per-channel-peer",
},
"tools": {
"profile": "full",
"exec": {
"security": "full",
"ask": "off"
},
"sessions": {
"visibility": "all"
}
}
具体说明:
gateway.http 配置:允许 API 调用 gateway.tools.allow:允许 sessions_send工具,以便小智Pro服务端通过该工具将消息发送到指定会话tools.profile = "full" — 所有工具都允许 sessions.visibility = "all" — 支持跨会话查看
2.1 小智Pro控制台配置 OpenClaw
前往小智Pro控制台:https://mkwyqeoebedx.sealosbja.site
左侧菜单 设备端MCP → OpenClaw,首次使用需配置连接:
点击 连接 OpenClaw 按钮 弹出的对话框中填写:
Gateway URL:OpenClaw Gateway 的地址,如 http://your-ip:18789Token:OpenClaw 的认证 Token Agent:默认对话的智能体名称,如 main,连接成功后支持切换智能体
点击 保存,系统会自动检测连接状态

配置完成后,页面顶部会显示:
连接状态标签(绿色=正常) Gateway URL Token(脱敏显示)
你也可以随时点击 检查连接 按钮重新检测,或点击删除按钮清除配置。

2.2 配置Tab - 切换和小智对话的智能体
配置Tab,展示小智和OpenClaw的专属会话:
智能体:和小智对话的智能体,支持切换 SessionKey:固定为 openai-user:xiaozhi-pro:{用户ID},即小智设备对话时使用的会话聊天区域:支持输入消息与 OpenClaw对话刷新按钮:拉取最近20条对话记录
注:这里记录小智设备和
OpenClaw的专属会话,你可以在前端查看 / 测试对话内容,和OpenClaw控制台对话记录同步。
2.3 聊天Tab - 浏览其他会话
切换到 聊天Tab,可以浏览 OpenClaw 的所有会话:
选择智能体:刷新智能体列表,从下拉框中选择一个 Agent 选择会话:选定智能体后,刷新会话列表并选择一个会话 会话详情:选中会话后,右侧显示该会话的渠道、模型、Token用量、状态等信息 历史记录:选择会话后自动加载最近20条消息 发送消息:在选中会话的输入框中输入消息并发送,和 OpenClaw控制台对话记录同步。

2.4 通过设备语音操控
注:设备固件版本需为
v2.2.5.1以上:https://github.com/hougeai/xiaozhiPro/releases
配置好 OpenClaw 连接后,你可以直接对小智说:
- '问问欧克劳现在都有哪些定时任务'
- '让欧克劳给我的飞书发一条消息'
- '让欧克劳立刻完成今天的AI资讯整理任务'
成功调用后,屏幕或日志中会看到 self.openclaw.send 工具调用,欧克劳回复后,服务端会自动推送到设备,设备随即播报回复内容。
3. 常见问题
连接状态显示异常?
检查 Gateway URL 是否正确,确保格式为 http://ip:port或https://domain.com确认 OpenClaw Gateway 服务正常运行 确认 Token 有效
设备端没有收到欧克劳的回复?
确认设备已绑定到小智Pro账号 确认设备固件版本为 v2.2.5.1 以上 回复会在5分钟后自动过期,如果设备长时间未取消息则无法获取 如果设备正在说话,服务端会自动等待(最多25秒),等待结束后再推送
发送消息后没有反应?
OpenClaw 的回复是异步处理的,消息发送后需要等待 Gateway 响应 如果 Gateway 响应较慢,请耐心等待或检查 OpenClaw 服务状态
发送消息提示异常?
参考 2.0 节的配置示例,确保 OpenClaw 的配置项正确设置,特别是工具权限和认证方式
4. 效果展示
比如,让修一下定时任务失败的问题:


回到 Openclaw 控制台,看小智和Openclaw的对话记录:

比如,让打开浏览器查查今日热搜:



写在最后
本文分享了小智Pro:让小智控制 OpenClaw的全新升级方案。
如果对你有帮助,不妨点赞收藏备用。
欢迎体验 小智Pro 更多功能,请戳👇:
https://mkwyqeoebedx.sealosbja.site
注:控制 OpenClaw能力需设备端固件v2.2.5.1版。
固件已全面适配小智官方仓库收录的开发板型号,下载地址:
https://github.com/hougeai/xiaozhiPro/releases

有任何问题,欢迎进群交流。
👇 关注猴哥,快速入门AI工具

# AI 工具:
夜雨聆风