OpenClaw 架构原理
OpenClaw 是一款开源自托管的个人 AI 代理网关,由 PSPDFKit 创始人 Peter Steinberger 发起。它本质是运行在用户自有设备上的自主式智能体助手,主打'本地优先、隐私可控'的设计理念。与云端聊天机器人不同,OpenClaw 持续运行在本地硬件上,执行 shell 命令、管理文件并协调多步骤工作流程。
核心架构概览
OpenClaw 的核心是一个基于 TypeScript 开发的命令行应用(CLI),采用单进程架构配合插件式扩展机制。核心理念包括常驻控制平面、可插拔大模型大脑、可扩展工具技能以及会话/记忆/安全策略。
┌───────────────────────────────────────────────────────────────┐
│ 消息渠道(Channels) │
│ [企业微信] [Telegram] [飞书] [QQ] [WhatsApp] [Web UI] ... │
└───────────────────────┬───────────────────────────────────────┘
▼
┌───────────────────────────────────────────────┐
│ Gateway(网关守护进程):18789 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Router │ │ Session │ │ Security │ │
│ │ 路由分发 │ │ 会话管理 │ │ 安全策略 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└───────────────────────┬───────────────────────┘
▼
┌───────────────────────────────────────────────┐
│ Agent Runtime │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Prompt │ │ Context │ │ Tool │ │
│ │ Builder │ │ Guard │ │ Executor │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└───────────────────────┬───────────────────────┘
▼
┌───────────────────────────────────────────────┐
│ LLM Provider(模型适配层) │
│ [Claude] [GPT] [DeepSeek] [Ollama] ... │
└───────────────────────────────────────────────┘
1. 接入层 Channel(通道适配器)
通道适配器负责接收用户消息并进行预处理,包括消息标准化、提取附件等。不同的即时通讯工具和输入流都配有专属的适配器。
每个通道适配器还负责反向通路:将 Agent 的回复格式化为目标平台所需的格式(如 Markdown 转 IM 富文本、长文本分段、文件直链等),并通过原通道发回。
流程简述:
- 用户在 IM 发送消息
- 平台服务器回调/推送
- Gateway Channel Adapter 接收
- 消息标准化(提取文本、附件、发送者信息等)
- 生成统一的内部事件
- 交给 Router 分发


