人工智能AI Agent开源技术架构

深度拆解 OpenClaw:一个开源 AI Agent 框架的架构设计

从技术视角全面剖析 OpenClaw 的系统架构,涵盖分层设计、智能体循环、双重记忆系统、安全机制等核心模块。

2026年4月17日

OpenClaw 是 2026 年初最热门的开源 AI Agent 框架之一,GitHub 星标在短短 4 个月内突破 14 万。它的核心能力是:让 AI 在本地运行、跨平台接入(WhatsApp、Telegram、Discord 等),并能真正操控电脑完成任务。

但多数人只看到了”用 WhatsApp 跟 AI 对话”的表象。本文从工程架构层面,把 OpenClaw 拆开来看。


一、技术本质:一个 TypeScript CLI 程序

很多人以为 OpenClaw 是 Python 项目,或者是 Web App——其实它是一个 TypeScript 编写的 CLI 应用程序,运行在你的本地机器上。

它做的事情:

  • 在本地暴露一个 Gateway Server,处理来自各渠道(Telegram/WhatsApp/Slack 等)的消息
  • 调用多种 LLM API(Anthropic、OpenAI、本地 Ollama 等)
  • 在本地执行 工具(Tools):读写文件、执行命令、操控浏览器
  • 本地存储记忆,无需云端

这个定位决定了它的整体架构方向:本地优先、隐私可控、可扩展


二、六层架构总览

整个系统从上到下分为 6 个层级:

flowchart LR
    L1["🖥️ CLI 层\n启动入口、环境初始化"] --> L2["🌐 Gateway 层\nWebSocket + HTTP"]
    L2 --> L3["🔌 通道 / 插件 / 路由层"]
    L3 --> L4["🤖 Agent 执行层"]
    L4 --> L5["🧠 AI Provider 层"]
    L5 --> L6["💾 持久化层"]

    classDef layer fill:#1e293b,stroke:#00D4FF,color:#e2e8f0
    class L1,L2,L3,L4,L5,L6 layer

每一层职责清晰、互不耦合,这也是 OpenClaw 能快速扩展到 10+ 通道、支持十余种 LLM Provider 的根本原因。


三、Gateway 层:控制平面的心脏

Gateway 是整个系统最核心的组件,默认监听 127.0.0.1:18789,提供 WebSocket + HTTP 双协议服务

四层 WebSocket 协议栈

flowchart TD
    A["连接层\n握手认证"] --> B["协议层\n帧校验"]
    B --> C["方法层\n权限分发"]
    C --> D["事件层\n流式广播"]

    classDef nodeStyle fill:#1e293b,stroke:#00D4FF,color:#e2e8f0
    class A,B,C,D nodeStyle

三道”总闸”防护

总闸作用
连接总闸握手阶段保护,非授权连接直接拒绝
权限总闸基于 role/scope 的细粒度鉴权
带宽总闸防止单连接拖垮整个系统

配置热重载

Gateway 监听配置文件变化,可热更新的配置直接生效,不可热更新的配置请求进程重启——零停机变更


四、Lane 队列:优雅的并发模型

这是 OpenClaw 架构里最有意思的设计之一。

传统 async/await 代码在处理多个并发 AI 请求时,很容易出现竞态条件(race condition)和日志混乱。OpenClaw 的解法是 Lane-based Command Queue(基于泳道的命令队列)

flowchart LR
    SA["Session A"] --> LA["Lane A"]
    SB["Session B"] --> LB["Lane B"]
    CJ["Cron Job"] --> PL["并行 Lane"]

    classDef input fill:#1e293b,stroke:#8B5CF6,color:#e2e8f0
    classDef lane fill:#0f172a,stroke:#00D4FF,color:#e2e8f0
    class SA,SB,CJ input
    class LA,LB,PL lane

核心原则:默认串行,需要时才显式并行。

每个会话拥有独占的 Session Lane,所有会话共享一个 Global Lane。系统支持 6 种调度模式:

模式行为
interrupt中断当前任务,立即执行
steer追加上下文,引导当前任务
followup排队等待,顺序执行
collect防抖批处理,合并短时间内的多条消息
queue普通排队
steer-backlog向已有任务追加背景信息

五、智能体循环(Agentic Loop)

这是 OpenClaw 真正”智能”的核心:

flowchart TD
    U["💬 用户消息"] --> S["系统提示组装"]
    S --> L["🧠 LLM API 调用"]
    L --> D{输出类型?}
    D -->|"文本"| R["✅ 回复用户"]
    D -->|"工具"| T["⚙️ 执行工具"]
    T --> C["追加上下文"]
    C --> L

    classDef start fill:#1e293b,stroke:#00D4FF,color:#e2e8f0
    classDef process fill:#1e293b,stroke:#8B5CF6,color:#e2e8f0
    classDef core fill:#0f172a,stroke:#00D4FF,color:#00D4FF
    classDef decision fill:#1e293b,stroke:#8B5CF6,color:#e2e8f0
    classDef success fill:#064e3b,stroke:#10b981,color:#e2e8f0
    class U start
    class S,T,C process
    class L core
    class D decision
    class R success

循环直到 LLM 输出最终文本,或达到最大轮数(默认约 20 轮)。

上下文窗口守护

当对话越来越长,上下文窗口会逐渐耗尽。OpenClaw 设有两道防线:

  • 软警告线 32,000 tokens:触发历史压缩,生成摘要替换旧对话
  • 硬红线 16,000 tokens:直接拒绝请求,防止 API 报错

六、双轨记忆系统

记忆系统是 OpenClaw 实现”长期记忆”的基础,采用简单而务实的双轨设计:

存储层

会话转录(JSONL)          记忆文件(Markdown)
每行一个 JSON 对象  ◄──── MEMORY.md / memory/ 目录
工具调用 + 结果            用户偏好 + 项目上下文

检索层

混合检索方案,两者互补:

  • 向量检索:基于语义相似度,用 SQLite 存储向量
  • 关键词检索:SQLite FTS5 全文检索,支持精确短语匹配

设计哲学

OpenClaw 的记忆系统刻意保持简单

  • 无记忆合并算法
  • 无定期压缩
  • 旧记忆与新记忆权重相同,没有”遗忘曲线”
  • 文件是人类可读的,随时可以手动编辑

这种简单性是刻意为之的:可解释性 > 复杂度。


七、浏览器工具:语义快照

OpenClaw 操控浏览器的方式很有创意——它不依赖截图,而是基于页面的 Accessibility Tree(ARIA 可访问性树) 生成文本化快照:

# 普通截图
大小:~5 MB,需要视觉 token,成本高

# 语义快照(OpenClaw 的方案)
- button "Sign In" [ref=1]
- textbox "Email" [ref=2]
- textbox "Password" [ref=3]
- link "Forgot password?" [ref=4]

大小:~50 KB,纯文本,token 成本低 100 倍

这个设计背后的洞察是:浏览网页本质上是信息获取任务,不是视觉任务。


八、安全架构

工具执行审批

危险工具(如 bash 命令执行)在运行前,会向用户推送审批请求,等待 approve/reject。用户可以选择”允许一次”或”永久允许”。

以下命令构造会被默认拦截

# 命令替换
npm install $(cat /etc/passwd)
# 重定向到系统文件
cat input > /etc/hosts
# 逻辑或链式危险命令
rm -rf / || echo "done"

配对机制

陌生设备发来的消息,需要用户手动审批配对码,approve 后才加入白名单。这保证了只有你授权的设备才能与 AI 交互。


九、架构设计哲学总结

原则实现方式
默认串行Lane 队列,消除并发复杂度
简单可解释JSONL + Markdown,无黑箱
本地优先所有数据存本地,隐私可控
统一抽象屏蔽 LLM 供应商差异
安全可控Allowlist 机制 + 配对审批
高效感知语义快照替代截图

OpenClaw 的架构不追求”最高深”,而是追求清晰、可控、可扩展。这也是它能在短时间内获得大量开发者认可的根本原因——好的工程哲学,让代码说话。


参考资料:OpenClaw 官方文档AI全书 - OpenClaw 技术架构深度解析