深入理解OpenClaw技术架构与实现原理(上)

一句话概括

阿里云开发者公众号上由”踏天”撰写的 OpenClaw 技术架构深度解析(上篇),系统性梳理了从 Gateway 网关、Agentic Loop、调度系统、工具系统、Channels、上下文管理到 SubAgent 子智能体共 7 个核心模块的实现细节,并提出”OpenClaw 是 AI-Coding 软件构建范式开山之作”的论点。

实践内容

Gateway 关键配置项(原文 3.1.9)

{
  "gateway": {
    "port": 18789,
    "bind": "loopback",
    "mode": "local",
    "auth": {
      "mode": "token",
      "token": "your-token"
    },
    "tls": {
      "enabled": true,
      "certPath": "/path/to/cert.pem",
      "keyPath": "/path/to/key.pem"
    },
    "reload": {
      "mode": "hybrid",
      "debounceMs": 300
    }
  }
}

Gateway 常用 CLI 命令(原文 3.1.10)

# 启动网关
openclaw gateway --port 18789
 
# 查看状态
openclaw gateway status
openclaw gateway status --deep   # 深度检查
 
# 健康检查
openclaw gateway health
openclaw channels status --probe
 
# 发现局域网网关
openclaw gateway discover
 
# 查看日志
openclaw logs --follow

Linux systemd 安装(原文 3.1.7)

openclaw gateway install
systemctl --user enable --now openclaw-gateway.service

配置热重载四档(原文 3.1.8)

模式行为
off不重载
hot仅应用安全热更新
restart需要重启时自动重启
hybrid安全时热更新,必要时重启(默认

核心源码定位(原文 3.1.11)

模块路径
CLI 入口src/cli/gateway-cli/
客户端src/gateway/client.ts
协议定义src/gateway/protocol/
服务端 HTTPsrc/gateway/server-http.ts
配置类型src/config/types.gateway.ts

摘录

最近 OpenClaw 如日中天,俨然已经是当下最热门并实用的个人助理。OpenClaw 已经是我每日深度使用的效率工具,作为技术人,忍不住想系统性扒一下其技术架构与实现细节。当然了,本文也是通过与一堆 Agent 协作完成,包括 OpenClaw、OpenCode、ClaudeCode、NotebookLLM、DeRisk 等。OpenClaw 在面向个人助手方向上,不仅仅体现在其灵活先进的智能体架构,还有其围绕个人助手方向的各种工具与生态的完整实现,是各类技术与工具的集大成者。最让人惊讶的是,这些能力的基本全部通过 AI-Coding 实现,可以说彻底改变了软件开发的范式,而且清晰简洁的架构设计与表达,比传统人类编程的系统具有更高的标准,可以说是开启新的软件构建范式的开山之作,非常值得深入的研究。

如下图所示为 OpenClaw 的技术架构图,其架构设计上是以本地优先(Local-First)多端联动为核心,建立一个高度灵活且可拓展的个人 AI 助手系统。其架构可以概括为一个以 Gateway(网关)为核心的控制平面的分布式系统。Gateway 是 OpenClaw 的心脏,充当系统的单一控制平面——负责管理会话(Sessions)、状态感知(Presence)、配置、定时任务(Cron)、网络钩子(Webhooks)以及控制界面(Control UI)和 Canvas 宿主,通信协议基于 WebSocket(WS) 网络构建,为所有客户端、工具和事件提供统一的连接通道。

OpenClaw 的整个推理循环架构,也是构成整个系统执行的大脑思考核心。系统中所有的运行逻辑都由推理循环架构来控制,也就是 AgenticLoop——OpenClaw 的推理循环是一个事件驱动的架构:主循环(run.ts)负责错误处理、重试、profile 轮换;尝试层(attempt.ts)负责单次 LLM 调用的完整生命周期;事件订阅(subscribe.ts)处理流式响应和工具调用;工具循环由底层 SDK 自动管理,当模型返回 tool_use 时自动执行工具并继续调用。

涉及实体

  • OpenClaw —— 本文是其架构总览(含 Gateway / Agentic Loop / 调度 / 工具 / Channels / 上下文 / SubAgent 7 模块)

涉及主题

(本篇为单文档来源,主题待累计 ≥5 篇同议题来源后聚合)

我的评注

  • 文章把 Gateway 抬到”心脏”的位置,强调其作为单一控制平面的角色——这与 Claude Code “本地 CLI + MCP” 的扁平架构形成对比。OpenClaw 选了一条更接近”个人级 PaaS”的路:所有能力先汇聚到 Gateway,再分发给 Channel/Agent/Node
  • “AI-Coding 是开山之作”是作者最强烈的论点。但文章主要讲实现细节,并没有展开论述”为什么 AI 写出来比人写出来质量高”——这部分有待下篇或后续素材补充
  • Gateway 的配置热重载分档(off/hot/restart/hybrid)是个值得借鉴的设计:一刀切的”重启即生效”或”全部热重载”都不够细腻,按更新内容的危险度分档更可控