系统架构概览
架构全景
OpenClaw 采用模块化架构设计,由五大核心模块组成:
┌─────────────────────────────────────────┐
│ Channels │
│ (Telegram / Slack / Discord / HTTP) │
└──────────────────┬──────────────────────┘
│
┌──────────────────▼──────────────────────┐
│ Gateway │
│ (路由枢纽 / 协议适配) │
└──────┬───────────────────────┬──────────┘
│ │
┌──────▼──────┐ ┌──────▼──────┐
│ Brain │◄──────►│ Memory │
│ (LLM 引擎) │ │ (记忆系统) │
└──────┬──────┘ └─────────────┘
│
┌──────▼──────┐
│ Skills │
│ (MCP 插件) │
└─────────────┘
每个模块职责清晰,通过标准接口相互通信。这种设计让各模块可以独立迭代,也方便根据需求灵活组合。
请求处理流程
一条典型的用户请求经历以下生命周期:
- 接入:用户通过某个 Channel(如 Telegram)发送消息
- 路由:Gateway 接收消息,完成协议适配和格式标准化
- 上下文加载:Brain 从 Memory 获取相关的历史上下文
- 推理:Brain 调用 LLM 进行推理,可能触发工具调用
- 工具执行:Skills 模块执行被调用的工具,返回结果给 Brain
- 多轮推理:Brain 可能基于工具结果进行多轮推理
- 回复:最终回复通过 Gateway 返回给对应的 Channel
- 记忆更新:本次交互的关键信息被写入 Memory
设计原则
本地优先
OpenClaw 坚持本地优先的理念。Agent 运行在你自己的机器上,数据存储在本地,不依赖任何中心化服务(LLM API 除外)。这保证了数据隐私和系统自主性。
模块解耦
每个模块只关注自己的核心职责,通过定义良好的接口与其他模块交互。替换任何一个模块的实现都不会影响其他模块的正常运行。
配置驱动
系统行为通过配置文件控制。从模型选择到 Channel 配置,从定时任务到安全策略,都可以通过修改 openclaw.json 来调整,无需修改代码。
运行环境
OpenClaw 典型的运行环境是一台长期在线的机器,例如:
- Mac mini 作为个人 Agent 服务器
- 云服务器用于团队 Agent 部署
- 树莓派等小型设备用于边缘场景
核心要求是稳定的网络连接和足够的运行时间——Agent 需要”永远在线”才能发挥最大价值。
下一步
深入了解各个模块:Gateway | Brain | Memory | Skills | Channels
或查看守护进程设置了解如何保证 Agent 持续运行。
最后更新: 2026-03-10