浅谈Open Claw原理

5 阅读9分钟

架构:基于通道的任务流水线

image.png

OpenClaw 遵循“核心极小、分层清晰”的设计哲学,所有用户指令的处理都遵循标准化的流水线流程,从消息接收至结果返回,共分为5个技术环节,环环相扣且职责明确:

1. Channel Adapters:消息标准化入口

作为 OpenClaw 与外部交互的第一道关口,负责接收来自 Telegram、WhatsApp、飞书、Discord 等各类 IM 工具的消息,核心做两件事:标准化预处理(将不同 IM 的消息格式统一,规避格式差异带来的解析问题)+附件提取(自动识别并提取图片、文档、音频等附件内容)。每个 IM 软件都有专属的 Adapter,保证不同渠道的消息能被系统统一识别,这是 OpenClaw 实现多渠道适配的基础。

2. Gateway:系统中枢,指令分发与结果回传核心

网关(Gateway):一个 WebSocket 服务器,连接各种聊天平台和控制界面,把收到的消息派发给 Agent 运行时处理。

设计亮点:

  • 采用基于通道 (Channel) 的命令队列,默认序列化执行,每个会话都有专属执行通道,保证单个会话的操作有序进行,从根源规避传统 async/await 异步嵌套带来的状态冲突、调试困难等问题;
  • 支持灵活的任务运行模式,低风险、可并行的任务可显式声明并行运行,兼顾执行有序性和效率;
  • 默认 WebSocket 端点:ws://127.0.0.1:18789,是各类客户端与 Gateway 的统一通信入口。

3. Agent Runner:推理引擎,AI 决策与工具调度核心

Agent Runner 是 OpenClaw 的推理执行核心,相当于 AI 的思考与行动中枢,包含三个模块:LLMtoolsskills,主要负责以下四个功能:

a. 动态拼接系统提示词:将会话历史与核心配置文件 AGENT.md拼接为完整提示词,传递给 LLM,让大模型掌握上下文和行为规则;

b. 智能模型选择:根据 API 配置选择适配模型,高流量场景可自动启动备用模型,保证服务稳定性;

c. 模型推理与工具调用:LLM 接收提示词后,判断是否需要调用工具,工具执行结果实时返回给 LLM,再由 Agent 通过 Gateway 回传至对应 channel;

d. 上下文窗口维护:当上下文接近模型阈值时,自动对上下文进行压缩,或终止无效请求,避免 Token 浪费和推理失败。

OpenClaw 支持多 Agent 模式,各个 Agent 互相独立,拥有专属配置和记忆,可同时处理不同任务。

4. Agent Loop:任务执行闭环,基于 ReAct 范式的自主推理

反复循环(默认上限 20 次)

5. Memory 持久化记忆:会话数据留存,保证任务连贯性

任务执行结果会通过原渠道回传到对应的 IM 软件中,同时系统会将 全量会话数据(包含工具调用记录、执行结果、对话内容等)以 .jsonl格式持久化存储,既方便用户回溯任务过程,也为后续的上下文理解、记忆检索提供数据支撑,这是 OpenClaw 实现长任务连贯性的基础。

配置:7 个 Markdown 文件,定义 Agent 的灵魂与规则

安装 OpenClaw 后,在 ~/.openclaw/workspace目录下能看到 7 个核心 Markdown 文件,这 7 个文件是 OpenClaw 的配置文件,定义了 Agent 的身份、行为准则、记忆规则、工具配置等关键信息,也是 Agent 能按规则工作的基础:

  1. AGENTS.md:OpenClaw的核心指南,定义了Agent的行为规范、会话流程、内存管理(日常日志+长期记忆)、安全规则、群聊参与原则、工具使用说明,以及心跳机制的配置方式,是Agent的操作手册;
  2. BOOTSTRAP.md:首次启动时的引导文件,用于与用户对话确定Agent的身份(名称、性格、风格、表情符号),并更新IDENTITY.md和USER.md,完成引导后可删除;
  3. HEARTBEAT.md:定期检查清单,用于配置周期性任务(如邮件查收、日历提醒、天气查询、服务器状态检测),Agent会在心跳轮询时执行这些任务;
  4. IDENTITY.md:Agent的身份证,记录名称、类型、风格、表情符号和头像路径,定义Agent的外在标识;
  5. SOUL.md:Agent的“灵魂内核”,定义核心价值观和行为准则,强调真诚帮助、有主见、主动解决问题,同时明确边界和隐私保护原则,拒绝“讨好型AI”;
  6. TOOLS.md:环境特定的工具配置信息,记录本地可调用工具的具体参数、运行环境等;
  7. USER.md:用户专属档案,记录用户基本信息、关心事项、项目背景、操作偏好等,帮助Agent更精准地理解和服务用户。

OpenClaw的底层:Pi内核,轻量且稳定的推理引擎

OpenClaw的底层并非传统的Web应用,而是一个基于TypeScript开发的命令行应用(CLI),运行在Node.js环境下(喜欢敲命令的人可以用命令行控制一切),其底层核心是Pi内核——这是理解OpenClaw轻量、稳定、可扩展的关键:

1. Pi内核(open claw里的底层 Agent 执行引擎)的定位

Pi是一个通用轻量推理引擎,负责模型抽象、流式推理、Agent Loop和工具执行等底层机制,其设计遵循“极简主义”:将核心能力收敛到几个底层原语(read、write、edit、bash),保证核心引擎的稳定性,同时预留丰富的扩展接口,让上层架构(OpenClaw)能在此基础上构建复杂的工具栈。

2. OpenClaw与Pi内核的融合方式

OpenClaw通过SDK方式将Pi内核嵌入到Gateway架构中,Gateway 实时拦截并接管 Pi 的状态流,通过会话映射和推理拦截,实现了对推理生命周期的精细化掌控。这种设计确保了底层的 Pi 内核可以保持极度轻量与纯粹(专注于原子化推理),而复杂的业务逻辑、状态持久化和多租户隔离则由上层的 Gateway 统一调度。

这种解耦设计的优势:底层推理引擎不会因上层业务逻辑的增加而臃肿,同时让算法工程师开发新Skills时,无需关心底层工具调用逻辑,专注于业务场景即可,大幅提升开发效率。

五大设计亮点

OpenClaw 能成为爆款开源项目,核心在于其围绕 “本地运行、自主执行、稳定可靠” 设计的一系列特性,涵盖记忆机制、系统操作能力、插件 机制、心跳机制、安全机制五大核心:

1. 记忆机制:混合检索 + 上下文管理,保证长任务连贯性

OpenClaw 的记忆系统分为短期记忆 + 长期记忆两层,搭配混合检索和上下文压缩策略,从根源避免长任务失忆:

  • 短期记忆:以 memory/YYYY-MM-DD.md 文件存储,仅追加每天的上下文日志,会话开始时自动读取当天和昨天的日志,保证近期任务的连贯性;
  • 长期记忆:以 MEMORY.md 文件存储,持久化保存关键聊天内容、用户偏好、重要决策,跨会话长期保留;
  • 混合检索:将短期和长期记忆切分为 chunk,采用向量检索 + 关键词匹配的混合方式,快速精准调取相关记忆;
  • 上下文压缩:当上下文接近模型阈值时,先执行 Memory Flush,强制 Agent 将关键状态写入硬盘文件,再进行压缩总结,确保长任务不因上下文修剪而丢失关键信息。

2. 技术护栏:强大的本地系统操作能力

这是 OpenClaw 区别于传统云端 AI 的优势,能直接操作本地电脑,支持四种能力,覆盖绝大多数自动化场景:

  • Shell 命令执行:通过 exec 工具支持三种运行环境,兼顾灵活性和安全性 —— 沙箱(Docker 容器,高风险任务)、本地宿主机(常规任务)、远程设备(跨设备操作);

  • 文件系统操作:支持读、写、编辑各类格式文件,实现本地文件的自动化管理;

  • 浏览器工具:基于 Playwright 开发,抛弃传统 AI 的图像截图识别,采用语义快照(Semantic Snapshot)技术,基于页面可访问性树生成文本化表征;

    • ✨ 优势:文本表征大小不足 50KB(截图通常为 5MB 级),极大节省 Token 消耗,且模型能通过 [ref=1] button "Sign In"这类标识精准定位页面元素;
  • 进程管理:可创建、终止本地进程,控制电脑运行状态,实现全流程自动化。

3. 通过插件实现可扩展性

OpenClaw 怎么让别人在不改核心代码的情况下,扩展新功能?

OpenClaw 的设计哲学是开放扩展,不改核心。

你可以通过插件(Plugin)在四个方向上扩展:

  • 渠道插件(Channel Plugin):添加新的聊天平台,比如 飞书、钉钉等
  • 记忆插件(Memory Plugin):换一种存储后端,比如用向量数据库代替默认的 SQLite
  • 工具插件(Tool Plugin):添加自定义能力,比如除了内置的命令行、浏览器、文件操作之外的新工具
  • 模型提供商插件(Provider Plugin):接入自定义的 AI 模型或自己部署的模型

插件代码放在 extensions/ 目录下,系统会自动扫描、发现和加载。

image.png

4. 心跳机制:从被动响应到主动自治,实现定时任务

在 HEARTBEAT.md 中进行设置,通过类似 Cron 的定时机制定义周期性任务(如每 4 小时检查一次服务器状态、每天早上推送天气提醒)。这使得 Agent 能够从被动响应转变为主动自治,具备了 7×24 小时运行的能力,也是 OpenClaw 能成为数字员工的关键。

5.  多 Agent 路由

image.png 比如你想让:

  • Discord 服务器的 Bot 用 Claude Sonnet,性格像个友好的版主
  • Telegram 的客服私聊用 GPT-4,语气更正式,工具权限不同

通过配置就能搞定,每个 Agent 实例有自己的工作空间、模型和行为设定。

这带来了很多玩法:

  • 不同社区用不同人设
  • 不同场景开放不同工具

总结

OpenClaw 的原理,总结来说就是:

  • 定位是本地算力 + 大模型自动化的开源智能体,解耦推理引擎与执行环境;
  • 所有指令遵循 Channel Adapters → Gateway → Agent Runner → Agent Loop → Memory 持久化​ 的流水线处理;
  • 底层依赖 Pi 轻量内核,实现推理与业务的解耦;
  • 五大关键设计(记忆、系统操作、插件、心跳、安全)让其能落地为实用的本地数字员工。