值得一看!OpenClaw核心技术架构深度解析

5 阅读1分钟

背景

就在3月2号,爆发刚2个月的OpenClaw已经超越了所有GitHub开源软件项目的星标数(Star),包括Linux内核,正式加冕史上最受欢迎开源项目!

OpenClaw(原名 Clawdbot/Moltbot,因 Anthropic 商标争议数次更名)是 2025 年 11 月由奥地利开发者 Peter Steinberger 发起的开源个人 AI 助手项目。

现在OpenClaw几乎几天就发布一个版本,活跃度非常高,生态圈也火热。

OpenClaw是什么

从本质上讲,OpenClaw是一个能够自主运行和持续工作的AI Agent助手。它的核心特征:

- **自主决策:**根据用户需求自动规划任务、执行操作

- **本地运行:**作为TypeScript CLI应用,运行在你的本地机器上

- 持续运行:不像chatGPT等会对话式AI每次需要唤醒,OpenClaw像是一个7×24小时待命的数字员工。

核心能力

一、多渠道网关

**传统Agent方案:**当想要同时支持微信、飞书、如流等多个通信渠道时,传统Agent开发方案的架构是这样的:

┌─────────────────────────────────────────────────────────┐
│                      设备层                              │
│  ┌─────────┐   ┌─────────┐   ┌─────────┐               │
│  │ 微信 App │   │ 飞书 App │   │ 如流 App │   ← 客户端   │
│  └────┬────┘   └────┬────┘   └────┬────┘               │
│       │             │             │                     │
│       ▼             ▼             ▼                     │
│  ┌─────────┐   ┌─────────┐   ┌─────────┐               │
│  │微信服务器│   │飞书服务器│   │如流服务器│   ← 后端服务器 │
│  └────┬────┘   └────┬────┘   └────┬────┘               │
│       │             │             │                     │
│       ▼             ▼             ▼                     │
│  ┌─────────┐   ┌─────────┐   ┌─────────┐               │
│  │微信Agent │   │飞书Agent │   │如流Agent │   ← Agent    │
│  └─────────┘   └─────────┘   └─────────┘               │
└─────────────────────────────────────────────────────────┘

问题显而易见:

  • 每个渠道都需要部署独立的 Agent 服务器

  • 同一个用户的状态和上下文在不同渠道之间难以同步

  • 重复的业务逻辑代码和维护工作,提高运维的成本

OpenClaw是怎么解决这些问题的呢?

┌─────────────────────────────────────────────────────────┐
│                      设备层                              │
│  ┌─────────┐   ┌─────────┐   ┌─────────┐               │
│  │ 微信 App │   │ 飞书 App │   │ 如流 App │   ← 客户端   │
│  └────┬────┘   └────┬────┘   └────┬────┘               │
│       ▼             ▼             ▼                     │
│  ┌─────────┐   ┌─────────┐   ┌─────────┐               │
│  │微信服务器│   │飞书服务器│   │如流服务器│   ← 后端服务器 │
│  └────┬────┘   └────┬────┘   └────┬────┘               │
└───────┼─────────────┼─────────────┼─────────────────────┘
        └─────────────┼─────────────┘
                      ▼
            ┌─────────────────┐
            │  OpenClaw 服务器 │
            │ (本地/远端进程实例)│
            └────────┬────────┘
                     │
                     ▼
            ┌─────────────────┐
            │   统一消息处理   │
            └──────── ────────┘

OpenClaw 采用了渠道插件 的设计模式,改变了多渠道接入的方式,核心在于两个精妙的组件设计:

1、渠道适配器

  • **消息格式统一:**将不同平台的消息字段映射到内部统一格式
  • **内容长度处理:**针对不同平台的消息长度限制进行特殊处理
  • **消息类型适配:**将消息类型转换成该平台可支持的消息格式发送

2、gateway网关

所有渠道消息经过网关层,网关层实现五大功能:

  • 请求解析
  • 认证授权
  • 请求路由
  •  限流降级:
  • 并发控制

通过这五大功能,OpenCla实现了一个服务器实例处理多个渠道的并发请求。

二、记忆上下文

作为助理,从人的视角来看,我们是怎么记住工作中的任务和安排的呢?

- 昨天和今天刚安排的任务 -> 短期记忆(记得非常清楚)

- 上个月聊过的工作内容    -> 长期记忆(可能需要查看记事本搜索)

OpenClaw借鉴了这个思路,也维护了短期记忆和长期记忆:

短期记忆:完整的对话记录

  • 格式:采用JSONL格式,纯文本,易于处理

  • 内容:当前会话的每一个细节,每行一个JSON事件(用户消息、工具调用、AI回复等)

  • 保存位置: memory/ 日期.md

  • 总结:完整性高,可追溯;但是长对话时会浪费Token

  • 示例说明:

    {"timestamp": "2026-03-15T10:30:00.123Z", "type": "session_start", "session_id": "sess_abc123", "user": "test_user", "topic": "data_generation"}

长期记忆:记忆文件与向量检索

  • 格式:采用markdown格式
  • 检索方法:采用混合方案,既有向量检索,又有关键词匹配
  • 保存位置:MEMORY.md
  • 总结:自动记忆刷新、总结

那么,短期记忆什么时候会变成长期记忆呢?

1、HEATBEAT心跳机制会定期维护
2、用户关键词主动触发记忆

并且在对话中,OpenClaw会从“发生了什么”提炼出“学到了什么/记住了什么”,包括

1、Significant events(重要事件)
2、Lessons(教训)
3、Insights(洞察)
4、Decisions(决策)
5、Opinions(观点)
6、Things worth keeping long-term(值得长期保留的事)

当长期记忆越来越多时,OpenClaw会怎么处理呢?

1、HEARTBEAT 定期维护
2、合并相似内容
3、提炼压缩

三、Agent智能体

消息通过网关后路由到Agent智能体中,开启了处理流程:

消息到达  
↓① 消息路由  
↓② 选择 LLM → 冷却机制  
↓③ 组装 System Prompt  
↓④ 检查 Token 窗口  
↓⑤ 打包 → 调用 LLM  
↓返回结果
  • LLM 选择

OpenClaw不绑定某一个AI模型,支持随时切换,你可以在不同的Sub-agent上配置不同的AI模型处理。当某个AI模型无法使用时,会触发冷却机制,然后自动切换到下一个可用的AI模型。

  • System Prompt

在每次会话开始时,由 OpenClaw 系统动态生成并注入System Prompt。包括:可用的工具、可用的技能、安全约束、个性化文件配置、memory记忆上下文等

四、文件结构设计

~/.openclaw/ 
 openclaw.json      # 主配置文件(心跳间隔、支持模型、gateway配置)  
 skills/            # 全局技能目录
 agents/            # Agent 会话和状态数据  
 logs/              # 日志
 workspace/         # 工作区
 cron/              # 定时任务(jobs)
 memory/            # 记忆

每一个Agent的工作区结构,详细如下:

workspace/
  AGENTS.md     # 定义了openClaw的工作规范流程,包括每个文件的作用
  IDENTITY.md   # Agent角色信息,更个性化定制
  MEMORY.md     # 长期记忆
  SOUL.md       # 定义了Agent角色信息 who you are
  USER.md       # 定义了对话的用户信息
  HEARTBEAT.md  # 心跳,主动巡检
  memory        # 短期记忆
  skills        # 技能skill.md,项目成员可共享
  TOOLS.md      # 记录个人的特定信息,比如常用服务器等,私用

五、Token消费

使用AI大模型,我们绕不开token消耗的这个现实问题。

首先,我们都知道token的计算基准:

  • 1 个英文字符 ≈ 0.3 个 token;

  • 1 个中文字符 ≈ 0.6 个 token

其次,了解OpenClaw是怎么优化token的消耗的呢?

  • System Prompt:每次对话动态组装,精简非必要信息。
  • 工具调用:对于工具如浏览器的输入输出提取关键结果
  • 记忆上下文:短期记忆+长期记忆混合检索
  • 超出限制自动压缩:OpenClaw对于接入的LLM,在对话的过程中发现已经超过LLM上下文token限制时,就会对当前的上下文进行优化,比如压缩、删除旧内容。

不过对于用户而言,在使用过程中也建议:

  1. 通过减少定制化的信息,比如IDENTITY.md中关于Agent的角色信息、USER.md中用户信息等。
  2. 定期去清理过期的Memory内容等方式。
  3. 让OpenClaw只需维护有用的信息,“忘记”琐碎的信息。

六、安全机制

openClaw在用户运行的范围内给尽可能多的自主性,不同于“为了安全完全禁用”的系统,openClaw信任用户的判断,将决策权交给用户,这样导致openClaw的安全机制的守门人是用户的警惕,你要了解你在做什么以及你要做什么。

所以了解框架才能更好的知道改如何选择,OpenClaw有三种执行环境:

  • Sandbox(沙盒):Docker容器,默认是最安全的,容器内的操作无法访问宿主机。并且提供多层防御,如从执行环境隔离、文件系统隔离、网络隔离或进程隔离等
  • 宿主机:直接运行在电脑中,最灵活但风险大
  • 远程设备:通过SSH链接远程服务器执行

各大云服务厂商现在都提供了远程的云服务器来进行部署,这样隔离的沙盒环境也能让主机环境更为安全,但同样也会受到厂商的一些限制。

使用场景

以下的两种使用场景,是目前我使用频率最高的:

场景1:定时任务

这是OpenClaw区别于其他AI Agent最实用的功能之一。当你对OpenClaw说:

每天早上10:30夸夸我

这时候在cron/cron.json文件就会创建一个任务:

      "name": "每日夸奖",
      "schedule": {
        "expr": "30 10 * * *",
        "kind": "cron",
      },
      "payload": {
        "kind": "agentTurn",
        "message": "现在是早上10:30,请给用户发送一条温暖、真诚、有创意>>
的夸奖消息,让他开心地开始一天的工作。夸奖要具体、个性化,可以是关于他的能
力、态度、努力、成就或任何值得肯定的地方。"
      },

场景2:浏览器自动化

OpenClaw 内置了浏览器控制工具,可以打开网页、填表、点击按钮(需要搭配工具)。并且可以通过VNC打开沙箱浏览器,使用OpenClaw Browser Relay插件,让OpenClaw通过CDP协议控制你的浏览器默认人访问浏览器的行为,更好的访问一些网页资源。比如你对OpenClaw说:

每天早上8点,打开https://xxx网页,点击xx位置,帮我确认预约。

写在最后

OpenClaw让AI真正融入了日常工作流程中,所以它的爆火不是偶然。当我们越来越深入地了解OpenClaw,明白我们到底需要它帮我们做什么的时候,才能更好地培养出一个属于我们个人的"AI助手"。

在研究的过程中,对于个人开发者来说,token成本问题是我们无法避免的现实问题,只有当收益大于成本时,才能体现OpenClaw真正的价值