OpenClaw 核心组件完整清单(详解 Gateway、Agent、Skills、Memory 的关系)

OpenClaw 的核心组件有六个:Gateway(控制平面)、Channels(渠道适配器)、Agent Runtime(决策大脑)、Tools/Skills(执行手脚)、Memory(记忆系统)、Session Router(会话路由)。它们的关系是典型的轮毂-辐条结构——Gateway 是中心轮毂,所有渠道与工具执行都是辐条,消息从渠道进来统一汇入 Gateway,由会话路由器分发给对应的 Agent 工作区,Agent 在推理循环中按需调用工具、检索记忆,最后把结果沿原路返回。

一、六个核心组件各管什么

组件 职责 关键实现
Gateway 常驻进程,消息路由、会话管理、进程调度 单进程 WebSocket 服务器,默认 127.0.0.1:18789
Channels 对接各聊天平台,收发与格式适配 26+ 渠道适配器,统一 adapter 接口
Agent Runtime 决策推理与工具调用循环 内置 Pi Agent Core,四阶段循环
Tools / Skills 外部能力入口 shell、fs、browser、MCP 等工具 + SKILL.md 技能
Memory 跨会话知识持久化与召回 MEMORY.md + 每日日志 + 混合检索
Session Router 消息按会话键分发与排队 层级化 session key + 车道队列并发控制

Gateway 是唯一长期运行的进程,其余组件随消息按需激活。这种”单进程 + 事件驱动”的设计让部署退化为一个进程、一份配置,不需要微服务编排。

二、组件之间的协作关系

下面这张文字图描述了一条消息在组件间的流转方向:

IM 消息(Telegram / 微信 / WhatsApp ...)
        │
        ▼
  Channels 适配器 ──标准化为内部消息──► Gateway
                                          │
                                          ▼
                                   Session Router(按 session key 定位)
                                          │
                                          ▼
                                   Agent Runtime(Pi Agent Core)
                                    │      │      │
                      调用 Tools ◄──┘      │      └──► 检索 Memory
                      执行结果回填          │
                                          ▼
                                  LLM 推理(模型可替换)
                                          │
                                          ▼
                          结果沿原通道返回(Channel 回复)

Gateway 与 Agent 不直接耦合:渠道差异收敛在 adapter 层,新增聊天平台不改 Agent 代码;Agent 与模型解耦,换模型只改配置。三者之间的松耦合是 OpenClaw 能同时支撑”20 多个渠道 + 任意模型 + 社区技能”的结构前提。

2.1 从三层视角看

  • 第一层 Gateway:循环系统,管消息进出、会话定位、事件分发;
  • 第二层 Agent Runtime:神经系统,跑 ReAct(推理-行动-观察)循环,做工具调用与上下文管理;
  • 第三层 Memory + Skills:知识与能力系统,记忆分层存储,技能按需加载。

三、两条关键机制:会话路由与车道队列

3.1 层级化会话键

每个会话有一个层级化的 session key,决定了它归属于哪个 Agent、哪个渠道、哪个对话对象。形如:

agent:main:main                          # 主 Agent 操作者主会话
agent:main:whatsapp:direct:+15551234567  # WhatsApp 私聊(按渠道+联系人隔离)
agent:main:telegram:group:-10012345678   # Telegram 群聊
agent:work:slack:direct:U0123ABC         # 子 Agent 的 Slack 私聊

会话状态以 append-only JSONL 持久化到 ~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl,支持断线恢复与对话分支回溯。

3.2 车道队列保证”一会话一执行”

并发控制是 OpenClaw 的细节亮点。队列按车道(lane)隔离:同一会话严格串行,主聊天与心跳各占一条并发通道,子 Agent 与嵌套工具调用并行度更高。核心保证只有一句话:”同一时刻,一个会话只允许一次 Agent 运行。”用户还能用 /queue 命令动态切换消息合并模式(steer 立即介入 / followup 排队 / collect 合并处理)。

四、配置文件即组件

OpenClaw 把人格、规则、记忆都做成工作区里的 Markdown 文件,改行为不用改源码:

文件 作用
SOUL.md 人格、边界、语调
AGENTS.md 操作指令与记忆规则
USER.md 用户资料与偏好
MEMORY.md 长期记忆与习得模式
openclaw.json 网关、模型、渠道、沙箱总配置

这些文件在每次推理时被组装进系统提示词,大文件自动裁剪并加截断标记。记忆不达标时,模型会先把可持久信息写进每日日志,再整理进 MEMORY.md——记忆增长是透明的、可读的。

五、组件链路自检五步

怀疑某个组件没接上时,按顺序排查:

  1. 跑 openclaw status,确认 Gateway 进程存活且 18789 端口在监听;
  2. 用 WebChat 发一条简单消息,确认消息穿过 Channel 进入 Gateway;
  3. 打开 ~/.openclaw/agents/<agentId>/sessions/,确认对应会话 JSONL 已生成;
  4. 下发一个带工具调用的任务,检查工具执行结果是否成功回填给模型;
  5. 改动 SOUL.md 后重发消息,确认人格文件在下一轮推理中重新生效。

常见问题(FAQ)

Q1:Gateway 挂了会怎样?

所有消息停摆,但已落盘的会话与记忆不丢,重启后恢复。

Q2:多个 Agent 能共享一套记忆吗?

默认各 Agent 隔离工作区,需显式配置共享或跨 Agent 迁移。

Q3:加一个新聊天渠道要改 Agent 代码吗?

不用。渠道差异收敛在适配层,新增 adapter 即可接入。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 qiqicto@qq.com 举报,一经查实,本站将立刻删除。
赞 (0)
其AI的头像其AI普通用户

相关推荐

返回顶部