系统架构深度解析
OpenClaw 用一套相对完整的智能体架构设计,并验证了可行性。探索其核心组件与设计理念。
核心架构组件
- Gateway - 统一多渠道接入
- Tools + Skills - 定义能力边界
- Memory - 实现持久化记忆
- 多层防护 - 保证设备安全
目录
1整体架构概览
从架构上来看,你可以把 OpenClaw 想象成一间智能平台,有五个重要功能区:
Gateway(大门)
管理会话、路由请求、做鉴权。通常在本地运行,默认将控制面板绑定到 loopback(只允许本机访问),并支持通过 Tailscale 等私有网络扩展远程访问。
Agent(大脑)
有专门的人设,负责理解上下文意图、制定分步计划、决定要调用哪些工具或技能。
Skills(工具箱)
一组插件/技能(以 Markdown 与脚本描述),让 Agent 可以"开门、倒咖啡、发邮件、跑脚本"。
Channels(通道)
连接各种应用,如 WhatsApp、Telegram、Discord、Slack、SMS 等,让 AI 与用户的日常通信无缝对接。
Nodes(传感器/终端)
运行在用户端设备(手机、笔记本、Raspberry Pi,台式机)的小智能体,可以提供摄像头、地理位置或系统通知等本地能力。
组件功能对比
| 组件名称 | 功能定位 | 技术细节 |
|---|---|---|
| Gateway (网关) | 中央控制平面 | 运行在本地或 VPS 上的 Node.js 守护进程,负责会话管理、权限验证与路由。 |
| Pi Agent (智能体) | 推理大脑 | 负责处理自然语言、制定任务计划并选择合适的工具。支持 Claude、GPT-4 及 Ollama 本地模型。 |
| Skills (技能) | 执行能力集 | 模块化的插件系统,通过 SKILL.md 定义功能,支持文件操作、浏览器控制、API 调用等。 |
| Channels (通道) | 通信接口 | 连接用户现有的即时通讯软件(WhatsApp, Telegram, Discord, Slack 等)。 |
| Nodes (节点) | 设备端扩展 | 运行在 iOS/Android 或 macOS 上的轻量级智能体,允许 AI 访问相机、地理位置或发送系统通知。 |
这样的分层设计让 OpenClaw 既能快速扩展社区技能(skill 和 mcp 等),也能够在不同设备间弹性部署和执行任务。
2Gateway 组件:中央控制平面
Gateway 是系统的核心枢纽——一个长期运行的守护进程,负责管理所有消息通道并作为 WebSocket 控制平面。OpenClaw 支持多 Agent 架构,一个 Gateway 可以托管多个独立的 Agent。
Gateway 的三大核心功能
接收消息
从各个渠道收集用户指令
路由分发
决定这条消息应该交给哪个 Agent 处理
回复投递
把 Agent 的回复发送回对应的渠道
默认配置
- WebSocket 端点: ws://127.0.0.1:18789
- Canvas 服务器: HTTP 端口 18793, 路径 /__openClaw__/canvas/
- 每台主机建议运行单个 Gateway(独占 WhatsApp Web 会话)
WebSocket 协议详解
3Agent:推理引擎
Agent 在接收到消息与任务后,动用自己的脑袋(LLM/大模型)、手脚(Tools)、专业知识(Skills),尽可能的完成任务。其中可能会访问 Web、运行命令、读写文件、编写代码,调用其他 Nodes 能力(比如摄像头)。
Agent Loop 的核心循环
提问 → 思考 → 规划 → 行动 → 观察 → 思考 → 行动 → 等待 → 检查 → 纠错 ... → 完成
LLM 负责"思考"(决定做什么),Tools 负责"行动"(执行操作),执行结果作为"观察"反馈给 LLM,然后继续下一轮循环。
💡 这就是 Agent 和 Chatbot 的本质区别:Chatbot 只会说,Agent 会做。
多 Agent 模式
OpenClaw 支持多 Agent 模式,可以互不干扰,或者相互协作。每个 Agent 有自己的工作区,放置专属配置与记忆。
4Agent 的四个核心阶段
上下文组装(Context Assembly)
Agent 需要告诉 LLM "你是谁、你能做什么、你有什么工具,用户说了什么"。这包括:
- 系统提示: Agent 的身份、规则、工具列表
- 会话历史: 之前的对话记录
- Bootstrap 文件: AGENTS.md、SOUL.md、TOOLS.md 等工作区文件
OpenClaw 会把这些内容拼接成一个完整的 Prompt,发送给 LLM。
模型推理(Model Inference)
LLM 收到 Prompt 后,决定下一步行动。它可能:
- 直接回复用户
- 调用一个工具(Tool Call)
- 请求更多信息
工具执行(Tool Execution)
如果 LLM 决定调用工具,Agent 会:
- 解析 Tool Call 参数
- 执行对应的工具(exec、read、write、browser…)
- 把执行结果返回给 LLM
回复分发(Reply Dispatch)
当 LLM 生成最终回复后,Agent 会:
- 格式化回复内容
- 通过 Gateway 发送回对应的消息渠道
- 支持流式输出(边生成边发送)
Pi Agent 核心特点
Agent Loop(智能体循环): 处理用户消息、执行工具调用、将结果反馈给 LLM,循环直到模型生成无工具调用的响应
事件驱动架构: 循环过程发射生命周期事件,支持响应式 UI
消息队列: 支持两种模式(逐条处理或批量处理)
工具流式传输: 支持块流式传输和增量流式传输,实现实时输出
核心工具(仅需 4 个):
bash- 执行 shell 命令read- 读取文件内容write- 写入文件内容edit- 编辑文本文件
系统提示词也极为精简,仅约 1000 tokens(包含工具定义),大模型可以理解编程智能体上下文。
总结
OpenClaw 的架构设计体现了"简单而强大"的理念:通过精简的核心工具和清晰的分层架构,实现了一个功能完整、易于扩展的个人 AI 助手系统。
这种设计使得 OpenClaw 既能满足个人用户的日常需求,也能为开发者提供灵活的扩展能力,真正实现了"AI Agent"从概念到落地的完整闭环。