Open Craw架构学习
根据前面讨论和代码/文档,可以这样概括 OpenClaw 的架构和核心元素:
1. 架构总览(一句话)
一个 Gateway 做控制面,上面挂多种「资源」和「连接」:用户从 Channel 进来,路由到某个 Agent 的某条 Session,Agent 跑的时候用 Skills、并通过 Gateway 对 Node 做 invoke。
2. 核心元素(按角色分)
| 元素 | 是什么 | 作用 |
|---|---|---|
| Gateway | 控制面进程 | 收消息、做路由、管会话、鉴权、下发 node.invoke、驱动 Agent 运行;Session/Agent 状态的归属方。 |
| Channel | 消息入口/出口 | Telegram、WhatsApp、Slack、WebChat、飞书等;只负责「谁在跟系统对话」,不参与执行逻辑。 |
| Agent | 按资源建模的「大脑」 | 由 agentId 标识,有独立 workspace、配置、会话目录;被路由选中后「挂载」运行,不常驻成多进程。 |
| Session | Agent 下的一条对话 | 由 sessionKey 标识,存历史与状态;同一 Agent 可有多个 Session(不同群、不同人)。 |
| Binding | 路由规则 | 把「channel + account + peer(群/人)」映射到 agentId;决定这条消息进哪个 Agent(及 Session)。 |
| Node | 已连接的能力端点 | 设备/应用连上 Gateway 后注册,带 nodeId、caps、commands;执行 node.invoke 时接收请求并执行。 |
| Device | 节点身份 | 设备侧的密钥与 deviceId,用于认证、配对;nodeId 常取 device.id。 |
| Skills | Agent 的能力包 | 从该 Agent 的 workspace/skills 与共享目录加载,只在该 Agent 运行时可见、可用。 |
3. 关系简图
┌─────────────────────────────────────────┐
│ Gateway │
│ (控制面:路由、会话、鉴权、下发) │
└─────────────────────────────────────────┘
│ │ │ │
┌─────────────┼─────────┼───────────┼────────────┼─────────────┐
│ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ Channel │ │ Agent │ │ Session │ │Binding │ │ Node │ │ Device │
│(入口/出口)│ │(资源) │ │(会话) │ │(路由规则)│ │(执行端) │ │(身份) │
└─────────┘ └────┬────┘ └────┬────┘ └─────────┘ └─────────┘ └────┬────┘
│ │ │ │
│ │ │ │
│ ┌──────┴──────┐ │ nodeId 常取
└────►│ Skills │ │ device.id
│ (Agent 的能力)│ │
└─────────────┘ │
│
User ──► Channel ──► Gateway ──[Binding]──► Agent+Session ──► 运行 LLM+Tools
│
└──► node.invoke ──► Node(Device)
4. 数据/请求流(精简)
- 入站:用户从某 Channel 发消息 → Gateway 收到。
- 路由:用 Binding 根据 channel/account/peer 得到 (agentId, sessionKey),不读消息内容。
- 运行:Gateway 在该 Agent 的该 Session 上跑一轮(加载该 Agent 的 Skills、配置、会话历史),LLM + 工具执行。
- 调设备:工具里发 node.invoke → Gateway 转给对应 Node(带 Device 身份)执行,结果回给 Agent。
- 出站:Agent 的回复经 Gateway 从原 Channel 发回用户。
5. 一句话记核心元素
- Gateway:唯一控制面。
- Channel:入口/出口。
- Agent:按资源建模的「大脑」(agentId + workspace + 配置)。
- Session:Agent 下的一条对话(sessionKey)。
- Binding:入站到 Agent/Session 的路由规则。
- Node:连上 Gateway 的可执行端点(caps/commands)。
- Device:Node 的身份(认证/配对)。
- Skills:挂在 Agent 上的能力,随 Agent 加载。
这就是 OpenClaw 的架构和核心元素概览。
参考资料
opencraw架构拆解--不错的博客
https://ai-coding.wiselychen.com/openclaw-architecture-deep-dive-what-claude-code-didnt-tell-you/
Agent as resource
https://www.cnblogs.com/aibi1/p/19627963

浙公网安备 33010602011771号