2026年3月27日,来腾讯会议(限30人)了解掌握如何用Openclaw构建企业AI生产力
免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


我要投稿

OpenClaw 架构详解 · 第一部分:控制平面、会话管理与事件循环

发布日期:2026-03-17 11:20:14 浏览次数: 1622
作者:Baihai IDP

微信搜一搜,关注“Baihai IDP”

推荐语

揭秘OpenClaw如何通过精妙的事件驱动架构实现"自主运行"的假象,背后是严谨的工程机制而非神秘意识。

核心内容:
1. OpenClaw本质解析:集中式控制平面构建的事件驱动状态机
2. 关键技术拆解:会话隔离机制与多端通信协调方案
3. 安全加固建议:针对高权限系统的风险防护措施

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

编者按:当我们惊叹于OpenClaw仿佛“活过来”般的自主行为时,我们究竟在惊叹什么——是模型真的拥有了某种意识,还是我们被某种精妙的工程机制“欺骗”了?

今天为大家带来的这篇文章,作者给出了一个清晰而坚定的答案:OpenClaw 的“自主性”并非源于神秘的涌现能力,而是一套严谨、可解释的事件驱动架构所带来的工程成果。

本文深入技术底层,为读者抽丝剥茧地解析了 OpenClaw 的核心架构。文章首先厘清了 OpenClaw 的本质 —— 一个围绕集中式控制平面构建的事件驱动状态机,而非具备感知能力的后台大脑。随后,作者详细拆解了网关作为“中央路由器”如何通过会话键实现隔离,利用 lane-aware FIFO 队列避免并发冲突,以及如何通过统一的 WebSocket 协议协调多端通信。最为关键的是,文章揭示了让智能体产生“活着”这一错觉的真实原因:心跳、Webhooks 等多种输入类型触发的事件循环,而非某种灵光一现。最后,作者还从安全角度出发,针对这一高权限系统的潜在风险提供了务实的加固建议。

作者 | Vinoth Govindarajan

编译 | 岳





大多数 AI 智能体的演示看起来神奇无比,就像魔法一样。

而 OpenClaw 给人的感觉是真正的“自主运行”。

但在技术底层,它并非依靠魔法 —— 而是一套严谨的事件驱动机制。

OpenClaw 是一款可自托管、开源的个人 AI 助手,与典型的聊天应用相比,它更贴近你的操作系统。它不在浏览器标签页里与你对话,而是直接接入你正在使用的通讯渠道(WhatsApp、Telegram、Slack、Discord、iMessage、WebChat 等),并能通过工具执行实际的操作。

很多人把 OpenClaw 描述为“自主的”始终在线的”。最简单的理解方式是:

OpenClaw 的“主动行为”并不是因为它有“自我意识”或像人一样会“睡醒然后开始思考”。它之所以给人主动感,是因为它能接收的输入类型远不止你的消息 —— 并且通过一个持续的循环对所有这些输入进行处理。

这便是其架构设计的奥秘所在。


01

OpenClaw 是什么(以及不是什么)

它是什么:

  • 网关(控制平面),负责接收来自四面八方的各类事件并进行路由分发。

  • 智能体运行时(Agent runtime),能够执行“轮次操作”:调用大语言模型、使用工具、写入状态,并回复。

OpenClaw 的官方文档将网关 WebSocket 协议描述为统一的控制平面,所有客户端(命令行界面、网页界面、macOS 应用、iOS/Android 节点等)都通过它连接。

它不是什么:

  • 一个有感知能力的系统。

  • 一个在后台持续运转的推理大脑。

如果它看起来像是“在凌晨 3 点灵光一闪”,通常只是因为某个定时器、计划任务、网络钩子(webhook)或系统钩子(hook)在凌晨 3 点触发了一个事件,然后智能体执行了一轮正常的处理流程。


02

整体架构:以网关为中心的星型拓扑

如果你更喜欢可视化内容,下面这张图展示了整个架构:

image.png

OpenClaw 本质上是一个围绕集中式控制平面构建的、事件驱动的、会话隔离的单写入状态机。

核心思想:网关(Gateway)是流量调度器和唯一事实来源。智能体运行时(agent runtime)是负责“思考与执行”的工作单元。


03

网关:中央路由器(以及事实来源)

OpenClaw 运行着一个持续在线的网关守护进程,负责维持所有连接并协调整个系统。文档中明确指出:

  • 所有会话状态均由网关管理

  • UI 客户端应通过查询网关来获取信息,而不是直接读取本地的会话文件

3.1 会话(Sessions):隔离是刻意的(并且是可配置的)

当你从不同的场景(私信与群聊、Telegram 与 Slack 等)与 OpenClaw 对话时,你肯定不希望发生意外的上下文泄露。OpenClaw 通过会话键(session keys)来建模这一需求。

会话模型(session model)非常灵活,但其默认逻辑是:

  • 每个智能体实例,默认会拥有一个“类似于私信”的主会话,这个会话通常被命名为 main。

  • 针对群组/频道/话题则有独立的会话

  • 可选的“安全私信模式”,按发送者/频道/账号隔离私聊会话,避免不同用户间的上下文泄露

一个简单的思维模型:

image.png

如果你部署 OpenClaw 不只是给自己用,那么安全私信模式就很重要 —— 因为默认情况下,私信的作用域会让所有私信共享同一个会话上下文以保持连续性,除非你另行配置。

3.2 会话状态的实际存储位置

OpenClaw 将会话记录以 JSONL 格式存储在磁盘上,并维护一个存储文件,用于将会话键(session keys)映射到具体的会话 ID 和元数据。文档中显示的路径如下:

  • 存储文件:~/.openclaw/agents/<agentId>/sessions/sessions.json

  • 会话记录:~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl

这部分内容很重要,原因有二:

1)持久性:会话在系统重启后依然存在

2)安全性:这些文件可能包含敏感内容


04

队列:OpenClaw 如何防止“两种想法同时碰撞”

如果多个输入几乎同时到达(一条 Slack 私信 + 一个心跳信号 + 一个 webhook),你肯定不希望并发运行导致同一会话文件或工具状态被破坏。

OpenClaw 通过 lane-aware FIFO 队列来解决这个问题:

  • 它保证每个会话只有一个活跃运行

  • 它仍然允许跨不同会话的并行处理,直到达到配置上限

以下是该队列工作原理的简化示意图:

OpenClaw 还支持不同的队列行为(“模式”),例如:

  • collect(默认):将多条消息聚合起来,合并成一次后续的执行轮次来处理。

  • followup:始终等待当前正在执行的“思考 - 行动”循环结束

  • steer:注入到当前正在进行的任务流中(在工具调用的边界点)

“顺序状态机”的体验在每个会话内部是真实存在的 —— 但整个系统仍可根据配置,并发运行其他会话。


05

协议:所有组件都通过同一套带类型的 WebSocket 语言进行通信

OpenClaw 能够支持多种界面(CLI、Web UI、桌面应用、移动节点)的一个重要原因是,它将网关视为一个真正的控制平面。

5.1 三种帧类型:req / res / event

OpenClaw 定义了一个简单的 WebSocket 消息模型:

  • Request(请求): { type: "req", id, method, params }

  • Response(响应): { type: "res", id, ok, payload | error }

  • Event(事件): { type: "event", event, payload, ... }

且第一帧必须是 connect(连接)请求。

5.2 TypeBox:通过模式定义(Schema)来驱动数据校验和代码生成

OpenClaw 将 TypeBox 定义的模式(Schema)作为其通信协议的唯一事实来源。这使得以下操作成为可能:

  • 系统在运行过程中实时检查数据,如果发现不符合规则的数据包,直接拒绝处理。

  • 系统能够将内部定义的数据结构,导出为标准的 JSON Schema 格式文件。

  • 系统能够根据协议定义,自动为客户端生成所需的数据模型(类型定义)和代码(如 SDK 函数)。

以下是最简单的“hello world”连接流程:

image.png

文档还提到了协议版本控制和连接时的身份验证,包括如果你设置了网关令牌(Gateway token),可以使用基于令牌(token)的认证。


06

Agent 运行时循环:“聊天”变成“工作”的地方

一旦网关决定了由哪个 agent 和哪个会话来处理输入,智能体运行时(agent runtime)就会执行这样一个常规循环:

1)加载上下文(会话历史 + 工作区上下文)

2)调用模型

3)执行工具调用(浏览器、文件系统、shell、节点、插件)

4)持久化更新

5)响应(或故意保持沉默)

此处提供一个紧凑的循环示意图:

image.png

6.1 “记忆”并非学习 —— 而是文件

这是最重要的思维转变之一:

OpenClaw 不会通过改变模型权重来“学习”。

它通过读写磁盘上的状态数据,并在每轮执行时重新注入上下文,来维持连续性。

OpenClaw 的“Agent Workspace”文档将工作区描述为 agent 的家,一个你应当视作记忆载体的地方。

另外有一点值得注意:工作区是默认的工作目录,而非严格的沙箱 —— 相对路径会在工作区内解析,但除非你启用沙盒,绝对路径仍可访问外部。


07

让人产生“OpenClaw 具有自主性”幻觉的五种输入类型

大多数聊天机器人只有在你打字时才会唤醒。OpenClaw 在多种触发条件下都会唤醒,这正是它给人“仿佛活着”的感觉的原因。

以下是五种核心输入类型(外加一个补充项):

image.png

一些出人意料但至关重要的细节:

  • Heartbeats 默认间隔为 30 分钟(某些认证模式除外),推荐的做法是:如果无需处理任何事务,就回复 HEARTBEAT_OK。

  • Webhooks 可配置为立即触发或等待下一次 heartbeat 再处理,且投递功能可随时启用/禁用。

  • Hooks 是一个事件驱动的自动化系统,会从多个目录(workspace、managed、bundled)中自动发现。


08

“凌晨 3 点来电”示例:本质就是一条 pipeline

让我们揭开这个经典“灵异时刻”的神秘面纱:

“为什么我的 AI 助手会在我睡觉时去决定做某事?”

这并不需要什么涌现能力。仅仅是:

  • 到达指定时间而触发了一个事件

  • 网关将其加入队列

  • 智能体执行了一个处理轮次

  • 某个工具执行了该操作


09

安全性:强大的智能体天生“带刺”

OpenClaw 的官方安全文档几乎说出了所有人的顾虑:运行具有 shell/文件访问权限的 agent 是有风险的,不存在绝对安全的配置 —— 你的目标是审慎地控制谁可以与它对话、它可以在哪里行动、它能接触哪些资源。

9.1 为什么攻击面很大

OpenClaw 能够:

  • 从多个渠道接收不受信任的文本

  • 读取文件、浏览网页、运行工具

  • 安装/运行“skills”或扩展

上述能力的组合,使得那些已知的智能体安全风险不再是理论上的担忧,而是切实存在的威胁。

  • Prompt 注入(直接或通过网页/文档/邮件的间接注入)

  • Skill 供应链风险(所谓 “有用的” skill 实际上是恶意软件)

  • 凭证泄露(token、API key、cookies)

  • 命令误触发(模型试图帮忙但执行了破坏性的 shell 命令)

Cisco 的 AI 威胁与安全研究团队强调了“skills”的风险,并引用研究指出,在他们分析的 31,000 个 agent skills 中,有 26% 包含至少一个漏洞,为此他们推出了一款开源扫描工具。

9.2 你真正应该用起来的内置防护机制

一份实用的加固清单:

1)配对 + 私信策略

配对码一小时后过期,且待处理请求有数量上限,因此未知用户无法随意私聊你的智能体并获得完全访问权限。

2)非本地访问的 Gateway token

如果你将网关暴露到 localhost 之外,务必要求连接在握手时通过 token 认证。

3)多人可私信时启用安全私信模式

按发送者/频道隔离会话,避免上下文泄露。

4)沙箱/最小权限原则

记住:工作区默认并非沙箱。如果你允许智能体运行代码或接触敏感路径,请启用沙箱机制。

5)审计你的配置

文档建议运行 openclaw security audit 来识别危险配置和潜在暴露点。

6)将社区 skills 视为不受信任的代码

扫描、审查、固定版本,避免“每天随机使用 skill”的行为。

9.3 部署建议(简单且务实)

如果你想要有所获益,又不想陷入噩梦:

  • 在专用机器或 VM 上运行 OpenClaw(这样“agent 被攻破”不意味着“你的整台笔记本被攻破”)。

  • 为 email、Slack、GitHub 等使用独立账号/限定范围的 token。

  • 在让它执行动作之前,先从“只读”工作流开始(如生成摘要、起草内容)。


10

一份“代码/文档快速查阅指南”

如果你想深入了解,以下是与架构最相关的关键入口点:

  • 网关协议与握手流程(模式定义、版本控制、身份认证机制)(https://docs.openclaw.ai/gateway/protocol)

  • TypeBox 帧模型(req/res/event + 首帧必须为 connect 的规则)(https://docs.openclaw.ai/concepts/typebox)

  • 会话管理(dmScope、安全私信模式、文件存储路径)(https://docs.openclaw.ai/concepts/session)

  • 命令队列(能够识别会话通道的 FIFO、每个会话内部,事件的执行顺序是严格有序的,且同一时刻只有一个事件在被处理、任务入队列或执行有多种行为模式)(https://docs.openclaw.ai/concepts/queue)

  • 心跳机制(默认频率、HEARTBEAT_OK 的行为模式)(https://docs.openclaw.ai/gateway/heartbeat)

  • Hooks + Webhooks(内部 vs 外部事件触发源)(https://docs.openclaw.ai/automation/hooks)

  • 插件系统(OpenClaw 如何通过命令/工具/RPC 进行扩展)(https://docs.openclaw.ai/tools/plugin)


11

最终结论:OpenClaw 的“自主性”本质上是一种工程模式

如果把所有内容提炼到最简,OpenClaw 的架构基本由四部分组成:

  • 时间 Time(心跳 + 定时任务)

  • 事件 Events(消息 + Hooks + Webhooks)

  • 状态 State(会话 + 磁盘上的 workspace 记忆)

  • 循环 Loop(智能体处理轮次:读取 → 决策 → 执行 → 写入)

当人们问“智能体是否有生命”时,他们问错了问题。

真正应该问的是:

  • 什么事件会唤醒它们?

  • 它们拥有什么状态?

  • 们强制遵守哪些 invariants?

  • 它们能执行哪些工具?

OpenClaw 用清晰的架构回答了这些问题。

而正是这种清晰,赋予了它强大的能力。

END

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询