如何通过Nanobot源码学习OpenClaw的架构?
摘要:【OpenClaw】通过Nanobot源码学习架构 (1)总体 目录【OpenClaw】通过Nanobot源码学习架构 (1)总体0x00 概要0x01 OpenClaw 基础1.1 Harness1.2 OpenClaw1.3 OpenC
【OpenClaw】通过Nanobot源码学习架构---(1)总体
目录【OpenClaw】通过Nanobot源码学习架构---(1)总体0x00 概要0x01 OpenClaw 基础1.1 Harness1.2 OpenClaw1.3 OpenClaw 架构1.3.1 OpenClaw 精简架构 11.3.2 OpenClaw 精简架构 21.4 关键组件0x02 Nanobot 基础2.1 核心功能 / 特色2.2 🛠️ 技术栈2.3 📁 主要目录结构2.4🌐 支持的平台0x03 Nanobot 总体架构3.1 架构特点3.2 架构图0x04 Nanobot 消息分发机制详解4.1 消息处理流程图4.2 消息流入和流出完整流程4.2.1 用户消息入站阶段4.2.2 构建入站消息对象4.2.3 发布到消息总线4.2.4 AgentLoop 消费入站消息4.2.5 消息分发处理4.2.6 发布出站消息4.2.7 ChannelManager 分发出站消息4.2.8 渠道发送消息到用户4.3 消息如何分发给不同 Session4.3.1 SessionKey 生成机制4.3.2 SessionManager 持久化机制4.3.3 Session 对象结构4.3.4 获取或创建会话流程4.3.5 会话完全隔离机制4.3.6 /stop 命令的会话级取消4.4 消息如何从 Channel 发送到其他模块4.4.1 CronService 消息发送机制4.4.2 AgentLoop 处理系统消息4.4.3 HeartbeatService 消息发送机制4.4.4 MessageTool 跨渠道消息发送4.4.5 模块间消息分发总结0xFF 参考
0x00 概要
OpenClaw 应该有几十万行代码,阅读理解起来难度过大,因此,本系列通过Nanobot来学习 OpenClaw 的特色。
Nanobot是由香港大学数据科学实验室(HKUDS)开源的超轻量级个人 AI 助手框架,定位为"Ultra-Lightweight OpenClaw"。其核心定位如下,非常适合学习Agent架构:
超轻量:核心代码仅约 4,000 行,比 Clawdbot 的 43 万行代码少 99%
设计哲学:微内核架构 + 极致可读性
功能定位:个人AI助手,支持多平台接入
研究友好:代码清晰易读,易于理解、修改和扩展
快速启动:最小化占用意味着更快的启动速度和更低的资源消耗
即开即用:一键部署即可使用
注:本系列借鉴的文章过多,可能在参考文献中有遗漏的文章,如果有,还请大家指出。
0x01 OpenClaw 基础
我们首先来看看 OpenClaw 的基础概念,能让我们在后续利用 Nanobot 学习更加顺利。
OpenClaw 是 Harness,是面向个人与本地场景的、开箱即用的 Agent Harness 框架。它不生产模型,而是把模型 “套上马具”,让模型能稳定、安全、自主地在本地执行真实任务。或者说,OpenClaw 是 Agent 中"不是 AI 的部分",而 Agent 的实际"聪明程度"完全取决于背后接入的语言模型。
1.1 Harness
智能体 = 模型 + 控制壳(Harness)。
Harness 是包裹在 LLM 之外、负责让 Agent 稳定、可控、可落地执行任务的全套基础设施层,模型提供智能,控制壳让智能变得可用。或者说,Harness 是 Agent 在特定领域工作所需要的一切:Harness = (推理·上下文·记忆·状态) + (工具·编排·闭环) + Knowledge + Observation + Action Interfaces + Permissions,即:智能管理层 + 执行调度层 + 领域知识层 + 反馈观测层 + 安全权限层:
Tools: 文件读写、Shell、网络、数据库、浏览器
Knowledge: 产品文档、领域资料、API 规范、风格指南
Observation: git diff、错误日志、浏览器状态、传感器数据
Action: CLI 命令、API 调用、UI 交互
Permissions: 沙箱隔离、审批流程、信任边界、安全护栏、权限控制、错误处理
1.2 OpenClaw
OpenClaw 的架构与能力完全符合 Harness 的定义,是 Harness 在个人场景的落地:
OpenClaw 是 Agent 中"不是 AI 的部分"。它负责记忆管理、任务调度、工具执行、信道路由,而 Agent 的实际"聪明程度"完全取决于背后接入的LLM。
模型做决策。OpenClaw 执行。模型做推理。OpenClaw 提供上下文。模型是驾驶者。OpenClaw 是载具。
