架构
OpenClaw 架构详解:它到底怎么运转
OpenClaw 的核心是一个常驻的网关守护进程,Agent 运行时内嵌在里面,外面围着可插拔的渠道、模型 Provider、Skills 和工具。下面把每个部件讲清楚 —— 它们各自干什么、怎么连在一起。
网关(核心守护进程)
网关是每台主机上的一个常驻进程。它掌管所有消息入口,维持与每个渠道(WhatsApp、Telegram、Discord、Slack、Signal、WebChat 等)的实时连接,对外暴露一个 WebSocket 接口(默认端口 18789),所有客户端都连它。它校验入站消息、广播类型化事件(agent、chat、presence、health、heartbeat、cron),还跑一个 HTTP 服务给 WebChat 界面和 Canvas 用。
Agent 运行时(内嵌)
Agent 运行时跑在网关内部。它负责 Agent 的尝试循环、适配各家 Provider 的流式格式、处理上下文压缩和模型选择、串起会话。对话以 session 形式保存:私聊汇入共享的 main,群聊则各自隔离,上下文不串台。
渠道与渠道插件
渠道是 Agent 跟外界对话的方式。一部分内置(Discord、Telegram、Slack、Signal、iMessage、WhatsApp、WebChat 等),更多以捆绑插件形式发布(飞书、LINE、Matrix、Mattermost、Teams、QQ、Nostr 等),还有少数单独安装(微信、语音通话)。每个渠道在 ~/.openclaw/openclaw.json 的 channels.* 下配置,带 dmPolicy、allowFrom 等字段,多个渠道可同时运行。
模型与 Provider
OpenClaw 不绑定任何一家模型。它对接 35+ Provider —— Anthropic、OpenAI、Google、xAI、DeepSeek、MiniMax、Groq、Ollama、vLLM —— 以及任何 OpenAI 兼容或 Anthropic 兼容的端点,还支持订阅式 OAuth(如 OpenAI Codex)。默认模型写在 agents.defaults.model 和 providers.*,凭证按 Agent 存在 auth-profiles.json。
Skills
Skills 是 Markdown 指令文件(SKILL.md),教 Agent 怎么完成某项具体任务。它们从 ~/.openclaw/skills/ 加载,也能从 ClawHub 市场安装。
插件(扩展系统)
插件是 npm 包,用 openclaw plugins install <包名> 安装。插件通过 openclaw.plugin.json 清单声明自己,可以注册新渠道、新工具或新运行时 —— Slack、Mattermost 这类渠道就是这样接进来的,不用改核心。
MCP 服务器
OpenClaw 原生支持 MCP(Model Context Protocol)。MCP 服务器给 Agent 提供工具 —— Notion、Google Workspace、Playwright、搜索 API 等等。MCP 是工具协议,Skills 是 Markdown 指令,两者互补。详见 MCP 中文介绍。
浏览器中继与自动化
OpenClaw 内置基于 Playwright 的浏览器自动化,以及一个浏览器中继层,让 Agent 能驱动真实浏览器去做需要登录态的任务。再加上沙箱和命令执行,构成完整的工具面。
客户端 / 控制界面
所有东西最后都连回网关的 WebSocket 接口:内置 WebChat、macOS 菜单栏伴侣应用、iOS / Android 移动端节点、Windows Hub、以及 openclaw 命令行。网关是枢纽,客户端是辐条。
配置文件在哪
- 主配置:
~/.openclaw/openclaw.json - 会话:
~/.openclaw/agents/<agentId>/sessions/ - 鉴权:
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - Skills:
~/.openclaw/skills/ - 工作区:
~/.openclaw/workspace/ - Docker / 托管环境:
/app/openclaw.json或/home/node/.openclaw/openclaw.json
串起来看
一条消息到达某个渠道 → 网关校验并路由 → 内嵌运行时选模型、跑 Agent 循环、调工具(Skills、MCP、浏览器)→ 回复从同一个渠道流出去,同时事件扇出到所有连接的客户端。一个守护进程,多个入口。