18.5万Star的开源AI Agent,OpenClaw到底怎么设计的?
Clawdbot(现在叫 OpenClaw)在几周内从9000 Star涨到18.5万。我花了些时间翻了它的架构文档和源码,试着搞清楚它的技术架构为什么能撑住这么快的增长。
OpenClaw 是什么
一句话:跑在你自己电脑上的 AI Agent,能直接操作你的文件、终端、浏览器,还能连 WhatsApp、Telegram、Discord 等十几个消息平台。
跟 ChatGPT、Claude 的区别在于,那些是云端聊天框,你问它答。OpenClaw 是一个 Node.js 服务,驻扎在你本地,接收消息平台的指令后,真的会去执行操作。有人形容它是"长了手的 Claude",虽然有点糙,但大意没错。
三层消息流水线
翻源码能看到,消息从用户发出到被处理,经过三层:
渠道适配层,把 Telegram、Discord、Slack 等不同平台的消息格式统一。每个平台实现一个 ChannelPlugin 接口(在 src/channels/plugins/types.plugin.ts 里定义)。光 Telegram 的适配代码就有约15万 token,Discord 约12万,Slack 约10万。每个平台的消息格式、回调机制、速率限制都不一样,适配工作量比想象中大。
网关服务层,负责会话管理、权限控制、消息路由。通过 WebSocket(端口 18789)把消息推到 Agent 队列。白名单机制在这一层做的命令过滤。
Agent 处理层,理解意图、调用 Skill、生成响应。
三层之间职责分得挺干净。这种分层在 Web 后端很常见,不算新鲜,但放在 AI Agent 场景下确实做得比较清晰。
两个设计选择让它跟别的 Agent 不一样
Laurent Bindschaedler 有篇分析文章把 OpenClaw 的设计归结为两个核心原语,我觉得总结得挺准确。
第一个:自主调用。 Agent 不是只有用户发消息才工作,它还支持 Cron 定时执行、Webhook 事件触发、Gmail 集成、语音检测。每次调用有独立的会话隔离。也就是说,你可以让它每天早上自动干某件事,不需要你盯着。
第二个:把状态存成本地 Markdown 文件。 这是我觉得最有意思的设计。Agent 的"记忆"不存在数据库里,而是放在工作目录下的几个 .md 文件中:
AGENTS.md放操作指令和记忆SOUL.md放人格设定TOOLS.md放工具使用规范IDENTITY.md放 Agent 名称和风格
好处很直接:状态不会因为进程重启而丢失,你随时可以打开文件看看 Agent "在想什么",还能直接编辑它的记忆。用 Git 追踪变更也很自然。
但老实说,这个方案我也有些存疑。Markdown 文件作为状态存储,在并发、一致性、查询效率上都有天然劣势。目前项目规模下还不是问题,用户量再上去可能就要想别的办法了。
为什么比其他 Agent 系统稳?
Towards AI 上有篇文章分析了这个问题。几个点:
它是一个长期运行的 CLI 进程,不是 Web 应用也不是 Notebook wrapper。直接跑在操作系统上,出了问题用常规手段就能调试,不需要跟一层层抽象较劲。Markdown 文件作为状态存储,避免了每次调用重新初始化的问题。
听上去很朴素。但回想一下 AutoGPT 早期版本经常跑着跑着就乱了套,你就知道"朴素但稳定"在 Agent 领域有多稀缺。
技术栈
| 组件 | 选型 |
|---|---|
| 主语言 | TypeScript(83%,约680万 token) |
| 运行时 | Node.js ≥ 22 |
| AI 模型 | Claude、GPT、DeepSeek、本地模型,可切换 |
| 消息协议 | WebSocket |
| 状态管理 | 本地 Markdown 文件 |
| 插件市场 | ClawHub(3000+ skills) |
| 许可证 | MIT |
社区里的真实用法
看 GitHub Issues 和论坛讨论,比较有意思的用法有这些:
有人用 Telegram Bot 配合 OpenClaw 自动消化 Twitter 信息流,每天发摘要。有人做了支持语音听写的待办系统。最硬核的是一个搞科研的用户,让 Agent 管理实验集群,任务队列空了 Agent 会自己提议跑新实验。
这些场景的共同点是:需要 Agent 主动干活,而不是你每次去问它。
一些想法
OpenClaw 的架构没有什么特别花哨的地方。三层流水线、两个核心抽象、Markdown 状态存储。每一个单独拎出来都不算新颖。
但它把这些组合在一起跑通了,而且跑得还算稳。在 AI Agent 领域,大家习惯了拿复杂架构去解决复杂问题,OpenClaw 反过来用简单方案撑住了一个高速增长的项目。
当然,安全问题是另一回事了,那是个大坑。但纯从架构角度看,这个项目值得细看。
参考资料:
- OpenClaw 官方文档:docs.openclaw.ai
- GitHub 仓库:github.com/openclaw/openclaw
- Towards AI: "Why Clawdbot Doesn't Break When Other Agent Systems Do"
- Laurent Bindschaedler: "Decoding OpenClaw: The Surprising Elegance of Two Simple Abstractions"