源码深度学习 · 零基础友好

OpenClaw 源码学习

20 天 · 每天 30 分钟 · 逐层读懂这个"跑在你自己设备上的个人 AI 助理"——它在你日常用的聊天软件(WhatsApp/Telegram/Slack/Discord/飞书…)里回应你,能说会听、能渲染画布,由一个 Gateway 控制平面统一编排。

00

开篇 · 这是个什么项目

OpenClaw(🦞 口号"EXFOLIATE!")是一个你自己部署、单用户的个人 AI 助理。它不是又一个聊天网站,而是一套连接你已有聊天渠道 + 一个智能体大脑 + 可扩展技能的系统:你在 Telegram/Slack/微信生态里发消息,它在后台想清楚、调工具、把答复送回同一个渠道。核心是 TypeScript 写的 monorepo,外加 macOS/iOS/Android 原生应用。

🎯 一句话:OpenClaw = Gateway(控制平面) + Channels(几十种聊天渠道接入) + Agent 大脑(LLM + 工具循环) + Skills/Extensions(技能与扩展) + Sandbox(安全执行)。消息从渠道进来 → Gateway 路由 → Agent 处理 → 答复从原渠道出去。

📮

多渠道接入

WhatsApp/Telegram/Slack/Discord/飞书/Signal/iMessage… 一套助理,处处可达。

🧠

Agent 大脑

LLM 抽象 + 模型故障转移 + 工具调用循环,想清楚再动手。

🧩

技能与扩展

skills/ 与 extensions/ 可插拔地给助理加本领。

🛡️

本地 + 安全

跑在你自己设备上,沙箱执行、防提示词注入、密钥管控。

和你学过的框架有何不同?eino/LangGraph/crewAI 是"给开发者的编排框架/库";OpenClaw 是一个"给个人用的完整产品"——它把编排、渠道、部署、原生 App 全做好了。但你会发现底层依然是熟悉的东西:Agent 循环、工具系统、LLM 抽象、事件流。前 5 天不假设你懂 TypeScript monorepo/Gateway/渠道协议。源码在仓库根的 src/skills/extensions/apps/
01

架构全景(动起来看)

下图那颗发光小球是"一条消息从渠道进来、穿过 Gateway 与 Agent、再从渠道出去"的旅程。从上到下:渠道 → 控制平面 → 大脑 → 底层执行。

L4 · Channels 渠道层(消息进/出)
Telegram / Slack即时通讯
WhatsApp / 飞书更多平台
WebChat / 语音网页与语音
L2 · Gateway 控制平面(编排核心)
路由渠道↔Agent
会话生命周期
配置workspace
HTTP/WS服务端
L3 · Agent 大脑 + 技能
LLM 抽象+故障转移
Agent 循环ReAct
Skills技能
Memory记忆
L1 · 运行时 / 安全 / 部署
SandboxDocker/podman
Security注入防御
Native AppsmacOS/iOS

OpenClaw 的心智模型是"渠道进 → Gateway 编排 → Agent 想+做 → 渠道出"——一条消息的循环:

渠道收到消息归一化 Gateway路由到 Agent Agent调 LLM/工具 回复原路送回
为什么是"控制平面 + 渠道 + 大脑"这种结构? 因为要在几十个不同聊天平台上提供"同一个助理",就必须把"平台差异(渠道)"和"助理智能(大脑)"解耦,中间用一个统一的控制平面(Gateway)粘合。这和你学过的 OpenHands"事件流 + Runtime"、eino"组件 + 编排"是同一种分层解耦思想,只是 OpenClaw 面向的是"消费级个人助理产品"。
02

怎么用这份教程

⏱️

每天 30 分钟

一天一个独立页面,跟着"今日小结 + 动手"收尾。

👶

零基础友好

不假设你懂 TS monorepo/Gateway/渠道协议,术语首次出现都有大白话解释。

📍

精确到行号

关键代码标 文件:行号,可在真源码里跳转对照。

一条主线:从"个人 AI 助理是什么、怎么启动",到"Gateway 怎么把渠道和大脑粘起来",到"Agent 大脑怎么想+做",再到"技能/渠道怎么扩展",最后是"沙箱/安全/原生应用/部署"。
W1

第 1 周 · 入门与全景

项目全景、启动、Gateway、消息旅程、配置
01

项目全景(个人 AI 助理)

OpenClaw 是什么、Gateway 控制平面、monorepo 目录地图、核心概念。

≈30 min · 已就绪 NEW开始学 →
02

入口与启动流程

openclaw.mjs、CLI、onboard 向导,进程怎么 boot 起来。

≈30 min开始学 →
03

Gateway 控制平面

协调渠道↔Agent、HTTP/WS 服务、它到底管什么。

≈30 min开始学 →
04

一条消息的完整旅程

渠道收到→归一化→路由→Agent→回复原路返回,端到端追踪。

≈30 min开始学 →
05

配置系统与 workspace

配置怎么加载(env/文件)、workspace 工作区概念。

≈30 min开始学 →
W2

第 2 周 · Agent 大脑

LLM 抽象、故障转移、Agent 循环、提示词、记忆
06

LLM 层与 provider 抽象

模型调用在哪、多 provider 抽象、模型选择。

≈30 min开始学 →
07

模型故障转移

OAuth vs API key 认证轮换 + fallback,模型挂了怎么办。

≈30 min开始学 →
08

Agent 执行循环

消息→LLM→工具调用→回复的 ReAct 式循环。

≈30 min开始学 →
09

提示词构造与上下文组装

system prompt、上下文拼装、模型看到的到底是什么。

≈30 min开始学 →
10

记忆系统

助理怎么记住上下文、记忆文件注入。

≈30 min开始学 →
W3

第 3 周 · 技能与渠道

skills、extensions、渠道抽象、渠道实现、归一化
11

技能系统 skills

skill 怎么定义/加载/调用,读 2-3 个真实技能。

≈30 min开始学 →
12

扩展系统 extensions

extension 是什么、和 skill 的区别、加载机制。

≈30 min开始学 →
13

渠道抽象接口

所有渠道实现的统一 Channel 接口:收/发/归一化。

≈30 min开始学 →
14

渠道实现举例

拆 2-3 个真实渠道:连接、收消息、发回复。

≈30 min开始学 →
15

消息归一化 + 语音 + Canvas

不同平台消息统一成内部类型、语音收发、Canvas 渲染。

≈30 min开始学 →
W4

第 4 周 · 运行时/安全/部署

沙箱、安全、原生应用、构建、部署收官
16

沙箱与运行时

Docker/podman 沙箱怎么安全执行工具/代码。

≈30 min开始学 →
17

安全纵深防御

提示词注入防御、审批、密钥管控(detect-secrets)。

≈30 min开始学 →
18

原生应用

macOS/iOS/Android 应用(Swift/Kotlin)怎么连 Gateway。

≈30 min开始学 →
19

构建系统与插件 SDK

pnpm workspace、tsdown、插件 SDK、测试策略。

≈30 min开始学 →
20

部署与收官串讲

docker-compose/fly/render 部署 + 全框架回顾 + 七框架对比。

≈30 min开始学 →

全部 20 天已就绪!建议按顺序学。准备好了就从 Day 01 · 项目全景 开始。