OpenClaw 架構導覽

用一個 Gateway,讓你的 AI 助手同時在 Telegram、WhatsApp、Discord、Slack 等平台上回覆訊息、執行排程任務,還能記住之前的對話。

多通道整合
Cron 排程自動化
向量記憶 RAG
外掛生態系
跨平台部署

專案目錄結構

OpenClaw 是一個 monorepo,核心邏輯都在 src/ 裡面

核心模組

點擊任何一個模組卡片,可以看到更詳細的說明

通道整合

OpenClaw 內建 8 個核心通道,並透過 extensions 支援更多平台

核心通道(內建)
擴充通道(Extensions)
通道管理小知識:每個通道都支援多帳號(multi-account),如果連線斷掉會自動重試,最多 10 次,間隔從 5 秒指數增長到最長 5 分鐘。你可以透過 openclaw setup 來新增通道,或用 openclaw gateway 管理連線狀態。

排程機制:Heartbeat vs Isolated

OpenClaw 提供兩種排程模式,核心差異在於「是否共享主對話上下文」

Heartbeat Cron

sessionTarget: "main" · payload.kind: "systemEvent"
排程觸發時,Heartbeat Runner 會在主對話 Session 上執行。Agent 讀取 HEARTBEAT.md 裡的待辦清單來巡查,而且能看到之前聊過的所有內容。
優點
  • 能讀取完整對話上下文
  • 可跨次執行記住狀態,避免重複通知
限制
  • Context 持續累積,Token 消耗越來越大
  • 排程和一般對話共用 Session,會互相影響
適用場景:需要對話脈絡的任務,例如「幫我總結今天的聊天記錄」

Isolated Cron

sessionTarget: "isolated" · payload.kind: "agentTurn"
每次觸發都開一個全新的獨立 Sessioncron:<jobId>),執行完後可以把結果直接投遞到任何通道。完全不會影響主對話。
優點
  • 乾淨上下文,不污染主 Session
  • 可獨立指定 Model 和 Thinking 模式
  • Token 消耗每次獨立計算
限制
  • 每次都是全新 Session,沒有跨次記憶
  • 無法自動避免重複通知
適用場景:獨立任務,例如「每天早上抓 RSS 新聞摘要」
面向HeartbeatIsolated
Session共享主對話獨立 Session
上下文完整對話脈絡每次乾淨
記憶可跨次記憶每次重新開始
Token 消耗持續累積每次獨立
ModelAgent 預設可獨立指定
結果投遞寫回主 Session投遞到任意通道
選擇原則:問自己「這個排程任務需不需要知道之前的對話內容?」需要的話用 Heartbeat,不需要就用 Isolated。實務上大部分定時任務都不需要對話脈絡,所以 Isolated Cron 是比較常用的選擇

權限與安全機制

為什麼 OpenClaw 能讀取本機資料?又是怎麼保護你的?

核心原因:OpenClaw Gateway 用你的系統使用者身分執行,就像你自己開一個 terminal 一樣。如果你是 alice,Agent 就擁有 alice 的檔案權限。
但它不是毫無防備的 — 從外部訊息到實際讀取檔案之間,有 六層防線 層層把關。

六層權限防線

點擊任何一層查看詳細說明和設定範例

Agent 工具群組

Agent 能用的工具由 Tool Policy 控制,分成以下群組,可以用 allow / deny 精確管理

安全審計檢查項目

執行 openclaw doctor 會自動掃描以下風險

檢查項目嚴重度說明
一句話總結:OpenClaw 能讀本機資料是因為它用你的使用者身分執行。但透過 allowFrom 白名單、Tool Policy、Exec Approval、Docker Sandbox 等多層機制,確保只有被授權的人、用被允許的工具、執行被核准的指令,才能真正碰到你的檔案。開啟 Sandbox 模式後,Agent 會被關在 Docker 容器裡,只能碰到你 mount 進去的資料。

架構流程圖

從訊息進入到 Agent 回覆,再到排程執行和啟動流程

Chat Channels Telegram | WhatsApp | Discord | Slack | ... 訊息進入 Channel Manager server-channels.ts Routing / Bindings peer → guild → team → account → default Agent + SessionKey Gateway Server Config (hot reload) Plugin Registry Auth / Rate Limit Agent Engine Model Fallback | Skills | Security Memory (RAG) Vector + FTS5 + MMR Skills (Tools) github, weather, notion... LLM Providers OpenAI, Gemini, Claude... 回應 Sessions / Send Policy Channel Outbound (投遞回覆)
CronService cron/service.ts Heartbeat Cron requestHeartbeatNow() Heartbeat Runner Main Session + HEARTBEAT.md 結果寫回主 Session Isolated Cron runCronIsolatedAgentTurn() New Session (cron:jobId) Agent 獨立執行 + Skills Delivery 投遞 (Channel / Webhook)