最近几个月,OpenClaw 几乎刷屏了整个 AI 智能体圈子。网上到处都是“一键部署”“远程控制手机”“Telegram 养虾”这类教程,但我翻了一圈,几乎没人把它到底怎么跑起来的讲清楚。大家都在用,却很少有人真正理解:
为什么一句话就能让电脑整理文件、让远端手机自动截屏?
多设备是怎么被统一调度的?
AI 凭什么敢直接操作你的桌面与文件?

我花了几天时间把源码和架构文档啃完,然后翻阅了网上大量的教程和讲解视频以及架构的解析,今天用最通俗、最贴近开发视角的方式,把 OpenClaw 的6+1 核心架构、数据流转、调度逻辑、安全机制一次性讲透。
这篇不教安装、不教命令,只讲原理——懂了原理,你才能真正用好、改得动、排得了坑。


一、为什么我们必须看懂 OpenClaw 架构?

在开始讲架构之前,我想先说说我为什么非要把它啃明白。

现在市面上绝大多数教程都停留在:
openclaw start → 绑定 Telegram → 发指令 → 看效果。
能用,但出问题就抓瞎

  • 指令发了没反应,不知道是通道挂了、网关死了、还是技能没加载;
  • 想加个功能,不知道代码该写在哪;
  • 想接自己的大模型,不知道 LLM 层怎么扩展;
  • 想控制权限,不知道安全机制在哪。

说白了,只会用,就是黑盒;懂架构,才是自己人

对我们来说,OpenClaw 还有一层更重要的意义:
它是一套极其工整、可直接抄作业的“AI 智能体架构”

它把这些最难的问题全部做成了标准范式:

  • 多平台消息怎么统一接入?(Channel 层)
  • 多设备怎么统一管控?(Gateway + Node)
  • 智能体怎么思考、调用工具?(PiAgent + Skills)
  • 模型怎么插拔、怎么安全调用?(LLM 层)
  • 整套系统怎么可视化管控?(Studio 控制台)

你只要看懂这套结构,以后自己做 AI 助手、做远程控制、做跨端智能体,几乎可以直接照搬这套架构

这就是我为什么坚持要把 OpenClaw 架构讲透:
会用是体验,懂原理是能力;会抄是教程,懂架构是工程。


二、OpenClaw 核心架构:6+1 模块化设计(我理解的最清晰版本)

我先给结论:
OpenClaw = 6 个功能模块 + 1 个治理模块(6+1 架构)

  • 6 个功能模块:负责真正干活(收消息、思考、调度模型、调用设备、执行技能)。
  • 1 个治理模块:负责管控一切(可视化配置、查看状态、管理权限、监控日志)。

我用最直白的比喻帮你一秒记住:

  1. Gateway(网关) = 大脑中枢 + 总调度台
  2. Channel(渠道) = 嘴巴/耳朵(和用户聊天)
  3. PiAgent(推理引擎) = 思考中枢(理解意图、决定做什么)
  4. LLM(大模型) = 知识与逻辑引擎(真正做推理)
  5. Nodes(节点) = 手脚(真正在设备上执行操作)
  6. Skills(技能) = 操作手册(告诉节点该做什么)
  7. OpenClaw Studio(控制台) = 指挥中心(可视化管控)

下面我把每一层的职责、源码位置、工作方式,用直白易懂的方式讲清楚。
在这里插入图片描述


2.1 Gateway:整个系统的“内核与调度中心”

Gateway 是 OpenClaw 真正的心脏
所有消息、所有指令、所有设备、所有会话,全部先经过这里

我把它的核心职责总结成 4 件事:

  1. 统一入口
    不管是 Telegram、Web、飞书、Discord,所有消息先进 Gateway,再分发。

  2. 会话与上下文管理
    记住你说过什么、做过什么,给 PiAgent 提供记忆。

  3. 指令路由与调度
    判断这条指令该走模型?走技能?走本地?走远端?

  4. 长连接维护(WebSocket)
    跟所有远程设备(手机、电脑)保持稳定在线。

源码位置我帮你定位死:

  • 主入口:src/gateway/server.impl.ts
  • 启动函数:startGatewayServer
  • 默认端口:18789(你访问 127.0.0.1:18789 就是连到 Gateway)

一句话总结 Gateway:
没有它,整个 OpenClaw 直接瘫痪。它是调度,也是边界,也是安全入口。


2.2 Channel:统一接入所有聊天平台

Channel 层干的事情非常单纯:
把各种平台的消息,翻译成 OpenClaw 内部统一格式。

比如:

  • Telegram 来的消息结构是 A;
  • WhatsApp 来的是 B;
  • Web 页面来的是 C;

Channel 统一把它们转成系统能读懂的 JSON,扔给 Gateway。

支持的渠道分两类:

  1. 核心渠道(内置)
    Telegram、WhatsApp、Web UI
  2. 扩展渠道(插件化)
    飞书、Discord、Matrix、Google Chat 等

源码位置:

  • 主渠道:src/telegramsrc/whatsapp
  • 扩展渠道:extensions/

我对 Channel 层的评价非常高:
它把“交互界面”和“业务逻辑”彻底解耦。
你想加个微信渠道、QQ 渠道,完全不用动核心逻辑,只接 Channel 扩展点即可。


2.3 PiAgent:智能体的“思考与推理引擎”

很多人以为 AI 思考是 LLM 在做。
不完全对。

在 OpenClaw 里:

  • LLM 负责“懂知识、做逻辑”
  • PiAgent 负责“管流程、做决策、控上下文”

PiAgent 是典型的 ReAct 智能体架构,它干三件关键事情:

  1. 把用户指令 + 历史记忆 + 提示词拼好,喂给 LLM;
  2. 解析 LLM 返回的结果,判断:
    • 直接回答?
    • 要调用工具(Skill)?
    • 要调用哪台设备(Node)?
  3. 把结果整理成人话,返回给 Gateway。

它还有两个非常工程化的优化,我看完觉得很专业:

  • 记忆瘦身:自动把太长的聊天记录压缩,防止上下文爆炸;
  • 请求排队:同一会话串行执行,避免并发混乱。

源码位置:

  • src/agents/

一句话看懂 PiAgent:
它是智能体的“调度大脑”,LLM 是它的“计算芯片”。


2.4 LLM:真正提供“智能”的模型层

LLM 层就是 OpenClaw 的智商来源

它的设计非常“插拔式”,这也是我最欣赏的一点:
你可以无缝切换任何模型,不影响上层业务。

支持三类模型:

  1. 云端 API(Claude / GPT / 通义千问 / Gemini)
  2. 本地模型(Ollama / LlamaCpp / 本地部署)
  3. 专用模型(GitHub Copilot 等)

源码位置:

  • src/providers/
    里面全是各种模型的适配:
    github-copilot-models.ts
    qwen-portal-oauth.ts
    ……

我在看代码的时候发现一个关键点:
LLM 只输出结构化指令,不直接返回聊天文本。
这是它能稳定调用工具、控制设备的关键。


2.5 Nodes + Skills:智能体的“手脚 + 操作手册”

这是 OpenClaw 最厉害、也最容易被误解的部分。
我用最直白的话讲清楚:

  • Skills = 技能说明书(做什么、怎么做、参数是什么)
  • Nodes = 执行器(在哪台设备上做)

两者必须配合,缺一不可。

2.5.1 Skills(技能)

Skills 就是一组标准化的“操作定义”。
例如:

  • 文件整理
  • 截屏
  • 拍照
  • 打开软件
  • 搜索网页
  • 运行命令

每个 Skill 都有明确格式:

  • 名称
  • 描述
  • 输入参数
  • 执行逻辑

源码位置:

  • 通用技能:skills/
  • 技能管理:src/agents/skills/
2.5.2 Nodes(节点 = 设备)

Nodes 分两种:

  1. 本地节点(Local Node)
    就在运行 Gateway 的这台机器上。
    能干:文件操作、命令执行、本地工具。

  2. 远端节点(Remote Node)
    同一局域网内的其他设备:
    MacBook、iPhone、Android、平板……
    通过 WebSocket 长连接连到 Gateway。

远端节点是 OpenClaw 真正杀招:
一句话控制你家里所有设备。

源码位置:

  • 客户端连接:src/node-host/runner.ts
  • 指令执行:src/node-host/invoke.ts

我总结一句最精髓的:
Skills 定义“做什么”,Nodes 决定“在哪做”。


2.6 OpenClaw Studio:可视化管控控制台(1 个治理模块)

6 个功能模块讲完,最后是1 个治理模块
OpenClaw Studio

它就是一个 Web 管理后台:
http://127.0.0.1:18789

界面如下主体分为左边的功能栏和右边的详情栏:
在这里插入图片描述

功能很清晰:

  • 聊天界面(直接在这里发指令)
  • 渠道配置(绑定 Telegram 等)
  • Skills 管理(开启/关闭技能)
  • 设备节点状态(看哪些设备在线)
  • 日志查看(排错神器)

源码位置:

  • ui/

它的价值:
把一个纯命令行、纯后端的系统,变成了普通人也能用的可视化产品。


三、整体架构流转

我把整套架构串成一条线,你看完就彻底通了:

  1. 用户在 Telegram 发指令
  2. Channel 接收 → 转成标准消息 → 发给 Gateway
  3. Gateway 保存上下文 → 发给 PiAgent
  4. PiAgent 拼接提示词 → 发给 LLM 推理
  5. LLM 判断:要调用 Skill + Node
  6. 结果返回 PiAgent
  7. PiAgent 告诉 Gateway:调度哪个技能、哪台设备
  8. Gateway 通过 WebSocket 发给对应 Node
  9. Node 执行 Skill(截屏/整理文件/运行命令)
  10. 结果回传 Gateway
  11. PiAgent 整理成人话
  12. Channel 发给用户

这就是 OpenClaw 从“一句话”到“执行动作”的完整链路。


四、运行演示案例(我亲手跑的两个真实场景)

光讲架构太空,我直接拿两个最经典的场景,把每一步怎么走的讲清楚。


案例1:本地执行——“帮我整理 Downloads 文件夹”

这是最典型的 本地节点 + 通用 Skill 流程。

步骤我一步步拆解:

  1. 用户发指令
    在 Telegram 发送:

    帮我整理 Downloads 文件夹里的文件,按类型分文件夹

  2. Channel 接收
    Telegram Channel 拿到消息,转成内部结构。

  3. 进入 Gateway
    记录会话、保存上下文。

  4. PiAgent 推理
    把指令丢给 LLM。
    LLM 分析:

    • 意图:文件整理
    • 技能:file_organize
    • 执行位置:本地节点(Local Node)
      输出结构化指令。
  5. Gateway 调度
    识别是本地通用技能 → 直接发给 Local Node。

  6. Node 执行 Skill
    本地节点执行:

    • 读取 Downloads
    • 按图片/文档/压缩包分类
    • 新建文件夹
    • 移动文件
  7. 结果回传
    执行完成 → 回传结果 → Gateway → PiAgent → 生成总结 → 发回 Telegram。

这就是“桌面控制”的完整原理。

下面我用一组流程图来演示这个过:

通信通道

本地节点 Local Node

OpenClaw 服务器总架构

用户 Telegram
1. 发送指令:
'帮我整理 Downloads 文件夹里的文件,按类型分文件夹'

Telegram Channel
2. 接收消息
转成内部结构

Gateway
3. 记录会话
保存上下文

PiAgent 推理 LLM
4. 分析意图:
- 意图: 文件整理
- 技能: file_organize
- 执行位置: Local Node
输出结构化指令

Gateway 调度
5. 识别本地通用技能
直接发给 Local Node

Local Node 执行 Skill
6. 执行 file_organize:
- 读取 Downloads 文件夹
- 按图片/文档/压缩包分类
- 新建分类文件夹
- 移动文件

结果回传
7. Local Node → Gateway

Gateway → PiAgent
生成任务总结

PiAgent → Telegram Channel
发送结果总结

Telegram → 用户 iPhone
任务完成通知


案例2:远端执行——“卧室里的 Android 手机截一张屏”

这是 OpenClaw 最震撼的能力:
一句话控制远端设备。

流程如下:

  1. 用户发指令:

    让卧室的 Android 手机截一张屏

  2. Channel → Gateway → PiAgent → LLM

  3. LLM 推理:

    • 技能:screenshot
    • 设备:remote-android-bedroom
  4. Gateway 查设备在线状态

  5. 通过 WebSocket 长连接下发指令到远端 Android 节点

  6. Android 执行截屏

  7. 图片回传到 Gateway

  8. 经由 Channel 发给用户

你看到的“远程控制手机”,底层就是这么一套标准流程。

下面是我根据这个案例画的一组流程图,大家可以参考理解:

实时通信通道

远端设备

OpenClaw Server

用户 iPhone
1. 发送指令:
'让卧室的 Android 手机截一张屏'

Telegram Channel
2. 接收消息并转换

Gateway
3. 记录会话
保存上下文

PiAgent + LLM
4. 意图分析与推理
• 技能: screenshot
• 目标设备: remote-android-bedroom
• 执行位置: Remote Node

Gateway
5. 查询设备在线状态
确认卧室Android在线

WebSocket 长连接
6. 下发截屏指令
到远端设备

卧室 Android 节点
7. 执行 screenshot
• 捕获当前屏幕
• 保存为图片

WebSocket 回传
8. 图片数据返回 Gateway

Gateway → PiAgent
9. 处理返回结果
生成总结文案

Telegram Channel
10. 发送截图 + 总结
给用户

用户 iPhone
11. 显示截图和完成消息


五、我最佩服的一点:它的安全设计(非常专业)

最后我必须提 OpenClaw 的安全架构,因为它直接操作文件、控制设备,不安全等于裸奔

它的安全设计基于一个极度清醒的前提:
LLM 不可信,Prompt 可被注入,一切都要设防。

我总结它的三道防线:

  1. 动态密钥注入
    API Key 不从配置文件明文读,不从环境变量长期挂着。
    用的时候从系统密钥环读取,用完立刻清空。

  2. 细粒度文件权限

    • 直接拦截所有 DELETE 危险操作
    • 只能访问你授权的目录
    • 越权直接拒绝
  3. 人在回路审批(Human-in-the-loop)
    高危操作必须你手动确认:
    删除文件、格式化、运行高危命令……

这三点,让 OpenClaw 从“玩具”变成了可落地的工程系统


六、我为什么说 OpenClaw 是程序员必学的智能体架构

写完这篇,我再回头看 OpenClaw,它给我的价值早已超出一个“工具”:

  • 想做 AI 智能体?它的 PiAgent + Skills 是标准范式
  • 想做跨设备控制?它的 Gateway + Node + WebSocket 直接抄
  • 想做多平台接入?它的 Channel 扩展模型非常工整
  • 想做可视化管控?它的 Studio 架构可以直接复用
  • 想做安全可控?它的三道安全防线是行业级设计

对我们来说:
会用 OpenClaw 只是入门;
读懂 OpenClaw 架构,你就掌握了下一代 AI 智能体的核心设计思想。

希望这篇文章,能帮你从“只会养虾”的用户,
变成能读懂、能修改、能排错、能二次开发的真正开发者。


参考文章:
https://mp.weixin.qq.com/s/9FdCFqqM9D5rmk-UPXxgFg?scene=1&click_id=1
https://mp.weixin.qq.com/s/klteNE8YWKzHUBZAR4Tmxg
https://docs.openclaw.ai/zh-CN

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐