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"
每次觸發都開一個全新的獨立 Session(
cron:<jobId>),執行完後可以把結果直接投遞到任何通道。完全不會影響主對話。
優點
- 乾淨上下文,不污染主 Session
- 可獨立指定 Model 和 Thinking 模式
- Token 消耗每次獨立計算
限制
- 每次都是全新 Session,沒有跨次記憶
- 無法自動避免重複通知
適用場景:獨立任務,例如「每天早上抓 RSS 新聞摘要」
| 面向 | Heartbeat | Isolated |
|---|---|---|
| Session | 共享主對話 | 獨立 Session |
| 上下文 | 完整對話脈絡 | 每次乾淨 |
| 記憶 | 可跨次記憶 | 每次重新開始 |
| Token 消耗 | 持續累積 | 每次獨立 |
| Model | Agent 預設 | 可獨立指定 |
| 結果投遞 | 寫回主 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 回覆,再到排程執行和啟動流程