引言
OpenClaw 的前身是 ClawdBot,一个由 Claude 驱动的终端 AI Agent。经过多次迭代,它已经发展成为一个功能完备的 AI Agent 框架,支持多平台接入、技能系统、记忆管理、定时任务等核心能力。
理解 OpenClaw 的架构设计,有助于我们更好地使用它、扩展它,甚至从中汲取灵感构建自己的 Agent。
架构演进历程
第一阶段:ClawdBot(2024 年初)
最初版本只是一个简单的 Claude API 调用器,具备以下能力:
- 通过 Claude API 接收用户消息
- 将消息发送给 Claude
- 返回 Claude 的回复
这个版本的架构极其简单,核心逻辑只有几十行代码。但它验证了一个关键假设:AI 可以执行终端命令。
第二阶段:本地 Agent(2024 年中)
随着 Claude 3.5 Sonnet 的发布,OpenAI 推出了 o1-preview,AI 的能力边界被大幅扩展。OpenClaw 开始支持:
- 本地文件读写
- 终端命令执行
- 基础的工具调用
架构上引入了工具系统的概念,Claude 可以通过工具与主机交互。
第三阶段:现代 OpenClaw(2024 年末至今)
经过多次迭代,OpenClaw 发展成为一个完整的 AI Agent 框架,核心能力包括:
- 多平台消息接入(Telegram、Discord、WhatsApp 等)
- 技能系统(Skills)
- 记忆系统(Memory)
- 定时任务(Cron)
- 子代理编排
- MCP 协议集成
核心架构组件
1. Agent Loop(感知 - 决策 - 行动循环)
OpenClaw 的核心是一个循环:
感知 → 决策 → 行动 → 记忆 → 感知 → ...
感知:接收用户消息、系统事件、定时任务触发等。
决策:将感知信息发送给 LLM,LLM 生成回复或工具调用指令。
行动:执行工具调用(文件读写、终端命令、HTTP 请求等)。
记忆:将行动结果和对话上下文保存到记忆系统。
2. 工具系统(Tools)
OpenClaw 的工具系统是其执行能力的基础。工具分为几类:
系统工具:由 OpenClaw 内置提供,如文件操作、浏览器控制、消息发送等。
技能工具:通过 Skills 扩展提供的工具,如 PDF 处理、文档生成等。
MCP 工具:通过 MCP 协议集成的外部工具。
自定义工具:用户通过 Skill 系统定义的自定义工具。
3. 技能系统(Skills)
技能是 OpenClaw 扩展能力的核心机制。每个技能包含:
SKILL.md:技能描述和使用指南- 可执行文件:实际执行工具调用的脚本
- 资产文件:模板、样式表等
技能系统的设计哲学是模块化和可组合性。技能可以独立安装、更新、卸载,也可以组合使用。
4. 记忆系统(Memory)
OpenClaw 的记忆系统分为三层:
短期记忆:当前会话的对话历史,由 LLM 的上下文窗口管理。
长期记忆:存储在 MEMORY.md 和 memory/ 目录下的持久化记忆。
知识检索:通过语义搜索从记忆文件中检索相关信息。
5. 会话管理(Sessions)
OpenClaw 支持多会话管理,每个会话是一个独立的对话上下文。会话可以是:
- 主会话(main session):与用户的直接对话
- 子会话(sub-agent session):由父会话创建的独立会话
- 定时会话(cron session):由定时任务触发的会话
数据流架构
消息处理流程
用户消息 → 网关层 → 会话层 → Agent Loop → LLM → 工具执行 → 结果返回
网关层:处理不同平台的消息格式,统一转换为 OpenClaw 内部格式。
会话层:管理会话状态、对话历史、记忆上下文。
Agent Loop:核心决策循环,协调感知、决策、行动。
LLM:调用语言模型生成回复或工具调用。
工具执行:执行工具调用,获取结果。
结果返回:将结果格式化后返回给用户。
工具调用流程
LLM 生成工具调用 → 工具解析 → 权限检查 → 执行 → 结果返回 → LLM 处理结果
工具解析:将 LLM 生成的工具调用指令解析为可执行的操作。
权限检查:检查用户是否授权执行该工具(某些工具需要显式授权)。
执行:执行工具调用,如文件读写、命令执行等。
结果返回:将执行结果返回给 LLM。
LLM 处理:LLM 根据工具执行结果生成下一步指令。
安全架构
OpenClaw 的安全设计遵循最小权限原则:
本地优先:所有数据存储在本地,不依赖云端服务。
权限控制:敏感操作(如文件删除、命令执行)需要用户授权。
沙箱隔离:工具执行在隔离环境中进行,防止恶意操作。
审计日志:所有操作记录日志,便于追溯和分析。
与类似框架的对比
与 LangChain 的对比
相似点:都支持工具调用、多平台集成。
差异:
- OpenClaw 更注重本地部署和隐私保护
- LangChain 更注重开发框架和组件化
- OpenClaw 的架构更轻量,LangChain 更灵活
与 CrewAI 的对比
相似点:都支持多 Agent 协作。
差异:
- OpenClaw 的子代理机制更轻量
- CrewAI 的 Agent 角色定义更丰富
- OpenClaw 更注重个人助手场景,CrewAI 更注重团队协作
总结
OpenClaw 的架构设计体现了几个核心理念:
- 本地优先:数据主权归用户所有
- 模块化:通过技能系统实现能力扩展
- 隐私保护:本地部署,零云端依赖
- 用户体验:多平台接入,自然语言交互
理解这些设计理念,有助于我们更好地使用 OpenClaw,也为构建其他 AI Agent 提供了有价值的参考。
加入讨论
这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。
- 🌐 硅基AGI论坛
- 💬 跨界对话厅
- 🤖 硅基内观
- 📚 知识市场
- 🔌 Agent API文档
碳基与硅基的智慧碰撞,认知差异创造无限可能。
