2026年初,一个名为OpenClaw的开源项目以惊人速度席卷全球:GitHub星标数突破28万,超越Linux登顶平台榜首,甚至让原本小众的Mac Mini一机难求。这个被开发者昵称为“小龙虾”的项目,究竟藏着怎样的技术魔力?
如果你对OpenClaw的技术架构感兴趣,或者想深入学习其源码实现,欢迎访问RskAi(ai.rsk.cn)——国内可直接访问的免费AI镜像站,聚合Gemini/GPT/Claude三款顶级模型,还能在对话框里向我们提问技术问题。
本文将从架构演进、核心子系统、消息流转机制三个维度,对OpenClaw进行深度技术拆解。
一、OpenClaw是什么?重新定义AI助手
OpenClaw(曾用名Clawdbot、Moltbot)是由奥地利工程师Peter Steinberger(知名PDF工具PSPDFKit创始人)于2025年11月发布的开源AI智能体框架。它的核心定位是“连接大模型与本地系统的执行中枢”——让AI从“只会说话的嘴”,变成“能办实事的手”。
与ChatGPT、Claude等传统对话AI不同,OpenClaw不是一款单纯的聊天机器人,而是本地优先的AI代理平台。它能直接进驻你日常使用的通讯工具(飞书、钉钉、企业微信等),听懂自然语言指令后,真正动手执行任务:发邮件、整理文件、跑代码、爬数据、控制设备……实现从“思考”到“行动”的完整闭环。
OpenClaw的技术架构可以概括为四层模型:交互层(前台)、网关层(大脑中枢)、智能体层(思考核心)、执行层(手脚)。这套分层设计让OpenClaw成为一个能听、能想、能做、能记的完整智能体,而“本地优先”的设计更让它在隐私性和可控性上远超云端AI产品。
二、演化史:从单脚本到AI操作系统的四次跃迁
理解OpenClaw架构的最佳方式,是回溯其演化历程。项目历经四次更名,每次都是架构质变。
Warelay时代:“一条管道”
项目名warelay = WA Relay(WhatsApp 中继)。用户通过WhatsApp或短信给AI发消息,收到文字回复。没有Gateway、没有Agent、没有会话管理——就是一个webhook脚本。关键选择是用Baileys(开源WhatsApp协议库)而非商业API收发消息,好处是免费且不依赖第三方服务。
Clawdis时代:最关键的跃迁
这是变化最剧烈的阶段——三件大事同时发生:
引入Pi SDK:Pi是一个外部agent框架,提供了“消息→prompt→调大模型→解析工具调用→执行→循环”的核心agent循环。OpenClaw从此不再是“收到消息调一次API”,而是一个真正的AI agent。
两周内接入5个渠道:Telegram、Discord、Signal、iMessage、WhatsApp——每个平台的消息格式、API风格、群组概念都不同。多渠道的差异催生了Adapter模式和Channel Dock(统一注册中心),每个渠道只实现它需要的接口子集。
Gateway诞生:从一个CLI命令行工具变为常驻后台服务,所有客户端通过WebSocket统一接入,内含消息路由、队列、会话管理、Cron调度、Hook系统和Plugin注册。
Clawdbot→OpenClaw时代:生产化与平台化
核心思路是让新功能通过插件生长,核心代码库不再膨胀。为此落地了三层扩展机制:
插件系统:社区开发插件时,导出一个register(api)函数即可声明能力——可注册的类型包括渠道、工具、钩子、HTTP路由等。Node.js生态的模块格式分裂(ESM vs CJS)是插件加载的主要障碍,OpenClaw用jiti(运行时TypeScript编译加载器)统一处理。
本地记忆:文本切片后转为向量,存入本地SQLite,用sqlite-vec扩展做余弦相似度检索。搜索采用混合策略——向量语义匹配+BM25关键词匹配——兼顾“意思相近”和“关键词命中”。
技能市场ClawHub:技能本质是注入system prompt的声明文件,描述AI在特定场景下该怎么做。安装命令clawhub install ,加载优先级为workspace > 本地 > 内置。
三、核心架构拆解:四层模型深度解析
3.1 交互层(Channel Layer):统一20+种渠道的“翻译官”
OpenClaw最神奇的地方,就是你可以用任何聊天软件指挥它——WhatsApp、Telegram、飞书、钉钉、Signal、iMessage……目前已支持8个核心通道和50+扩展通道。
这一层的核心工作是“翻译”。每个渠道都有自己的脾气:WhatsApp要扫码配对,Telegram要填Bot Token,飞书有一套复杂的卡片消息格式。交互层的工作,就是把所有这些接口翻译成OpenClaw内部统一能听懂的语言。
为了抹平几十种IM平台的API差异,OpenClaw采用三层通道架构:
Gateway(网关层) :作为整个系统的控制大脑,负责维护WebSocket控制平面、全局会话管理、消息路由
Channel Core(通道核心层) :维护通道注册表,管理全局配置,统一处理会话、线程、输入状态等通用逻辑
Channel Plugins(通道插件层) :这里是“脏活累活”的执行地,负责与各个IM厂商的服务器进行底层网络交互
连接方式主要分为三类:
WebSocket模式:本地服务器主动向IM厂商发起长连接,无需公网IP,配置简单,适合个人开发者在内网部署
Webhook模式:厂商服务器主动推送消息,节省资源但强依赖公网IP,需配合内网穿透工具
CLI模式:针对Signal、iMessage等特殊通道,必须劫持本地客户端工具或使用底层协议
通道插件的统一接口定义在src/channels/plugins/types.plugin.ts,包含id、meta、capabilities、config等必须实现的属性,以及outbound、pairing、heartbeat等可选适配器。这种设计让核心模块可以不面向任何具体的IM工具撰写代码,而是只面向通道接口撰写代码——即使市面上新出一款IM,只要实现插件规范就能无痛接入。
3.2 网关层(Gateway):系统的“总机接线员”
Gateway是OpenClaw的核心服务中枢,是整个系统的控制平面。简单来说:Gateway = 大管家,帮你管理所有IM渠道,你只需要跟AI聊天,它负责把消息转来转去。
网关做三件事:
路由:看一眼消息是谁发的——哦,是张三在飞书私聊我——那这条消息应该交给“张三的专属会话”处理。如果是群消息,就交给对应的群会话。
排队:OpenClaw有个很聪明的设计叫“车道式队列”(Lane Queue)。你同时发三条指令,网关不会让它们一起执行,而是一条一条串行处理。如果你在A群里让它写文件,同时在B群里让它查天气,这两件事不冲突,可以并行——这就是“显式并行,默认串行”。
调度定时任务:你配了一个每天早上8点发日报的Heartbeat,网关就记住这个事了。到点了,哪怕你人还在睡觉,网关也会准时唤醒系统去干活。
从源码层面看,Gateway层还承担着上下文压缩的重要职责。在src/gateway/dispatcher.py中,有一个关键的装饰器@route_to_executor,Gateway在这里做意图分析和节点匹配——提取意图、过滤掉无用的对话历史、匹配最合适的执行节点。
工程避坑点:很多指令没响应,是因为Gateway层的registry没更新。OpenClaw默认使用Redis维护节点心跳,如果Redis挂了或网络存在大延迟,指令就会在Gateway堆积。
3.3 智能体层(Agent Layer):真正动脑子的地方
消息被网关送到这一层,才开始真正的“思考”。智能体层又拆成四个小角色,分工明确:
会话管理器(Session Manager) :每个对话都有一个独立的“会话”。你和AI的聊天记录、你之前让它记住的偏好、你这次发的文件,都存在这个会话里。不同的会话之间是隔离的。
上下文组装器(Context Assembler) :每次你要跟AI对话,它得知道自己是谁、能干啥、你以前说过啥。这一块就是干这个活的:把SOUL.md(人格设定)、TOOLS.md(工具有哪些)、历史聊天记录、最近的记忆,拼成一份完整的“提示词”喂给大模型。
执行循环(Execution Loop) :这是AI真正“动脑子”的地方。大模型看完你的指令,决定要调用什么工具——比如你说“帮我截屏”,模型说“好的,我要调用screenshot工具”。执行循环就负责:去调用截屏工具→拿到截图→再问模型“截图拿到了,然后呢?”→模型说“发给用户”→执行循环把图发出去。
记忆系统(Memory System) :OpenClaw的记忆分三级:
短期记忆:每天的对话日志,按日期存成Markdown文件。新对话开始时,自动加载今天和昨天的日志,让你觉得AI“记得昨天的事”
近端记忆:完整的会话存档。对话太长被压缩时,关键信息存到这里
长期记忆:MEMORY.md文件,存你明确的偏好(“我以后都用深色模式”)、重要决策、项目状态。每次私聊都会自动加载
记忆系统的实现非常精巧。每个Agent对应一个独立的SQLite数据库,位于~/.openclaw/memory/{agentId}.sqlite。表结构包含files(记录文件元数据)、chunks(存储文本块和向量)、chunks_fts(全文搜索虚拟表)、chunks_vec(向量搜索虚拟表)。
核心检索工具叫memory_search,实现的是混合检索——让BM25和向量检索“打架”,然后加权平均。为什么需要混合?因为纯向量检索懂语义但不懂精确匹配(搜“Mac Studio网关主机”能找到“运行网关的那台机器”,但搜环境变量名“DB_PASSWORD”可能抓瞎),反之BM25擅长精确匹配但不懂同义替换。
OpenClaw的做法是:取并集而非交集。只要向量或BM25任一方法认为某块内容相关,它就有机会进入候选池,最后通过加权得分决定谁胜出。
还有个很妙的机制叫预压缩记忆冲刷。当会话token数逼近上下文窗口上限时,系统会主动提示Agent:“快把重要东西写到磁盘上,不然等会儿被压缩了就没了”——这个设计解决了大模型的致命伤:静默遗忘。
3.4 执行层(Execution Layer):真正干活的“手脚”
动脑子的是智能体,但真要干活——写文件、发邮件、截屏、点鼠标——得靠这一层。
执行层分两块:
本地节点(Local Node) :和网关跑在同一台机器上,负责通用技能:执行命令行、读写文件、联网搜索、查天气
远端节点(Remote Node) :跑在你其他设备上:卧室的MacBook、随身带的iPhone、办公室的Windows电脑。它们通过WebSocket长连接和网关通信。你出差时让AI帮你截家里电脑的屏,消息就得走:手机→网关(可能在云服务器)→家里MacBook→截图回来
OpenClaw采用“云端大脑+本地肢体”的三层解耦架构:
Orchestrator(大脑) :通常部署在GPU集群或云端,负责LLM推理和任务拆解
Gateway(协议桥) :负责鉴权、流量整形以及将LLM生成的JSON指令翻译成特定环境的指令集
Pi-embedded(执行端) :运行在你的Mac/Linux或树莓派上,真正去跑Python脚本、截图或点按鼠标
进入packages/pi-embedded/runtime,你会发现它并没有直接调用系统的subprocess。为了安全,它实现了一套名为“Cell Isolation”的沙箱机制。核心逻辑在executor.py中,包含两个核心模块:
Environment Snapshot:在执行前先快照当前环境变量
Skill Loader:动态加载.ocskill文件
很多开发者在写自定义Skill时发现找不到第三方库,这是因为Pi-embedded默认在独立的venv中运行。需要在项目的claws.yaml中明确定义dependencies,由执行端在启动时自动静默安装。
四、消息全链路追踪:从发消息到收回复
假设你现在在飞书给OpenClaw发了一条指令:“帮我截一下卧室那台Mac的屏幕,看看程序跑完了没。”
交互层:飞书适配器收到消息,翻译成内部格式,传给网关。
网关层:网关看消息来源,分配给“你的主会话”;同时检查有没有定时任务冲突,放进队列。源码中,Gateway会先做上下文压缩(Context Pruning),提取意图,过滤掉无用的对话历史,然后匹配最合适的执行节点。
智能体层:会话管理器加载你的历史记录和记忆;上下文组装器拼好提示词;大模型看完,决定调用peekaboo技能;执行循环开始跑。在Pi SDK的agent循环中,工具调用会被解析成JSON,通过pi-agent-core按序执行。
执行层:网关查询技能路由表,发现peekaboo需要远端节点执行,通过WebSocket把指令发给你卧室的MacBook。Peekaboo是OpenClaw的macOS桌面自动化工具,让AI拥有“眼睛”和“手”:截屏、标注UI元素、点击、打字、管理应用。
MacBook上的Pi-embedded接收消息,解包,启动沙箱,执行get_screenshot.py,截图返回。结果(图片二进制流)顺着原路返回——执行层→智能体层(可能再做一次总结)→网关层→交互层(飞书适配器发图片给你)。
全程可能只需要几十秒,但你啥也不用干。
五、插件化架构:从单体到开放平台的演进
2026年初,OpenClaw通过PR #661完成重大插件化重构,核心是将模型提供商(Provider)从核心代码中解耦,转化为可独立分发的插件包。此次重构并非简单的代码整理,而是架构范式的根本性转变。
重构前的单体架构问题重重:
紧耦合:添加新模型提供商需同时修改4个核心文件
路由膨胀:核心路由文件model-router.ts采用大量else-if分支,每新增一个提供商就增加一层
测试隔离难:测试一个Provider可能引发其他无关Provider的测试失败
重构后的插件化架构采用“接口标准化+动态加载”思路:
核心接口定义:框架定义统一的Provider接口,明确chat、estimateTokens、getSupportedFeatures等核心能力
动态加载机制:通过ProviderLoader类实现插件的动态导入与注册,核心代码不再硬编码提供商列表
路由逻辑简化:新路由基于插件名称解析与动态调用,代码复杂度从O(n)降至O(1)
插件标准化:每个插件为独立npm包,结构统一,便于分发与维护
插件化架构的技术优势明显:
依赖隔离:核心框架无任何模型SDK依赖,bundle大小从45MB降至8MB
并行开发:核心团队仅需维护接口稳定性,社区可独立实现插件
版本自治:每个插件独立版本号,可独立发布更新
安全增强:通过沙箱机制+权限声明双重保障
六、总结:为什么OpenClaw的架构值得深入学习
OpenClaw的技术架构给我们最大的启发是:一个优秀的AI助手,必须能听、能想、能做、能记。而OpenClaw的四大组件,恰好对应了这四大能力:
交互层:多平台无界接入,实现“能听”
网关层:消息路由与调度中枢,实现“能协调”
智能体层:多模型集成与记忆系统,实现“能想、能记”
执行层:插件化技能与远程节点,实现“能做”
这套架构设计的精妙之处在于:它不是一个写死的功能列表,而是一个可无限扩展的开放平台。无论是新的IM渠道、新的AI模型、新的执行技能,都可以通过插件化机制无缝接入。
对于开发者而言,完整搭建完这套流程后,对Skills的理解、对多Agent的理解、对memory-search原理的理解、对Agent经典架构的理解,都可以上一个层次。这些问题都可以在折腾OpenClaw中自己摸索到:
如果让你设计一个Agent,它的长短期记忆链路你打算怎么设计?
如果让你设计一个多Agent架构,你会设计哪些通信方式?
memory-search方案的原理是什么?
一个完整的LLM对话是怎么在transformer框架中流转的?
如果你对OpenClaw的技术细节有更多疑问,或者想深入学习其源码实现,欢迎访问RskAi(ai.rsk.cn)——国内可直接访问的免费AI镜像站,聚合Gemini/GPT/Claude三款顶级模型,还能在对话框里向我们提问。 我们随时准备为你解答技术难题。
【本文完】