Skip to content

OpenClaw 架構總覽

源码版本v2026.6.11

一句話

OpenClaw 是一個常駐 gateway + 多通道接入 + agent 主循環的個人 AI 助手:gateway 收訊息 → 餵給 agent → agent 反覆呼叫模型和工具 → 結果經 gateway 投遞回各通道。所有能力(工具/技能/外掛/provider/MCP/通道)都是可插拔的註冊表。

分層

每層一句話

  • 啟動與入口:openclaw.mjs 做 Node 版本檢查,轉發到 src/entry.ts,再由 src/cli/run-main.ts 分派子指令。
  • 閘道層:startGatewayServer 是常駐進程,透過 RPC 方法表接收請求,把 agent 事件廣播到 WebSocket 用戶端。
  • Agent 主循環:embedded-agent-runnerwhile(true) 驅動每輪對話,單輪 attempt 完成 LLM 呼叫和 tool_use/tool_result 配對。
  • 能力層:工具是 Map 註冊,技能是指引模型讀 SKILL.md,外掛按目錄約定發現,provider 按廠商分流,MCP 雙向橋接。
  • 通道層:22 個通道(WhatsApp/Telegram/Slack...)透過 registry + loader + plugin 註冊接入,閘道統一排程。
  • 設定系統:openclaw.json 是唯一設定入口,Zod schema 做執行時校驗。
  • 記憶與上下文:Context Engine 抽象壓縮 (compaction) 契約,記憶檔案存 workspace 根。
  • 排程與擴展:Cron 在隔離 agent session 跑 job,Tasks 用 SQLite 持久化,ACP 橋接 IDE。
  • 部署:gateway 是常駐進程,daemon 把它裝成系統服務,或用 Docker/Fly 跑。

分層動機

為什麼這麼分?OpenClaw 把「訊息從哪來」(通道)、「怎麼處理」(agent 循環)、「用什麼能力」(工具/技能/外掛/provider)、「怎麼持久」(設定/記憶/排程)、「怎麼跑起來」(部署)完全解耦。這樣換通道不影響 agent 邏輯,換模型不影響工具,加外掛不用改核心。gateway 是唯一的中樞,所有跨層協調都過它。

常見誤讀

  • 「OpenClaw 是個聊天 bot」——不全是。bot 只是通道層的一個面,gateway 才是產品核心,agent 循環是大腦。
  • 「工具和技能是一回事」——不是。工具是可呼叫的函式,技能是 Markdown 指引讓模型自己決定何時讀、讀了做什麼。
  • 「MCP 只是 client」——OpenClaw 同時是 MCP server(把自身能力暴露給外部)和 client(消費外部 MCP server)。

推薦閱讀順序

先看 啟動與入口,再看 閘道核心Agent 主循環,然後按 能力層通道層設定系統記憶排程部署 的順序往下。

對照官方資料:OpenClaw 官網 · 官方文件 · DeepWiki