OpenClaw 技术架构
用普通语言梳理 OpenClaw 的 Gateway、workspace、session、记忆、nodes 以及背后的运维取舍。
一句话理解架构
OpenClaw 的核心,是一个常驻运行的 Gateway 控制平面,它协调渠道、session、工具和 nodes,而真正的 assistant 状态则保存在你自己可控的 workspace 里。
Gateway 是控制平面,不是产品全部
官方 README 对这一点说得很明确:Gateway 是 control plane,而 assistant 的真实体验跨越了渠道、工具、设备节点和浏览器界面。
所以 OpenClaw 不像一个“聊天壳”。Gateway 不只是转发消息,它还负责:
- session 生命周期
- auth 和 pairing
- 路由
- tool 访问
- browser 和 web surface
- channel 集成
- node 协调
如果 Gateway 状态不健康,整套系统看起来都会不健康。
最基本的运行形态
最务实的理解方式是:
- Gateway:中央常驻服务
- Workspace:保存身份、记忆和持久状态的文件系统
- Channels:Telegram、Discord、WhatsApp 等消息面
- Nodes:设备侧执行能力
- Web surfaces:dashboard、Control UI 和浏览器相关能力
这种拆法的价值在于:OpenClaw 可以长期运行,而不必把一切都塞进一个终端进程里。
Workspace 本身就是架构的一部分
OpenClaw 很重要的一点,是它把 assistant 状态尽量保持在可读文件里。
workspace 里常见的文件包括:
AGENTS.mdSOUL.mdUSER.mdMEMORY.mdHEARTBEAT.mdmemory/YYYY-MM-DD.mdskills/sessions.json
这不是偶然实现,而是架构本身。OpenClaw 把持久状态放在你能读、能管、能排查的地方。
Session 是边界,不只是聊天窗口
OpenClaw 的 session 不只是“当前聊到哪里了”。它决定的是上下文、权限和隔离方式。
它会影响:
- 谁在和 agent 说话
- 这个人是否完成 pairing 或被允许
- 哪些记忆应该共享,哪些应该隔离
- 某个消息面上的 compaction 和 recall 怎么表现
所以群聊和私聊不应该被期待成同一种记忆体验。
记忆本质上是文件检索,不是神奇上下文
官方 memory 文档把这件事讲得比很多社区解释更清楚。
关键点是:
- 长期记忆保存在 workspace 的 Markdown 文件里
MEMORY.md是整理后的长期层,偏向私聊主 sessionmemory/YYYY-MM-DD.md是每天的运行记忆- recall 通过
memory_search和memory_get完成 - 在 session 接近 compaction 时,OpenClaw 还能触发一次 pre-compaction memory flush,提醒 agent 先把值得留的内容写下来
这意味着“token 压力”和“记忆质量”有关系,但并不是同一个问题。
为什么会出现 token 爆炸
很多人会把问题粗暴理解成“上下文太长了”。更准确的说法是:
- session 会持续增长
- 工具和渠道会增加状态和表面积
- compaction 必须决定什么该保留、什么该丢掉
- 如果重要事实没有被写进 durable memory,它们就只能继续挤在活动上下文里
所以如果你忽略持久记忆这一步,token 可能越来越高,但 recall 仍然感觉很差。
Nodes、channels 和 browser control 不是一回事
Gateway 协调的几个外部层不应该被混为一谈:
- channels 负责消息出入
- nodes 负责设备侧执行
- browser control 可以走受管浏览器,也可以走 browser relay
- web surfaces 提供 dashboard 和 Control UI
这种拆法的价值在于:跑 Gateway 的机器,不一定就是拿着设备或浏览器的那台机器。
默认的网络心智是 Loopback-First
OpenClaw 的网络默认值是保守设计,不是巧合:
- 先本地监听
- 默认要求 auth
- 先走私有网络暴露,再考虑公网
- 真有需要时才显式打开远程访问层
这也是为什么官方文档一直在提醒:不要随意把裸 Gateway 直接暴露到公网。
为什么这对操作者重要
架构不是给工程师炫耀的。它决定了:
- 你到底信任哪台机器
- 持久状态实际落在哪
- 谁能访问 Gateway
- 哪些 session 能看到哪些记忆
- 哪些渠道或 nodes 能执行工具
- 你一次给自己加了多少调试表面积
知道这些,和“只是装上了”之间,是有本质区别的。
下一步看什么
- 阅读 OpenClaw 记忆系统
- 阅读 OpenClaw 安全与成本控制
- 阅读 OpenClaw 文档导航
- 进入 渠道中心
- 进入 模型中心