乐于分享
好东西不私藏

OpenClaw 内部架构与调用关系图

OpenClaw 内部架构与调用关系图

OpenClaw 内部架构与调用关系

多渠道 AI 助手平台的核心模块组成、数据流向、沙箱机制详解

架构设计沙箱安全多渠道

一、整体架构图

用户层移动端CLIWebChatmacOS消息渠道层Gateway(控制平面)会话管理Session配置管理Config路由分发Router安全控制Auth频道管理器 Channel沙箱管理器 SandboxAgent Runtime(Pi Agent)推理引擎Perception工具编排Tools记忆管理Memory沙箱执行层主机执行main 会话完全信任Docker 沙箱non-main 会话隔离 · 无网络SSH 沙箱远程执行远程 canonical工具与资源文件操作进程执行浏览器控制消息发送LLM 提供商OpenAI · Anthropic...安全策略off/non-main/all

二、核心模块说明

Gateway(控制平面)

核心中枢,WebSocket 服务端口 18789。负责会话管理、配置存储、消息路由、安全认证、沙箱调度。

Channel Manager(频道管理器)

管理 20+ 消息平台连接,处理入站/出站消息,维护频道状态和凭证。

Agent Runtime(运行时)

基于 Pi Agent 的推理引擎,负责意图理解、任务规划、工具编排、上下文管理。

Sandbox Manager(沙箱管理器)

根据会话类型决定执行环境:主机执行 vs Docker 沙箱 vs SSH 远程执行。

Tools(工具集)

原子能力:文件操作、进程执行、浏览器控制、消息发送、知识库访问。

三、典型调用场景

场景 1:主会话(main)- 完全信任

1用户通过 CLI/WebChat 等客户端发起请求

2Gateway 识别为 main 会话,直接路由到主机执行环境

3Agent Runtime 调用 LLM 推理,编排工具执行

4工具直接访问主机资源,无任何限制

场景 2:群组会话(non-main)- 沙箱隔离

1消息从 Telegram/Discord 等群组渠道到达

2Gateway 识别为 non-main 会话,路由到 Docker 沙箱

3沙箱内执行工具,网络隔离、文件系统隔离

4限制爆炸半径,保护主机安全

场景 3:跨平台消息处理

1多渠道入站:WhatsApp、Discord、Telegram 同时接收消息

2Gateway 统一处理,Agent Runtime 推理响应

3多渠道出站:响应可发送到任意平台

四、沙箱决策流程

步骤1消息到达 Gateway

判断会话类型(mainKey)

main 会话 → 直接主机执行,完全信任

non-main 会话 → 进入沙箱模式判断

查询沙箱模式配置(sandbox.mode)

mode="off" → 全部主机执行

mode="non-main" → 群组沙箱,主会话主机(推荐)

mode="all" → 全部沙箱执行,最大安全

主机执行

完全信任无任何限制

沙箱执行

Docker 隔离网络/文件限制

工具策略检查(tool policy)

允许 → 执行工具操作

拒绝 → 返回错误,保护系统

五、沙箱配置对照表

配置项
可选值
说明
mode"off"
关闭沙箱,全部主机执行
"non-main"
群组/频道沙箱,主会话主机(推荐)
"all"
所有会话沙箱执行,最大安全
scope"session"
每会话独立容器(默认)
"agent"
每 Agent 共享容器
workspaceAccess"none"
完全隔离(默认)
"ro"
只读挂载主机工作区
"rw"
读写挂载主机工作区

六、模块调用关系总结

入站流向

用户设备/消息渠道 - Gateway - 会话管理 - 沙箱管理器 - Agent Runtime

出站流向

Agent Runtime - LLM推理 - 工具编排 - 知识库/Skills - 结果返回用户

沙箱切入时机

工具执行前检查 mode,根据 sessionKey 判断 main/non-main,选择执行环境

安全边界

频道层 DM Pairing + Allowlist,Gateway 层认证配额,沙箱层进程网络文件隔离

架构设计精髓

OpenClaw 采用"Gateway + 插件化 + 沙箱"三层架构:

1Gateway 作为统一控制平面,所有流量经过

2插件化 让 Channels/Tools/Skills 可扩展

3沙箱 在工具执行层提供安全隔离,按会话类型动态决策