OpenClaw 架构与特点

OpenClaw 的架构非常"接地气":一个 Node.js 进程承载全部能力。理解它有助于你部署、调优与排错。


单进程网关模型

OpenClaw 作为一个常驻 Node.js 进程运行,内部由五个子系统协作。除此之外的路由、工具、记忆、状态——全部都活在这一个进程里,跑在你自己的机器上。

┌──────────────────────────────────────────────────────────────┐
│                  OpenClaw 网关(单个 Node 进程)              │
│                                                              │
│  ① Channel Adapters  ② Session Manager  ③ Queue             │
│     通道适配器           会话管理            队列(串行)        │
│                                                              │
│  ④ Agent Runtime ─────────────────────  ⑤ Control Plane     │
│     智能体运行时(组装上下文+主循环)       控制平面 WS :18789 │
└──────────────────────────────────────────────────────────────┘
        │                                          │
        ▼                                          ▼
  聊天平台(WhatsApp/Telegram/…)          Dashboard / CLI / App


  ┌──────────────────────────┐      ┌────────────────────────┐
  │ ~/.openclaw + 工作区      │      │  LLM Provider(模型)  │
  │ Markdown/YAML 记忆与技能  │      │  Anthropic/OpenAI/本地 │
  └──────────────────────────┘      └────────────────────────┘

五大子系统

子系统职责
① Channel Adapters(通道适配器)把各平台消息归一化(WhatsApp 用 Baileys、Telegram 用 grammY 等)
② Session Manager(会话管理)解析发送者身份与会话上下文
③ Queue(队列)对同一会话的运行串行化,避免并发冲突
④ Agent Runtime(智能体运行时)组装上下文并执行 Agent 主循环
⑤ Control Plane(控制平面)暴露 WebSocket API(端口 :18789),供 Dashboard / CLI 控制

控制平面默认监听 127.0.0.1:18789,Dashboard 即 http://127.0.0.1:18789/这个端口的安全性很重要,曾因跨站 WebSocket 劫持出现高危漏洞(见 安全章节)。


Agent 主循环

智能体运行时执行经典的 "感知—思考—行动" 循环:

  1. 组装上下文:加载相关记忆、可用工具/技能、当前会话历史
  2. 调用 LLM:交给所选模型,得到回复或工具调用
  3. 执行工具:在工具策略允许下运行 Shell / 浏览器 / 邮件等
  4. 写回:把工具结果回灌模型,继续推理直到完成
  5. 沉淀:更新 Markdown/YAML 记忆,必要时起草技能

本地存储布局

OpenClaw 的状态以纯文本保存,便于备份、版本化与审计:

~/.openclaw/              # 全局状态目录
├── openclaw.json         # 主配置(Provider、工具策略、模型路由、自治)
├── memory/               # 长期记忆(Markdown/YAML)
├── skills/               # 技能(SKILL.md)
└── ...
<工作区>/
├── HEARTBEAT.md          # 心跳检查清单(自治任务)
├── SKILL.md / skills/    # 工作区级技能
└── ...                   # 对话与项目相关文件

可用环境变量调整路径:

变量作用
OPENCLAW_HOME路径解析的基目录
OPENCLAW_STATE_DIR覆盖状态文件位置
OPENCLAW_CONFIG_PATH指向特定配置文件

Heartbeat:让智能体"主动起来"

OpenClaw 最具特色的能力之一是 Heartbeat(心跳)调度器:它按可配置的间隔"唤醒"智能体,让它无需被提问也能自行运行

心跳触发(默认每 30 分钟)
   → 智能体读取工作区的 HEARTBEAT.md 清单
   → 判断是否需要行动
   → 需要:执行相应任务并汇报
     不需要:回应 HEARTBEAT_OK

使用 Anthropic OAuth 时默认间隔约为每小时一次。除心跳外,Webhook、Cron、队友消息也能触发 Agent 循环。详见 CLI 与自动化


关键特点小结

  • 极简部署:单进程、纯文本状态,2GB/2 核即可起步
  • 复用聊天软件:无需自建前端
  • 透明可审计:记忆/技能是可读文本,能 Git 化
  • 模型无关:云端或本地皆可,支持回退链
  • 天生自治:Heartbeat + Webhook + Cron
  • 可控制台管理:本地 Dashboard / CLI / 桌面 App

下一步