Skip to content

OpenClaw 架构总览

源码版本v2026.6.11

一句话

OpenClaw 是一个常驻 gateway + 多渠道接入 + agent 主循环的个人 AI 助手:gateway 收消息 → 喂给 agent → agent 反复调模型和工具 → 结果经 gateway 投递回各渠道。所有能力(工具/技能/插件/provider/MCP/渠道)都是可插拔的注册表。

分层

每层一句话

  • 启动与入口:openclaw.mjs 做 Node 版本检查,转发到 src/entry.ts,再由 src/cli/run-main.ts 分发子命令。
  • 网关层:startGatewayServer 是常驻进程,通过 RPC 方法表接收请求,把 agent 事件广播到 WebSocket 客户端。
  • Agent 主循环:embedded-agent-runnerwhile(true) 驱动每轮对话,单轮 attempt 完成 LLM 调用和 tool_use/tool_result 配对。
  • 能力层:工具是 Map 注册,技能是指引模型读 SKILL.md,插件按目录约定发现,provider 按厂商分流,MCP 双向桥接。
  • 渠道层:22 个渠道(WhatsApp/Telegram/Slack...)通过 registry + loader + plugin 注册接入,网关统一调度。
  • 配置系统:openclaw.json 是唯一配置入口,Zod schema 做运行时校验。
  • 记忆与上下文:Context Engine 抽象压缩契约,记忆文件存 workspace 根。
  • 调度与扩展:Cron 在隔离 agent session 跑 job,Tasks 用 SQLite 持久化,ACP 桥接 IDE。
  • 部署:gateway 是常驻进程,daemon 把它装成系统服务,或用 Docker/Fly 跑。

分层动机

为什么这么分?OpenClaw 把「消息从哪来」(渠道)、「怎么处理」(agent 循环)、「用什么能力」(工具/技能/插件/provider)、「怎么持久」(配置/记忆/调度)、「怎么跑起来」(部署)完全解耦。这样换渠道不影响 agent 逻辑,换模型不影响工具,加插件不用改核心。gateway 是唯一的中枢,所有跨层协调都过它。

常见误读

  • 「OpenClaw 是个聊天 bot」——不全是。bot 只是渠道层的一个面,gateway 才是产品核心,agent 循环是大脑。
  • 「工具和技能是一回事」——不是。工具是可调用的函数,技能是 Markdown 指引让模型自己决定何时读、读了做什么。
  • 「MCP 只是 client」——OpenClaw 同时是 MCP server(把自身能力暴露给外部)和 client(消费外部 MCP server)。

推荐阅读顺序

先看 启动与入口,再看 网关核心Agent 主循环,然后按 能力层渠道层配置系统记忆调度部署 的顺序往下。

对照官方资料:OpenClaw 官网 · 官方文档 · DeepWiki