OpenClaw 源码深度解析:这只龙虾到底是怎么造出来的?

OpenClaw 源码深度解析:这只龙虾到底是怎么造出来的?🦞

"代码是写给人看的,顺便给机器跑跑。" --- 某只龙虾的哲学


前言:GitHub 里的龙虾王国

如果你以为 OpenClaw 就是几行代码凑合的玩具项目,那你完全错了。这只龙虾的代码库规模大得让人怀疑人生------src/ 目录有 50+ 子目录,extensions/ 支持 20+ 个平台,连 CHANGELOG 都有 693KB(是的,你没看错,是 KB,不是 B)。

今天,我要带你潜入 GitHub 源码海洋,看看这只龙虾到底是怎么从一堆 TypeScript 文件变成统治 AI 世界的庞然大物的。

警告:本文包含大量技术细节和 ASCII 艺术,建议边看代码边吃龙虾。


第一章:根目录的战争 🌲

打开 OpenClaw 的 GitHub 仓库,你会看到一个...嗯,非常"丰富"的根目录:

bash 复制代码
openclaw/
├── src/                    # 核心代码(龙虾的身体)
├── extensions/              # 扩展插件(龙虾的触手)
├── packages/                # 子包(龙虾的蛋?)
├── skills/                  # 技能插件(龙虾的超能力)
├── apps/                    # 原生应用(龙虾的移动端)
├── docs/                    # 文档(龙虾的日记)
├── assets/                  # 静态资源(龙虾的化妆包)
├── test/                    # 测试(龙虾的体检报告)
├── test-fixtures/           # 测试数据(龙虾的模拟题)
├── AGENTS.md                # AI 配置指南(龙虾的用户手册)
├── VISION.md                # 项目愿景(龙虾的梦想)
├── SECURITY.md              # 安全指南(龙虾的护城河)
├── CHANGELOG.md             # 更新日志(龙虾的回忆录,693KB!)
├── Dockerfile               # Docker 配置(龙虾的潜水艇)
├── docker-compose.yml       # Docker Compose(龙虾的航母编队)
├── package.json             # npm 配置(龙虾的身份证)
├── pnpm-lock.yaml           # 依赖锁定(龙虾的财产证明)
├── .github/                 # GitHub Actions(龙虾的流水线)
├── .gitignore               # Git 忽略文件(龙虾的隐私)
├── .pre-commit-config.yaml  # 预提交钩子(龙虾的强迫症)
├── .swiftformat             # Swift 格式化(龙虾的爱美之心)
├── ...还有一堆配置文件...

配图 1:根目录的混乱美学

bash 复制代码
┌─────────────────────────────────────────────────────────────────┐
│                   OpenClaw 根目录                             │
├─────────────────────────────────────────────────────────────────┤
│                                                              │
│   📂 src/          🦞 核心代码,50+ 子目录                    │
│                                                              │
│   📂 extensions/  🦞 20+ 平台扩展,触手伸向四面八方            │
│                                                              │
│   📂 packages/     🦞 子包,独立的逻辑单元                      │
│                                                              │
│   📂 skills/       🦞 技能插件,可插拔的超能力                    │
│                                                              │
│   📂 apps/         🦞 macOS/iOS/Android 原生应用               │
│                                                              │
│   📄 CHANGELOG.md  🦞 693KB 的回忆录(写手:这写不完啊!)      │
│                                                              │
│   🐳 Dockerfile    🦞 龙虾的潜水艇,一潜就是几天                │
│                                                              │
│   ⚙️ package.json  🦞 22.8KB 的配置(dependencies = 999+)   │
│                                                              │
└─────────────────────────────────────────────────────────────────┘

"我只是一只简单的龙虾" --- 龙虾本人

根目录的哲学

为什么这么多东西?因为 OpenClaw 不是个玩具项目,它是:

  • Gateway 控制平面:管理会话、消息、工具、事件
  • 多平台接入:支持 20+ 个消息平台
  • 原生应用生态:有 macOS 菜单栏、iOS、Android 应用
  • 插件系统:可扩展的 Skills 和 Extensions
  • 完整的工程化:测试、CI/CD、文档、多语言

这不是"周末练手项目",这是一支小型工程团队的工作成果。


第二章:src/ ------ 龙虾的身体构造 🦠

src/ 是 OpenClaw 的核心代码库,这里有 50+ 个子目录,每个都负责一块功能。让我解剖一下这只龙虾:

核心模块概览

r 复制代码
src/
├── gateway/           # 🧠 Gateway 核心(大脑)
├── channels/          # 📱 所有渠道的通用接口(手臂)
├── agents/            # 🤖 Agent Runtime(灵魂)
├── sessions/          # 💬 会话管理(记忆)
├── context-engine/    # 🧠 上下文引擎(思维)
├── routing/           # 🛣️ 消息路由(神经)
├── cron/              # ⏰ 定时任务(生物钟)
├── plugins/           # 🔌 插件系统(超能力)
├── browser/           # 🌐 浏览器控制(眼睛)
├── canvas-host/       # 🎨 Canvas 宿主(画布)
├── discord/           # 💬 Discord 实现(手臂 A)
├── telegram/          # 💬 Telegram 实现(手臂 B)
├── slack/             # 💬 Slack 实现(手臂 C)
├── signal/            # 💬 Signal 实现(手臂 D)
├── line/              # 💬 LINE 实现(手臂 E)
├── iMessage/          # 💬 iMessage 实现(手臂 F)
├── ...20+ 更多渠道...
├── cli/               # 💻 命令行工具(嘴巴)
├── daemon/            # 🔄 后台守护进程(心脏)
├── pairing/           # 🔗 设备配对(握手)
├── node-host/         # 📱 节点宿主(爪子)
├── security/          # 🔒 安全模块(护甲)
├── providers/         # ☁️ LLM 提供商(大脑皮层)
├── memory/            # 🧠 记忆系统(海马体)
├── media/             # 🖼️ 媒体处理(视觉神经)
├── logging/           # 📝 日志系统(日记)
└── shared/            # 🤝 共享工具(器官库)

Gateway 核心架构

src/gateway/ 是整个项目的心脏,负责:

  • WebSocket 服务器ws://127.0.0.1:18789
  • 会话管理:创建、查询、删除会话
  • 消息路由:把消息分发给正确的 Agent
  • 工具调用:执行 AI 请求的工具操作
  • 事件分发:把事件推送给订阅者

配图 2:Gateway 的神经系统

markdown 复制代码
                          ┌─────────────────┐
                          │   Gateway WS    │
                          │   :18789        │
                          └───────┬─────────┘
                                  │
               ┌────────────────────┼────────────────────┐
               │                    │                    │
         ┌─────▼─────┐        ┌─────▼─────┐      ┌─────▼─────┐
         │   CLI     │        │ WebChat   │      │  Nodes    │
         │  客户端   │        │  UI       │      │  (iOS/    │
         │           │        │           │      │   Android) │
         └───────────┘        └───────────┘      └───────────┘

WebSocket 是 Gateway 的神经系统,连接所有器官。
断一根触手?没事,还有 20+ 根。

Channels:20+ 只手臂

src/channels/ 定义了所有渠道的通用接口,然后每个平台有独立实现:

渠道 目录 实现方式
Discord src/discord/ discord.js
Telegram src/telegram/ grammY
Slack src/slack/ Bolt
Signal src/signal/ signal-cli
LINE src/line/ LINE Bot API
WhatsApp extensions/bluebubbles/ BlueBubbles
iMessage src/imessage/ imsg CLI
飞书 extensions/feishu/ 飞书开放平台
... ... ...

配图 3:Channel 实现的多样性

scss 复制代码
┌──────────────────────────────────────────────────────────────┐
│                    Channels 大全家福                          │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│   💬 Discord      →  discord.js  →  WebSocket + HTTP      │
│                                                              │
│   💬 Telegram     →  grammY       →  Bot API + Long Poll   │
│                                                              │
│   💬 Slack        →  Bolt         →  Socket Mode            │
│                                                              │
│   📱 Signal       →  signal-cli   →  DBus IPC              │
│                                                              │
│   📱 iMessage     →  imsg CLI     →  AppleScript (😓)      │
│                                                              │
│   💬 WhatsApp     →  BlueBubbles  →  WebSocket Relay        │
│                                                              │
│   🇨🇳 飞书          →  Feishu API   →  Webhook + Stream    │
│                                                              │
│   💬 LINE         →  LINE Bot     →  HTTP Webhook          │
│                                                              │
│   ... 还有 15+ 个平台...                                      │
│                                                              │
│   每只手臂都长不一样,但都能干活。                             │
│   就像龙虾,触手多了就是麻烦------但也是资本。                        │
└──────────────────────────────────────────────────────────────┘

Agent Runtime:大脑的思考方式

src/agents/ 是 AI 运行时,负责:

  • LLM 调用:调用 OpenAI、Anthropic、或其他提供商
  • 工具执行:执行 AI 要求的操作(读文件、执行命令等)
  • 上下文管理:决定保留哪些历史消息,什么时候压缩
  • 流式输出:支持流式响应和分块发送

关键文件

  • src/agents/:Agent 核心逻辑
  • src/context-engine/:上下文压缩引擎
  • src/providers/:LLM 提供商适配器

配图 4:Agent 的思考流程

bash 复制代码
用户消息进入
      ↓
┌─────────────────────────────────────────┐
│         Agent Runtime                  │
├─────────────────────────────────────────┤
│                                         │
│  1. 收集上下文                          │
│     ├── 从 Sessions 加载历史              │
│     ├── 注入 Workspace 文件             │
│     ├── 注入 Skills 工具定义             │
│     └── 应用 Context Engine 压缩          │
│                                         │
│  2. 构建 Prompt                        │
│     ├── 系统提示词                       │
│     ├── 用户历史                         │
│     ├── 工具定义                         │
│     └── 当前消息                         │
│                                         │
│  3. 调用 LLM                          │
│     ├── 选择提供商(OpenAI/Anthropic...) │
│     ├── 选择模型(GPT-4/Claude...)       │
│     └── 流式响应                         │
│                                         │
│  4. 处理工具调用                        │
│     ├── 解析工具请求                      │
│     ├── 执行操作(read/exec/browser...)  │
│     └── 返回结果给 LLM                   │
│                                         │
│  5. 输出响应                           │
│     ├── 流式推送到客户端                    │
│     ├── 分块发送(如果启用 Block Streaming) │
│     └── 保存到 Sessions                  │
│                                         │
└─────────────────────────────────────────┘

这就是龙虾的"思考方式"。

第三章:extensions/ ------ 龙虾的触手延伸 🐙

extensions/ 是 OpenClaw 的扩展系统,支持 20+ 个平台。每个扩展都是一个独立的模块,包含:

  • 平台适配:把消息转换成 OpenClaw 格式
  • 认证逻辑:处理登录和授权
  • 媒体处理:处理图片、音频、文件
  • 平台特性:支持每个平台的特殊功能(如 Discord 的表情反应)

支持的平台(不完整列表)

bash 复制代码
extensions/
├── acpx/                   # ACP 编码代理(Claude Code 等)
├── bluebubbles/            # WhatsApp(通过 BlueBubbles 服务器)
├── discord/                # Discord
├── feishu/                 # 飞书
├── googlechat/             # Google Chat
├── imessage/               # iMessage(BlueBubbles 模式)
├── irc/                    # IRC
├── line/                   # LINE
├── mattermost/             # Mattermost
├── matrix/                 # Matrix
├── msteams/                # Microsoft Teams
├── nostr/                  # Nostr
├── signal/                 # Signal
├── slack/                  # Slack
├── synology-chat/          # Synology Chat
├── telegram/               # Telegram
├── thread-ownership/       # Discord 线程所有权
├── tlon/                   # Tlon
├── twitch/                 # Twitch
├── ...更多...

配图 5:Extensions 的矩阵

scss 复制代码
┌──────────────────────────────────────────────────────────────┐
│              Extensions 支持矩阵                              │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│   类型         数量   示例                                   │
│   ──────────────────────────────────────────                  │
│   💬 聊天软件      12+   Discord, Telegram, Slack,      │
│                       Signal, LINE, 飞书...                  │
│                                                              │
│   📱 消息应用      3+    WhatsApp (BlueBubbles),            │
│                       iMessage, Signal                       │
│                                                              │
│   💼 企业协作      3+    Slack, Mattermost,               │
│                       Google Chat, Teams                  │
│                                                              │
│   🔗 去中心化      2+    Matrix, Nostr                     │
│                                                              │
│   🎮 直播平台      1+    Twitch                            │
│                                                              │
│   💻 开发者工具    1+    IRC                               │
│                                                              │
│   🦞 AI 编码      1+    ACP(Claude Code, Codex...)       │
│                                                              │
│   ──────────────────────────────────────────                  │
│   总计: 20+ 个平台                                          │
│                                                              │
│   龙虾:触手不是越多越好,而是"哪里有消息哪里就有我"。             │
└──────────────────────────────────────────────────────────────┘

插件架构

每个扩展都实现一套标准接口:

typescript 复制代码
interface ChannelExtension {
  name: string;                    // 扩展名称
  version: string;                 // 版本号
  connect(): Promise<void>;         // 连接
  disconnect(): Promise<void>;      // 断开
  sendMessage(msg: Message): Promise<void>;  // 发送消息
  onMessage(callback: (msg: Message) => void): void;  // 接收消息
  // ... 更多方法
}

这样设计的好处:

  • 模块化:每个平台独立开发,互不干扰
  • 可插拔:不需要某个平台,就不安装那个扩展
  • 易于维护:修复 WhatsApp 的 Bug 不影响 Discord

第四章:packages/ ------ 龙虾的孵化场 🥚

packages/ 包含独立的子包,每个子包都是一个 npm 包:

bash 复制代码
packages/
├── clawdbot/         # 龙虾机器人(Discord Bot)
└── moltbot/          # 换壳机器人(版本迁移工具)

这些包可以独立发布和使用,虽然目前主要是内部工具。

配图 6:Packages 的孵化器

复制代码
┌──────────────────────────────────────────────────────────────┐
│                   Packages 孵化器                            │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│   🥚 clawdbot/                                              │
│      Discord 机器人,用于社区互动                            │
│      状态:孵化完成,发布中...                                │
│                                                              │
│   🥚 moltbot/                                               │
│      版本迁移工具,帮你从旧版本升级                          │
│      状态:正在成长,别急...                                  │
│                                                              │
│   🥚 未来可能还会有...                                        │
│      • openclaw-web(Web 控制台独立包)                      │
│      • openclaw-cli(命令行工具独立包)                        │
│      • openclaw-sdk(SDK,让别人也能集成)                     │
│                                                              │
│   龙虾:先有个想法,再孵化。代码也一样。                         │
└──────────────────────────────────────────────────────────────┘

第五章:skills/ ------ 龙虾的超能力库 ⚡

skills/ 存放技能插件,每个技能都是 AI 的一个"超能力":

php 复制代码
skills/
├── weather/              # 查询天气
├── feishu-doc/           # 飞书文档读写
├── feishu-drive/         # 飞书云盘
├── feishu-wiki/          # 飞书知识库
├── healthcheck/          # 系统安全审计
├── coding-agent/         # 代码生成(调用 Codex/Claude Code)
├── skill-creator/        # 创建新技能
├── skill-vetter/        # 技能安全审核
├── self-improvement/    # 自我学习记录
├── tavily-search/        # 网络搜索(Tavily API)
├── ...更多...

技能的结构

每个技能都有标准的结构:

bash 复制代码
skills/weather/
├── SKILL.md              # 技能说明(AI 会读取这个)
├── scripts/              # 脚本文件
│   └── get-weather.sh
├── references/           # 参考文档
└── test/                 # 测试文件

SKILL.md 是关键,AI 会读取它来了解技能的使用方法:

markdown 复制代码
# Weather Skill

查询当前天气和预报。

## 使用时机

当用户询问天气、温度、预报时激活。

## API

使用 wttr.in 或 Open-Meteo API,无需 API Key。

配图 7:Skills 的超能力库

lua 复制代码
┌──────────────────────────────────────────────────────────────┐
│                  Skills 超能力图书馆                          │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│   🌤️ weather           查天气                              │
│      "今天上海天气怎么样?"                                     │
│                                                              │
│   📄 feishu-doc        读写飞书文档                          │
│      "帮我把这个内容写到飞书文档里"                              │
│                                                              │
│   🔒 healthcheck       系统安全审计                            │
│      "检查一下我的服务器安不安全"                                 │
│                                                              │
│   💻 coding-agent      写代码(调用 Codex)                   │
│      "帮我写个爬虫脚本"                                        │
│                                                              │
│   🔍 tavily-search     网络搜索                              │
│      "搜索一下最新的 AI 新闻"                                    │
│                                                              │
│   🦾 skill-vetter      技能安全审核                            │
│      "这个技能安全吗?"                                         │
│                                                              │
│   📈 self-improvement 自我学习                              │
│      AI 记住每次的错误和改进                                     │
│                                                              │
│   ──────────────────────────────────────────                  │
│   加载顺序:Workspace > Managed > Bundled                     │
│   你可以写自己的技能,覆盖默认的。                               │
│                                                              │
│   龙虾:超能力不是天生的,是插件出来的。                          │
└──────────────────────────────────────────────────────────────┘

第六章:apps/ ------ 龙虾的移动端 📱

apps/ 包含原生应用代码:

bash 复制代码
apps/
├── mac/                 # macOS 菜单栏应用(Swift)
├── ios/                 # iOS 节点应用(Swift)
└── android/             # Android 节点应用(Kotlin)

macOS 应用

功能

  • 菜单栏控制面板
  • Voice Wake(语音唤醒)
  • Talk Mode(语音对话)
  • WebChat 集成
  • 远程 Gateway 控制
  • 调试工具

技术栈:Swift + SwiftUI

iOS 节点

功能

  • Canvas 画布
  • 相机拍照
  • 屏幕录制
  • 位置获取
  • 语音交互
  • 设备配对

技术栈:Swift + UIKit

Android 节点

功能

  • Connect 标签页(配对)
  • Chat Sessions(聊天)
  • Voice Tab(语音)
  • Canvas/相机
  • 设备控制(通知/联系人/日历/动作/照片/SMS)
  • Motion 传感器

技术栈:Kotlin + Jetpack Compose

配图 8:Apps 生态

sql 复制代码
┌──────────────────────────────────────────────────────────────┐
│                    Apps 移动端生态                           │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│   🍎 macOS App                                              │
│      ┌─────────────────┐                                    │
│      │  🦞 菜单栏图标    │                                    │
│      │  ├─ 状态监控      │                                    │
│      │  ├─ 配置管理      │                                    │
│      │  ├─ Voice Wake   │                                    │
│      │  ├─ Talk Mode    │                                    │
│      │  └─ 调试工具      │                                    │
│      └─────────────────┘                                    │
│      "龙虾在 macOS 上,优雅地坐在菜单栏里"                        │
│                                                              │
│   📱 iOS Node                                               │
│      ┌─────────────────┐                                    │
│      │  🎨 Canvas      │                                    │
│      │  📷 相机         │                                    │
│      │  🎬 屏幕录制      │                                    │
│      │  📍 位置         │                                    │
│      │  🎤 语音         │                                    │
│      └─────────────────┘                                    │
│      "iOS:龙虾的远程触手,随时待命"                              │
│                                                              │
│   🤖 Android Node                                           │
│      ┌─────────────────┐                                    │
│      │  🔗 Connect     │                                    │
│      │  💬 Chat        │                                    │
│      │  🎤 Voice       │                                    │
│      │  🎨 Canvas      │                                    │
│      │  📷 Camera      │                                    │
│      │  📱 Device Ctrl │                                    │
│      └─────────────────┘                                    │
│      "Android:龙虾的瑞士军刀,什么都会一点"                         │
│                                                              │
│   所有 App 都通过 WebSocket 连接到 Gateway                         │
│   配对机制保证安全,远程访问通过 Tailscale 或 SSH                   │
└──────────────────────────────────────────────────────────────┘

第七章:关键设计模式 ------ 龙虾的哲学 🧠

1. 单一 Gateway,多触手

设计原则:每个主机只有一个 Gateway

为什么?因为:

  • WhatsApp 只能有一个会话
  • 避免多进程冲突
  • 简化状态管理
  • 统一控制平面

2. WebSocket 控制平面

所有客户端都通过 WebSocket 连接到 Gateway:

markdown 复制代码
Client (CLI/WebChat/App) ──WebSocket──> Gateway
                                                    │
                                                    ├──> Agent Runtime
                                                    ├──> Sessions
                                                    ├──> Cron
                                                    ├──> Channels
                                                    └──> Tools

优点:

  • 实时双向通信
  • 事件推送(AI 响应流式传输)
  • 统一协议
  • 易于扩展

3. Workspace 和 Session

  • Workspace~/.openclaw/workspace,用户的工作空间
  • Session :每个对话会话,存储在 ~/.openclaw/agents/<agentId>/sessions/

设计意图:

  • 用户有自己的"家"(Workspace)
  • 每个对话是独立的房间(Session)
  • 可选隔离:多人使用时,每个用户的 DM 完全独立

4. 插件和扩展系统

  • Skills:功能插件,AI 自动选择何时使用
  • Extensions:平台扩展,支持新的消息平台

设计哲学:

  • "你不需要什么,就不安装什么"
  • 社区可以贡献新的 Skills 和 Extensions
  • 模块化,易于维护

5. 安全多层防护

scss 复制代码
┌─────────────────────────────────────┐
│      用户连接请求                    │
└────────────┬────────────────────────┘
             │
             ▼
┌─────────────────────────────────────┐
│  1. Gateway Token 认证            │
│     (防止未授权访问)                 │
└────────────┬────────────────────────┘
             │
             ▼
┌─────────────────────────────────────┐
│  2. 设备配对                     │
│     (防止陌生人连接)                 │
└────────────┬────────────────────────┘
             │
             ▼
┌─────────────────────────────────────┐
│  3. 通道白名单                     │
│     (限制谁能发消息)                 │
└────────────┬────────────────────────┘
             │
             ▼
┌─────────────────────────────────────┐
│  4. 会话隔离                     │
│     (防止信息泄露)                  │
└────────────┬────────────────────────┘
             │
             ▼
┌─────────────────────────────────────┐
│  5. 工具策略                      │
│     (限制哪些工具可用)               │
└─────────────────────────────────────┘

第八章:工程化实践 ------ 龙虾的强迫症 🧹

CI/CD

.github/workflows/ 包含 GitHub Actions 配置:

  • CI 测试:每次 PR 自动运行
  • 自动发布:打 tag 自动发布 npm 包
  • 多平台测试:macOS, Linux, Windows (WSL2)

代码质量

yaml 复制代码
.pre-commit-config.yaml  # 预提交钩子
.oxlintrc.json        # Oxlint 代码检查
.oxfmtrc.jsonc         # Oxfmt 代码格式化
.swiftformat           # Swift 格式化
.swiftlint.yml         # Swift Lint

OpenClaw 团队对代码质量的要求:

  • Pre-commit:提交前自动检查
  • 多语言 Lint:TypeScript, Swift, Kotlin
  • 自动格式化:保持代码风格一致
  • 测试覆盖:关键模块必须有测试

文档

bash 复制代码
docs/
├── concepts/           # 概念文档
│   ├── architecture.md
│   ├── agent.md
│   ├── session.md
│   └── ...
├── gateway/            # Gateway 文档
├── channels/           # 渠道文档
├── platforms/          # 平台文档(macOS/iOS/Android)
├── tools/             # 工具文档
├── automation/         # 自动化文档(Cron/Webhook)
└── install/            # 安装文档

配图 9:工程化工具链

bash 复制代码
┌──────────────────────────────────────────────────────────────┐
│                工程化工具链(龙虾的强迫症)                     │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│   📝 代码开发                                                 │
│      ├── TypeScript(核心)                                   │
│      ├── Swift(macOS/iOS)                                  │
│      └── Kotlin(Android)                                   │
│                                                              │
│   ✅ 代码检查                                                 │
│      ├── Oxlint(TS)                                       │
│      ├── SwiftLint(Swift)                                  │
│      └── ktlint(Kotlin)                                   │
│                                                              │
│   🎨 代码格式化                                              │
│      ├── Oxfmt(TS)                                        │
│      ├── SwiftFormat(Swift)                                 │
│      └── ktfmt(Kotlin)                                    │
│                                                              │
│   🧪 测试                                                   │
│      ├── Vitest(TS)                                       │
│      ├── XCTest(Swift)                                    │
│      └── JUnit(Kotlin)                                    │
│                                                              │
│   🚀 CI/CD                                                  │
│      ├── GitHub Actions                                      │
│      ├── 自动测试                                             │
│      └── 自动发布                                             │
│                                                              │
│   📚 文档                                                   │
│      ├── Markdown 文档                                         │
│      ├── 注释驱动的文档                                        │
│      └── README 优先                                         │
│                                                              │
│   龙虾:代码不是写完就行的,是要有仪式感的。                        │
└──────────────────────────────────────────────────────────────┘

第九章:代码统计 ------ 龙虾的规模 📊

粗略统计(不包含 node_modules 和构建产物):

指标 数值
源码文件数(src/) 500+
TypeScript 代码行数 50,000+
扩展数量 20+
支持的平台 20+
CHANGELOG 大小 693 KB
README 大小 123 KB
配置文件数 50+
技能数量 15+

配图 10:代码统计可视化

css 复制代码
┌──────────────────────────────────────────────────────────────┐
│                  代码统计(粗略估算)                         │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│   📂 源码文件数        [███████████████████] 500+           │
│                                                              │
│   📝 TypeScript 代码  [███████████████████████████] 50,000+  │
│                                                              │
│   🦞 扩展数量         [██████████████] 20+                    │
│                                                              │
│   💬 支持的平台       [██████████████] 20+                    │
│                                                              │
│   📄 CHANGELOG 大小   [███████████████████████████] 693 KB    │
│                                                              │
│   📄 README 大小      [████████████████] 123 KB                │
│                                                              │
│   ⚙️ 配置文件数       [██████████] 50+                       │
│                                                              │
│   ⚡ 技能数量         [██████████] 15+                       │
│                                                              │
│   这不是个周末项目,这是支小型的工程团队。                         │
└──────────────────────────────────────────────────────────────┘

第十章:为什么 OpenClaw 很牛?🤔

1. 真正的去中心化

不是 SaaS,不是云服务,是你自己的

数据在你硬盘上,运行在你机器上。没人能偷走你的聊天记录,没人能监控你跟 AI 说什么。

2. 多平台统一支持

20+ 个平台,一个 Gateway 统一管理。你不需要切换应用,也不需要复制粘贴。

3. 开源且 MIT 许可

你可以修改、分发、商用。没人逼你付费。

4. 完整的工程化

这不是玩具项目,这是:

  • 完整的 CI/CD
  • 严格的代码检查
  • 详细的文档
  • 多平台支持
  • 持续的维护

5. 可扩展架构

  • 写个 Skill,就能加新功能
  • 写个 Extension,就能支持新平台
  • 写个 App,就能做原生客户端

配图 11:OpenClaw 的生态系统

复制代码
┌──────────────────────────────────────────────────────────────┐
│               OpenClaw 生态系统                              │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│   🏛️ 核心代码库                                            │
│      ├── Gateway(控制平面)                                  │
│      ├── Agent Runtime(AI 运行时)                           │
│      ├── Channels(20+ 平台)                                │
│      └── Plugins(插件系统)                                  │
│                                                              │
│   🦵 扩展生态                                               │
│      ├── 社区贡献的 Extensions                                │
│      ├── ClawHub(技能注册表)                                │
│      └── 用户自定义 Skills                                    │
│                                                              │
│   📱 原生应用                                               │
│      ├── macOS 菜单栏                                        │
│      ├── iOS 节点                                            │
│      └── Android 节点                                        │
│                                                              │
│   📚 文档和教程                                              │
│      ├── docs.openclaw.ai                                     │
│      ├── GitHub Wiki                                         │
│      └── 社区教程                                            │
│                                                              │
│   🏢 企业支持                                               │
│      ├── Tailscale 集成                                      │
│      ├── Docker 部署                                         │
│      └── 远程 Gateway 管理                                    │
│                                                              │
│   这不是单个项目,这是一个小型的生态系统。                          │
└──────────────────────────────────────────────────────────────┘

结语:代码背后的人 🦞

OpenClaw 不是凭空出现的,它是:

  • Peter Steinberger (@steipete):创始人,核心开发
  • 数百位贡献者:来自社区的各种贡献
  • 持续的迭代:CHANGELOG 有 693 KB 说明了一切

配图 12:代码背后的人

less 复制代码
┌──────────────────────────────────────────────────────────────┐
│                  代码背后的人                               │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│   👨‍💻 核心开发者                                              │
│      Peter Steinberger (@steipete)                           │
│      "一只龙虾,一个梦想,一行代码"                               │
│                                                              │
│   🤝 社区贡献者                                              │
│      数百位来自世界各地                                        │
│      "每个人都能让龙虾更强大"                                    │
│                                                              │
│   🎯 设计哲学                                                │
│      • 本地优先(Local First)                                │
│      • 隐私保护(Privacy by Design)                           │
│      • 可扩展(Extensible)                                  │
│      • 开源(Open Source)                                   │
│                                                              │
│   🚀 未来方向                                                │
│      • 更多平台支持                                            │
│      • 更好的用户体验                                          │
│      • 更强的 AI 能力                                          │
│      • 更完善的文档                                            │
│                                                              │
│   "代码是写给人看的,顺便给机器跑跑。"                              │
│   ------ 某只龙虾的哲学                                           │
└──────────────────────────────────────────────────────────────┘

"EXFOLIATE! EXFOLIATE!" --- 龙虾的最后一声呐喊


附录:资源链接


相关推荐
暮色妖娆丶17 天前
Spring 源码分析 Lifecycle Bean
spring boot·spring·源码
luoluoal25 天前
基于python的医疗知识图谱问答系统(源码+文档)
python·mysql·django·毕业设计·源码
2501_937145411 个月前
神马影视 8.8 2026 版:电视 / 戏曲 / 动画全品类源码系统解析
源码·电视盒子·源代码管理·刷机包
EnzoRay1 个月前
apk的安装过程
源码
源码宝1 个月前
无需从零开发:医院智慧随访系统完整源码,一键快速部署
java·开源·源码·随访·随访系统源码·医院随访
千寻技术帮1 个月前
10352_基于Springboot的房屋销售平台
java·spring boot·mysql·vue·源码·代码·远程
工业互联网专业1 个月前
基于协同过滤算法的招聘信息推荐系统 _django+spider
python·django·毕业设计·源码·课程设计·协同过滤·spider
luoluoal1 个月前
基于python的医疗问句中的实体识别算法的研究(源码+文档)
python·mysql·django·毕业设计·源码