SSD Nodes Learn
指南 Matt Connor作者: Matt Connor · 已更新 2026-07-24

如何開發 OpenClaw 風格的自架式 AI Agent

本文深入解析 OpenClaw 架構,從 Gateway daemon 到 Channel connectors,逐步拆解建構個人 AI Agent 的技術細節。特別針對安全性提出警告,並針對 CVE-2026-32922 權限提升漏洞說明為何在設計時必須優先進行系統強化。

OpenClaw 的實際定義

OpenClaw 是一個自架式 (self-hosted) 個人 AI agent。您可以在自己的伺服器上執行它,並將其連接至您現有的聊天應用程式。它可以執行 shell 指令、控制瀏覽器、讀取與寫入檔案,並根據您傳送的訊息採取行動。它採用 MIT 授權,以本地優先 (local-first) 為核心。截至 2026 年中,其在 GitHub 上已獲得超過 380,000 個 stars,是該平台上最受歡迎的專案之一。在繁複的架構之下,它其實是由一組以合理方式組合在一起的輕量組件構成。本文將介紹這些組件,幫助您理解此類工具的建構方式以及潛在的風險點。

首先有一個警告,這會影響下文所有的設計選擇。在 2026 年 3 月,OpenClaw 在四天內被披露了九個安全性問題,其中包括一個評分為 9.9/10 的嚴重權限提升漏洞 (CVE-2026-32922)。該專案的設計理念是讓操作者(您)來進行強化 (harden)。一個可以執行任何指令的 agent,其安全性完全取決於其執行環境的安全性以及您設定的限制。閱讀時請務必記住這一點。

Gateway daemon:單一且私密的進程

核心是一個持續運行的單一進程,通常稱為 gateway。它是控制平面 (control plane)。它負責接收訊息、決定執行動作、執行工具並傳回回覆。其他所有組件都連接至此。

關於 gateway 最重要的特性是其監聽位址。預設情況下,OpenClaw 會將其綁定至 loopback 位址 127.0.0.1,因此除非您刻意公開,否則從網際網路無法存取。請保持此設定。由於該進程負責執行指令,一旦 gateway 被公開,任何發現它的人都能藉此取得進入您伺服器的遠端據點。當您需要從筆記型電腦連接時,請使用 VPN 或 SSH tunnel,而非開啟連接埠 (port)。無法接觸到的連接埠便無法被攻擊。

Channel connectors:訊息輸入與回覆輸出

個人 agent 只有在您能透過現有應用程式與其對話時才具有實用價值。這就是 channel connectors 的功能。每個 connector 使用該平台的 bot API 或 webhooks 與單一平台(如 Telegram、WhatsApp、Slack 或 Discord)通訊。

所有 connector 的結構都相同:connector 向平台註冊一個 bot,接收傳入的訊息(透過輪詢平台或接收平台推送的 webhook),將訊息傳遞給 gateway,最後透過相同的 API 傳回 gateway 的回覆。connector 是一個輕量級的轉換層,負責將「收到 Telegram 訊息」轉換為「這是給 agent 的文字」,反之亦然。開發自定義 connector 主要涉及閱讀平台的 bot 文件,並將其訊息格式對應至 gateway 的格式。

核心邏輯與工具迴圈 (The brain and the tool loop)

在 gateway 內部,有一個部分使其成為 agent 而非單純的 chatbot。這是一個迴圈 (loop)。

訊息傳入後,gateway 會將訊息連同允許模型使用的工具列表傳送給語言模型。模型讀取訊息並決定:直接回答,或是呼叫工具。如果模型選擇呼叫工具,gateway 會執行該工具、擷取結果,並將結果傳回模型。模型查看結果後再次做出決定。此過程會不斷重複,直到模型完成任務並產生最終回覆。

這個迴圈是 agent 的核心概念,無論 agent 是運行在聊天應用程式還是終端機 (terminal),其邏輯皆相同。若要了解如何以標準方式將工具連接至此迴圈,建議閱讀 connecting tools through the Model Context Protocol;若要了解模型端,running the model itself on your own hardware 提供了另一半的資訊。

工具集是核心,也是風險所在

工具是 OpenClaw 強大的原因。例如執行 shell 指令的工具、驅動瀏覽器的工具、讀寫檔案的工具。若給予上述迴圈這些權限,它幾乎可以執行您在鍵盤上能做的任何操作。這種能力是產品的核心價值,同時也是主要的風險來源。

一個能根據聊天應用程式指令執行任何指令的 agent,具有龐大的攻擊面。錯誤的指令、隱藏在瀏覽器工具訪問的網頁中的 prompt-injection 攻擊,或是像 2026 年 3 月那樣的漏洞,都可能將「讀取我的行事曆」變成「刪除我的檔案」。因此,限制條件並非選配。請以無權限 (unprivileged) 用戶身份執行 agent,且不給予 sudo 權限,以防止權限提升。針對危險工具設置審核步驟,讓 agent 在執行破壞性動作前先詢問。對工具執行進行沙箱化 (sandbox),以限制失控指令的影響範圍。隔離模型的 API key,避免洩漏導致帳戶被盜。

在公開任何可執行 shell 指令的組件前,請務必謹慎完成基礎設定。您可以參考下方的檢查清單來設定您的環境,並由上而下執行:

ToolVPS hardening checklist

關於無權限用戶的詳細說明,請參閱 running services as an unprivileged user;關於實際專案的完整安全設定指南,請參閱 running OpenClaw safely on a VPS

以純文字檔案作為記憶體

大多數人預期 agent 的記憶體會儲存在資料庫中,但 OpenClaw 並非如此。它將記憶體以純 Markdown 檔案的形式儲存在磁碟上,這是一個值得效法的選擇。

檔案非常簡單:沒有需要遷移的 schema,沒有需要維持運行的服務,也沒有需要學習的查詢語言。檔案易於檢查:您可以直接開啟資料夾,查看 agent 對您的認知,透過編輯檔案來修正錯誤,或透過刪除檔案來清除記憶。此外,檔案具備可移植性,因為將 agent 移至新伺服器只需複製資料夾即可。對於單人使用的個人 agent,一個文字檔案資料夾便已足夠,且能讓整個系統的邏輯保持清晰。

Skills:增加能力的便攜方式

除了內建工具外,OpenClaw 使用可攜行的 skill 格式,讓社群可以在不更動核心的情況下擴充功能。一個 skill 是包含指令(有時包含程式碼)的獨立封裝,用來教導 agent 新任務。當任務需要時,agent 會載入該 skill。

這種格式的價值在於能力可以被共享。有人為特定工作編寫 skill 並發布,其他人只需將其放入即可使用。如果您正在開發自己的 agent,儘早定義一個簡單且明確的擴充格式,可以避免日後必須將所有功能都硬編碼 (hard-code) 進核心。

自備模型 (Bring your own model)

OpenClaw 與模型無關 (model-agnostic)。它不內建語言模型,而是連接到您選擇的模型,無論是託管式 API 或您自行運行的模型。

這種區分對成本、隱私與控制權至關重要。使用託管式 API 可以使用最強大的模型且無需管理硬體,但需支付 token 費用,且提示詞 (prompts) 會離開您的伺服器。使用 Ollama 等工具自行託管模型,可以將所有訊息保留在您的設備上,成本僅為硬體與電力,代價是可能需要運行較小或較慢的模型。許多人會混合使用這兩種方式。若要實現完全私密的 agent,self-hosting the model on your VPS 是最後的關鍵,而 Hermes Agent 則是另一個值得比較的自架式 agent。

您應該自己開發一個嗎?

您可以開發出這一切。這些組件並不罕見:一個 daemon、幾個聊天連接器、一個模型與工具的迴圈、一個 Markdown 資料夾以及一個插件格式。理解這些內容非常有幫助,因為這能揭開所有 agent 的神秘面紗,並讓您確切知道風險所在。

但對大多數人來說,誠實的答案是:直接運行現有的產品並進行強化,而不是重新發明它。OpenClaw 已經解決了連接器、迴圈與 skill 格式的問題,並經過了實際的安全檢驗。您的精力應該花在真正屬於您的部分:即在您自己的伺服器上進行設定與強化。建立一個小型的版本用於學習,運行並鎖定正式版本用於實作。

基礎架構的相關內容請參閱 building your own AI agent on a VPS,而 building an agent with Claude 則展示了以特定模型作為核心的相同概念。

FAQ

開發像 OpenClaw 這樣的 agent 很困難嗎?

個別組件並不困難。gateway 進程、聊天連接器、模型與工具迴圈以及檔案資料夾,每一項本身都很直觀。困難的部分在於如何安全地執行。一個能透過聊天訊息執行 shell 指令的 agent 具有嚴重的安全性風險,正確設定沙箱、權限與無權限用戶環境的工作量,遠比將功能串接起來還要大。

為什麼 OpenClaw 使用 Markdown 檔案而非資料庫來儲存記憶體?

因為對於單人使用的個人 agent 來說,檔案已經足夠且簡單得多。不需要運行資料庫服務,記憶體可以手動讀取與修正,且將 agent 移至其他伺服器只需複製資料夾。資料庫適用於大規模應用,而非此類場景。

個人 AI agent 最危險的部分是什麼?

是讓它能夠採取行動的工具:執行 shell 指令、控制瀏覽器以及寫入檔案。這些是開發它的動機,也是它可能傷害您的原因。OpenClaw 在 2026 年 3 月的安全事件(四天內出現九個問題,包含一個 9.9 評分的嚴重漏洞)清楚說明了必須謹慎對待工具層:請以無權限用戶身份執行、為破壞性動作設置審核,並對執行過程進行沙箱化。

我需要自備語言模型才能開發嗎?

不需要。像 OpenClaw 這樣的 agent 是與模型無關的,因此您可以連接任何您選擇的模型。這可以是提供最強大模型的託管式 API,也可以是為了完全隱私而自行運行的模型。使用 Ollama 進行自架,雖然代價是可能需要運行較小的模型,但能將所有訊息保留在您的伺服器上。