OpenClaw 核心运行机制与流程分析
源码路径:
/Users/zhangquanquan/WorkBuddy/20260327195403/openclaw
版本: latest(2026年初)
项目定位: 开源个人 AI 助手,运行在自己的设备上,接入 30+ 消息平台
一、项目全局架构
1 | ┌─────────────────────────────────────────────────────────────────────┐ |
二、启动流程(Cold Start)
2.1 入口:src/entry.ts → src/index.ts
1 | openclaw gateway 命令 |
2.2 Gateway 启动序列:server.impl.ts → startGatewayServer()
1 | startGatewayServer() |
三、消息处理核心流程
3.1 入站消息全链路
1 | 用户在 WhatsApp/Telegram 等渠道发送消息 |
3.2 Agent 命令执行:src/agents/agent-command.ts
1 | agentCommand(opts) |
3.3 Agent 执行核心:pi-embedded-runner/run.ts
1 | runEmbeddedPiAgent(params) |
四、会话(Session)管理机制
1 | Session 标识体系: |
五、工具(Tools)执行架构
1 | AI 模型生成 tool_use 请求 |
六、Hooks 系统
1 | 外部事件触发入口(HTTP): |
七、插件(Plugin)系统
1 | 插件类型: |
八、多 Agent 架构
1 | 默认 Agent:agents.defaults 配置 |
九、BOOT.md 引导机制
1 | Gateway 启动时检测工作空间下的 BOOT.md |
十、关键数据流总结
1 | ┌─────────────────┐ |
十一、技术栈总览
| 层次 | 技术 |
|---|---|
| 运行时 | Node.js 22/24,TypeScript |
| AI SDK | @mariozechner/pi-coding-agent(内嵌 Agent 核心) |
| 消息协议 | WebSocket(内部)+ HTTP REST(控制面) |
| 并发模型 | 基于 Lane 的任务队列(session 级 + 全局级) |
| 配置格式 | TOML(openclaw.toml) |
| 会话存储 | JSON 文件(~/.config/openclaw/sessions/) |
| 插件分发 | npm 包 + ClawHub 平台 |
| 测试框架 | Vitest(单元/集成/E2E) |
| 容器化 | Docker + docker-compose + Podman |
| 守护进程 | launchd(macOS)/ systemd(Linux) |