[AI应用与提效-177] - WebSocket在AI智能体中的作用、使用场景和具体用法
·
一、WebSocket 在 AI 智能体中的核心作用
一句话总结:WebSocket 是 AI 智能体与外部世界实时交互的 “神经通路”。
它解决 AI 智能体 3 个致命问题:
- 服务端 → 客户端主动推送AI 思考、执行、报错、进度都要实时推给前端 / 控制端,HTTP 做不到。
- 长连接、低延迟、双向通信智能体控制鼠标、键盘、浏览器、手机,必须毫秒级指令下发。
- 持续会话状态智能体执行多步任务(打开 APP→搜索→点击→截图),必须保持连接不断。
所以:凡是需要 远程“实时控制 + 实时反馈” 的 AI 智能体,一定离不开 WebSocket。
二、AI 智能体中最典型的使用场景(全部是实战)
1)远程控制本地应用 / 浏览器
- AI 决策 → WebSocket → 下发指令
- 启动浏览器
- 鼠标移动 / 点击
- 键盘输入
- 窗口操作
- 执行结果 ← WebSocket ← 本地执行器返回
- 截图
- 页面内容
- 执行成功 / 失败
架构:AI 模型 → 指令解析 → Gateway(WebSocket 服务) → 本地执行器
2)AI 思考过程实时流式输出
- 大模型逐字返回思考过程
- 不需要前端轮询
- 体验像:豆包、ChatGPT 流式打字
3)多设备协同智能体
- PC ↔ WebSocket ↔ 手机
- PC ↔ WebSocket ↔ 服务器
- 手机 ↔ WebSocket ↔ 浏览器
典型:手机控制电脑、电脑反向控制手机、跨设备 AI 任务链。
4)AI Agent 状态实时同步
- 任务开始 / 进行中 / 完成 / 失败
- CPU / 内存占用
- 当前屏幕截图
- 日志流推送
5)插件 / 工具实时调用
AI 调用外部能力:
- 搜索
- 爬虫
- 文件读写
- 数据库操作
- 硬件控制
全部通过 WebSocket 双向指令完成。
三、WebSocket 在 AI 智能体里的标准用法(架构 + 协议 + 代码)
标准三层架构(所有 AI 智能体通用)
- AI 决策层(大模型、FunctionCalling)
- WebSocket Gateway(指令路由、权限、转发)
- 执行端(浏览器、手机、PC 应用、硬件)
标准指令格式(JSON 帧)
所有智能体通用,你可以直接用:
json
{
"id": "uuid-123",
"type": "exec", // exec / result / log / ping / error
"action": "browser.click",
"params": {
"x": 100,
"y": 200
},
"timestamp": 1741666000000
}
type 说明:
ping心跳exec指令下发result执行结果log日志error异常
四、真实可运行代码示例(Go + JS)
1)AI 智能体网关(WebSocket 服务端,Go)
负责:
- 接收 AI 指令
- 转发给执行端
- 回收执行结果
- 心跳保活
go
运行
package main
import (
"github.com/gorilla/websocket"
"net/http"
"sync"
)
var upgrader = websocket.Upgrader{CheckOrigin: func(r *http.Request) bool { return true }}
var clientMap = make(map[*websocket.Conn]bool)
var mu sync.Mutex
func main() {
http.HandleFunc("/ws", wsHandler)
http.ListenAndServe(":18789", nil) // OpenClaw 默认端口
}
func wsHandler(w http.ResponseWriter, r *http.Request) {
conn, _ := upgrader.Upgrade(w, r, nil)
defer conn.Close()
mu.Lock()
clientMap[conn] = true
mu.Unlock()
// 循环读取指令(AI → 执行端)
for {
_, msg, _ := conn.ReadMessage()
// 收到指令 → 转发给所有执行端
broadcast(msg)
}
}
// 广播指令
func broadcast(msg []byte) {
mu.Lock()
defer mu.Unlock()
for c := range clientMap {
_ = c.WriteMessage(websocket.TextMessage, msg)
}
}
2)执行端(前端 / PC 控制器)
javascript
运行
const ws = new WebSocket("ws://127.0.0.1:18789/ws");
// AI 下发指令
ws.onmessage = (e) => {
const cmd = JSON.parse(e.data);
if (cmd.type === "exec") {
if (cmd.action === "browser.click") {
// 执行点击
simulateClick(cmd.params.x, cmd.params.y);
} else if (cmd.action === "browser.navigate") {
window.location.href = cmd.params.url;
}
// 执行结果回传 AI
ws.send(JSON.stringify({
id: cmd.id,
type: "result",
success: true
}));
}
};
// 心跳
setInterval(() => {
ws.send(JSON.stringify({ type: "ping" }));
}, 30000);
3)AI 智能体调用端(发送指令)
javascript
运行
// AI 思考后下发指令
function aiSendCommand(action, params) {
ws.send(JSON.stringify({
id: crypto.randomUUID(),
type: "exec",
action: action,
params: params
}));
}
// AI 让浏览器访问网址
aiSendCommand("browser.navigate", { url: "https://www.baidu.com" });
五、为什么 AI 智能体必须用 WebSocket?(关键对比)
HTTP
- 被动
- 客户端主动拉
- 无法实时推送
- 不适合控制
WebSocket
- 全双工
- 服务端可主动推送
- 低延迟
- 长连接不断
- 适合控制、实时、流式、多步任务
结论:AI 智能体 = 大脑 + 神经(WebSocket) + 四肢(执行器)
六、我可以给你一套最精简的落地总结
你要做 OpenClaw 这类智能体,只需要记住:
- WebSocket 是指令通道
- 帧格式用 JSON
- 指令结构:
type + action + params - 架构:
- AI → WebSocket Gateway → 执行端
- 最常用动作:
- 启动应用
- 鼠标点击
- 键盘输入
- 浏览器导航
- 截图返回
- 必须加:心跳 + 重连 + 权限验证
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)