OpenClaw 架构分析:从消息入口到多智能体协作 openclaw architecture analysis OpenClaw Agent 架构设计 AI 工程 AI工程
2267 字
11 分钟
OpenClaw 架构分析:从消息入口到多智能体协作

先说结论#

我看 OpenClaw 这套架构时,最强的感受不是“功能很多”,而是它终于把一件事做清楚了:

一个能长期做事的 Agent 系统,核心不是模型回答得多聪明,而是消息、会话、工具、调度和边界能不能被统一起来。

如果只看聊天体验,它当然也能用;但如果把目标换成“长期稳定执行任务”,它真正有价值的部分其实在系统层。

我会把这套架构的意义归纳成 3 个问题:

  1. 怎么把 Telegram、Discord、WhatsApp 这类不同入口统一成同一种会话语义
  2. 怎么让 Agent 有执行能力,但又不轻易越界
  3. 怎么把一次性对话,演进成能持续运转的个人自动化系统

所以这篇我不做功能罗列,而是从工程角度拆它为什么能撑住这些事情。


一、先从分层看:OpenClaw 其实是五层系统#

如果只从职责划分来看,我会把 OpenClaw 大致拆成五层:

  1. Channel / Surface 层:接收和发送消息,比如 Telegram、Signal、Discord
  2. Session 层:把消息映射成会话,管理上下文、模型参数、权限范围
  3. Agent Runtime 层:负责提示词编排、工具调用决策、回复生成
  4. Tooling 层:提供 read、write、exec、browser、cron 这类实际能力
  5. Orchestration 层:处理子代理、cron、heartbeat、通知这类异步机制

如果把数据流压缩一下,大致就是:

Channel Message
-> Session Router
-> Agent Runtime (reason + plan)
-> Tool Calls (sync/async)
-> Results back to Runtime
-> Response / Scheduled Job / Sub-agent
-> Channel Delivery

我比较喜欢这套分层的地方在于,它把几个常被混在一起的东西拆开了:

  • 模型负责决定“做什么”
  • 工具层负责“怎么做”
  • 会话层负责“在哪个边界里做”

这看起来像正常架构设计,但对 Agent 系统其实很关键。因为很多项目一开始把这些东西混在一块,后面工具一多、场景一多,系统就开始失控。


二、消息不是核心抽象,会话才是#

OpenClaw 一个我很认同的设计,是它没有把“单条消息”当作核心单元,而是把 Session 放在中心。

这意味着,同一句“帮我发出去”,放在不同会话里语义可以完全不同:

  • 在主会话里,默认是用户直接发起请求
  • 在子会话里,可能是在隔离执行某个长期任务
  • 在跨会话协作里,又可能是 sessions_send 在做任务交接

这个抽象的好处,我觉得至少有 3 个:

1)更容易追踪#

任务在哪个会话里发生、调用了哪些工具、最后怎么结束,路径都比较清楚。

2)更容易隔离#

复杂任务可以扔到子会话里做,不用把主会话上下文弄得越来越脏。

3)更容易恢复#

即使主会话被打断,异步任务也还能继续跑,完成后再把结果回推回来。

从工程视角看,这已经不只是聊天系统了,更像是一个轻量级任务编排层。这个抽象一旦成立,后面很多能力都会变得顺理成章。


三、工具层的关键不只是多,而是入口统一#

OpenClaw 的工具面很宽,这点不用多说:

  • 文件系统:read / write / edit
  • 系统执行:exec / process
  • Web 能力:web_search / web_fetch / browser
  • 编排能力:cron / sessions_spawn / subagents
  • 消息与通知:message / nodes.notify

真正让我觉得它工程味比较足的,不是它工具多,而是这些能力基本被放在统一调用接口下,再由策略层去限制边界。

这件事很重要,因为很多人会把“高能力”直接等同于“高风险”。但在系统设计里,真正决定风险高低的不是能力本身,而是能力有没有被统一收口、有没有一致的策略入口

比如一个很典型的链路:

“帮我每周一早上提醒复盘周目标”

它背后的系统过程其实是:

  1. 主会话先理解用户意图
  2. cron.add 建一个定时任务
  3. 到点后触发 systemEvent 或隔离 agentTurn
  4. 最后再通过消息通道推送出去

这里最关键的一点是:模型不需要靠记忆硬扛“周一早上要提醒”这件事,长期可靠执行交给系统层负责。

这就是 Agent 系统和普通聊天机器人的差别。前者不只是会回答,而是真的能把任务托管出去。


四、异步能力才是它从 Demo 走向实用的分水岭#

大部分 LLM 应用都还是同步思路:问一句,答一句。这个模式当然能用,但一旦任务跨时间、跨步骤,就会很快碰到天花板。

OpenClaw 真正让我觉得有实用价值的地方,在于它把异步机制做成了一等能力:

  • cron:负责精确定时和周期任务
  • sub-agent:负责复杂任务拆分和并行执行
  • heartbeat:负责轻量巡检和低频主动服务

这三类能力组合起来后,系统就不再只是即时响应,而是能覆盖三个时间尺度:

  • 当下回答
  • 稍后完成
  • 定期触发

我自己在看这块时会很自然地把它当成“个人自动化系统”的基础设施,而不是聊天功能的附属插件。因为真实世界里的任务,确实很少都能在一个请求里立刻做完。


五、安全边界不是限制能力,而是限制意图外扩#

OpenClaw 的安全设计里,我最认同的一点是:它不是简单地把高风险工具全部禁掉,而是更强调上下文边界和确认机制。

核心思路大概是这三条:

  1. 能力可以存在,但必须受上下文约束,比如会话范围、授权发送者、是否允许外部动作
  2. 敏感动作优先走人类确认,比如外发消息、公开发布、配置变更
  3. 记忆按需读取,不是默认把所有私有信息直接摊进上下文里

这类设计我觉得比“全自动化”现实得多。因为现实里的助手系统,最危险的往往不是不会做,而是做错了之后你还说不清它为什么这么做。

换句话说,可审计性本身就是安全的一部分。


六、它的优点和真正会碰到的瓶颈#

如果从架构层面总结,我会这样看它的优点和问题。

我觉得比较明显的优点#

  • 会话抽象清晰:天然适合多渠道、多任务并存
  • 工具扩展成本低:能力继续加,主流程不一定要推翻重来
  • 异步编排比较完整:cron 和子代理让它真的能长期跑任务

我觉得迟早会碰到的瓶颈#

  • 工具依赖运行环境:浏览器、CLI、外部服务,任何一环不稳定都会直接影响成功率
  • 提示词和策略复杂度会上升:能力越多,系统提示越难维护
  • 对可观测性的要求会越来越高:异步任务一多,日志、追踪、告警几乎就是刚需

这也是为什么我会说,OpenClaw 已经不太像“Agent Demo”了,它更接近一个生产型个人自动化平台的雏形。


七、如果你也在搭类似系统,我会先做这三件事#

如果你想把 Agent 系统真正落地,我会优先建议这 3 件事:

1)先把会话模型设计清楚,再谈工具扩展#

没有会话边界,工具越多只会越乱。很多系统前期看着什么都能接,后期一到复杂任务就开始互相污染上下文。

2)把异步能力当成一等公民#

真实任务很少都能在一个请求里做完。如果你的系统只有同步调用能力,那它本质上还是个会调用工具的聊天机器人。

3)把可审计写进目标里#

你迟早会遇到“它为什么这么做”的问题。到那个时候,能不能把行为路径还原出来,会直接决定这套系统能不能继续用。


最后总结#

OpenClaw 给我的启发,不是“又一个 Agent 框架”,而是它把 LLM 能力、系统工程、运维思维 放到了同一个平面上讨论。

如果你正在做个人助手、运营自动化或者 AI 工作流平台,我会觉得这套架构思路很值得认真看一遍。因为它关注的不是单次对话体验,而是长期运行时系统到底能不能站住。

说到底,真正有用的 Agent,不是会说很多,而是能在边界内持续把事情做完。

OpenClaw 架构分析:从消息入口到多智能体协作
https://bangwu.top/posts/openclaw-architecture-analysis/
作者
棒无
发布于
2026-02-26
许可协议
CC BY-NC-SA 4.0