乐于分享
好东西不私藏

深度拆解 OpenClaw 技术架构,看它如何赋予 AI“手脚”成为你的全能数字员工

深度拆解 OpenClaw 技术架构,看它如何赋予 AI“手脚”成为你的全能数字员工

OpenClaw 是一款真正面向个人用户的本地优先(Local-first) 多渠道 AI 智能体网关架构。它通过一个集中的控制平面(Gateway),将 WhatsApp、Telegram、Slack、Discord、iMessage、Feishu、Matrix 等 20+ 主流通信渠道,与强大的 AI 智能体运行时无缝集成,提供跨平台工具调用、自动化任务、实时画布(Canvas)和多模态交互能力。

不同于云端大模型“租用”模式,OpenClaw 把一切跑在你的设备上:零隐私泄露、毫秒级响应、全天候在线。本篇文章对其整体架构工作原理进行系统性拆解,帮助你彻底理解这个“本地龙虾助手”是如何运作的。

一、核心架构:Gateway 控制平面

OpenClaw 的架构核心是 Gateway —— 一个统一的 WebSocket 控制平面(默认端口 ws://127.0.0.1:18789)。

Gateway 主要职责

  • 通信抽象与路由:所有入站消息(无论来自 Telegram、WhatsApp 还是 Discord)都先经过 Gateway 统一路由。它支持会话隔离(主会话 vs 群组子会话)、@提及 gating、回复标签路由,以及多代理工作区映射。
  • 多渠道接入:通过专用驱动(如 discord.jsgrammYBaileys 等)原生支持 20+ 协议,完美处理媒体、群组、语音消息。
  • 节点与设备管理:协调本地主机工具(exec)和远程节点(iOS/Android 手机、macOS 屏幕采集)。节点通过 node.invoke 协议实现分布式本地操作(如相机、通知、位置、屏幕录制)。

Gateway 就像整个系统的“大脑”,所有客户端(CLI、WebChat、macOS 菜单栏、移动节点)都通过它统一调度。

二、智能体运行时:Pi SDK 嵌入式集成

OpenClaw 的 AI 核心来自对 pi-coding-agent 的深度嵌入式集成,而非常见的子进程或 RPC 调用。

集成模式亮点

  • 直接在进程内实例化 AgentSession,实现对会话生命周期、工具注入、系统提示、事件流、持久化的完全掌控
  • 依赖核心包:
    • @mariozechner/pi-ai:LLM 抽象层(支持 OpenAI、Anthropic、Google Gemini 等)
    • @mariozechner/pi-agent-core:智能体循环与消息定义
    • @mariozechner/pi-coding-agent:提供 createAgentSessionSessionManager 等高级 SDK
    • @mariozechner/pi-tui:本地终端交互支持

这种嵌入式设计让 OpenClaw 既保留了 pi 的强大编码与工具能力,又实现了本地零延迟和精细控制。

三、核心集成流程与实现逻辑

整个智能体运行由 runEmbeddedPiAgent() 驱动,形成闭环:

  1. 会话创建与事件订阅使用 createAgentSession() 启动会话,随后通过 subscribeEmbeddedPiSession() 订阅细粒度事件流,包括:

    • 流式文本(message_update
    • 工具执行状态(tool_execution_start/end
    • 回合标记(turn_start/end
    • 自动压缩事件(auto_compaction_start
  2. 动态系统提示词构建buildAgentSystemPrompt() 实时组装提示词,融合工具描述、安全护栏、工作区元数据、Skills、沙箱信息、历史记忆等。在子智能体模式下自动裁剪,节省上下文。

  3. 工具管道(Tool Pipeline)与适配

    • 工具替换:pi 默认的 bashread 等工具被替换为受控的 exec / process,并适配沙箱环境。
    • 策略过滤:根据配置文件、模型提供商、安全策略动态过滤。
    • Schema 规范化:自动适配 Gemini/OpenAI 的特殊要求。
    • 通过 pi-tool-definition-adapter 桥接 pi 的工具定义与 OpenClaw 自定义工具(浏览器、画布、节点操作、消息发送等)。
  4. 提示执行调用 session.prompt() 触发完整 LLM 循环 → 工具调用 → 流式回复。

四、会话、存储与可靠性设计

  • 持久化机制:所有会话以 JSONL 文件形式存储(树状结构:id/parentId),路径默认为 ~/.openclaw/agents/<agentId>/sessions/SessionManager + guardSessionManager 确保工具结果安全不污染。
  • 内存管理与压缩:上下文接近溢出时自动触发 Compaction,OpenClaw 扩展了 compaction-safeguard.ts,实现自适应令牌预算、工具失败摘要等安全护栏。
  • 模型路由与故障转移:支持多 Auth Profile 轮换,API 错误时自动 Failover 到备用模型/密钥。

五、安全性与隔离

  • 沙箱集成:非主会话(群组/外部消息)默认启用 Docker 沙箱模式,高危工具(bash、浏览器、网关配置等)被严格禁用。
  • 权限管理:macOS 节点严格校验 TCC 权限(屏幕录制、麦克风等),未授权返回 PERMISSION_MISSING
  • 默认安全策略:DM 接入需配对验证,支持白名单与群组策略。

六、技术堆栈总结

  • 开发语言:TypeScript(约 87%)、Swift(约 8%)、Kotlin(约 2%)
  • 运行环境:Node.js ≥ 22(推荐 pnpm 安装)
  • 交互技术:自定义 EmbeddedBlockChunker 处理流式文本、思考块剥离、多模态回复分发

结语:为什么 OpenClaw 是真正的“个人 AI 操作系统”

通过 Gateway 控制平面 + Pi 嵌入式智能体运行时 的精妙结合,OpenClaw 将笨重的 LLM 彻底转化为具备本地执行能力、多渠道分发能力且安全可控的专属助手。它不只是聊天机器人,更是你的 AI 伴侣——随时在线、任意平台、无隐私风险。

如要安装,详见以下本地部署步骤:

从零起步,快速入门 OpenClaw:面向初学者的本地部署秘籍,让你轻松”养小龙虾“