小智指挥 OpenClaw:异步响应、超低延迟
本文分享了`小智Pro:让小智控制 OpenClaw`的全新升级方案。
如何把小智语音对话机器人和 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:18789 - Token: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

有任何问题,欢迎进群交流。
更多推荐



所有评论(0)