SSD Nodes Learn Hosting plans →
指南 Matt Connor作者: Matt Connor

如何打造自己的 OpenClaw 風格 AI agent

OpenClaw 是可在自有伺服器執行命令的個人 AI agent。本文逐步拆解 gateway、頻道連接器與工具迴圈,並說明為何強化安全性必須優先。

OpenClaw 的實際定位

OpenClaw 是自架的個人 AI 代理程式。您可以在自己的伺服器上執行,連接到平時使用的聊天應用程式,讓它執行 shell 命令、控制瀏覽器、讀寫檔案,並根據您傳送的訊息採取行動。它採用 MIT 授權,以本機優先為設計原則;截至 2026 年年中,GitHub stars 已超過 380,000,成為該平台上獲得最多 stars 的專案之一。撇開外界雜訊不談,它其實是由一組規模不大的元件,以合理方式串接而成。本文會逐一說明這些元件,協助您了解這類工具的建構方式,以及其中容易出問題的部分。

先說明一項警告,因為它會影響下文的每個設計決策。2026 年 3 月,OpenClaw 維護者發布了大量安全性公告:僅 3 月 13 日就有 22 件,3 月 16 日又有 5 件;National Vulnerability Database 則記錄了當月發布的 199 個 OpenClaw CVE。3 月 13 日的公告批次包含 2 個評分為 9.9(滿分 10)的重大漏洞,其中一個是權限提升漏洞(CVE-2026-32922),可讓僅具備配對權限的裝置簽發完整的管理員 token。這個專案需要由您,也就是操作者,自行強化安全性。能夠執行任何命令的代理程式,其安全性取決於執行它的主機,以及您為它設定的限制。閱讀本文時,請牢記這一點。

閘道 daemon:單一程序,維持私有

核心是一個長時間執行的程序,通常稱為閘道。它是控制平面,負責接收訊息、決定處理方式、執行工具,並傳回回覆。其他元件都會接入其中。

閘道最重要的特性是它監聽的位置。在一般主機安裝中,OpenClaw 會將其繫結至迴路位址 127.0.0.1,因此除非刻意將其公開,否則無法從網際網路連入。容器映像檔是例外:OpenClaw 的安全性文件指出,容器預設會繫結至公開介面。因此,執行容器時,請保持驗證功能啟用,並且不要將其連接埠發布至網際網路。無論採用哪種方式,都應維持私有。這是唯一會持續執行命令的程序,因此公開閘道會讓任何找到它的人取得進入伺服器的遠端立足點。需要從筆記型電腦連線時,請透過 VPN 或 SSH tunnel,勿直接開放連接埠。無法連入的連接埠就無法遭到攻擊。

頻道連接器:接收訊息並送出回覆

只有能透過你現有的應用程式與個人代理程式互動時,它才真正有用。頻道連接器就是用來處理這件事。每個連接器負責與一個平台通訊,例如 Telegram、WhatsApp、Slack 或 Discord,並使用該平台的 bot API 或 webhooks。

所有連接器的運作方式都相同。連接器會在平台上註冊 bot,接收傳入訊息。它可以輪詢平台,也可以接收平台推送的 webhook。接著,連接器會將訊息交給 gateway,再透過相同的 API 傳回 gateway 的回覆。連接器只是薄型轉換層。它會將「收到 Telegram 訊息」轉換成「這是要提供給代理程式的文字」,再將回覆轉換回平台訊息。自行建立連接器時,主要工作是閱讀某個平台的 bot 文件,並將其訊息格式對應到 gateway 的格式。

大腦與工具迴圈

Gateway 內部有一個部分,讓它成為 agent,而不只是 chatbot。這個部分就是迴圈。

收到訊息後,gateway 會將訊息以及允許模型使用的工具清單,一併傳送給 language model。模型讀取訊息後會決定要直接回答,或呼叫工具。如果模型呼叫工具,gateway 就會執行該工具、擷取結果,再將結果傳回模型。模型讀取結果後會再次做出決定。這個流程會持續執行,直到模型沒有其他工作可做,並產生最終回覆。

這個迴圈就是 agent 的核心概念。無論 agent 是在 chat app 或 terminal 中執行,使用的都是相同迴圈。若要了解如何以標準方式將工具連接到這個迴圈,下一步可閱讀透過 Model Context Protocol 連接工具;若要了解模型端,在自己的硬體上執行模型可補足另一半內容。

工具集合就是重點,也是風險所在

OpenClaw 的強大之處在於工具。可以執行 shell 命令的工具、操作瀏覽器的工具,以及讀寫檔案的工具。讓上述迴圈存取這些工具後,它幾乎能執行你在鍵盤前可以完成的任何操作。這種操作範圍就是整個產品的核心,也正是全部風險的來源。

能夠執行任意命令,且會依據從聊天應用程式傳入的指示行動的代理程式,具有很大的攻擊面。錯誤指示、藏在瀏覽器工具造訪之網頁中的 prompt injection 攻擊,或 March 2026 的漏洞,都可能把「讀取我的行事曆」變成「刪除我的檔案」。因此,這些限制不是可有可無的附加功能。請讓代理程式以專用的非特權使用者身分執行,且不要授予 sudo 權限,避免遭入侵後進一步提升權限。將危險工具置於核准步驟之後,讓代理程式在執行破壞性操作前先提出要求。將工具執行置於 sandbox 中,讓失控的命令受到限制。隔離模型的 API key,避免洩漏後讓攻擊者取得你的帳戶。也請考慮同一台主機上的其他 secret,因為 Vaultwarden 真正的弱點是其管理員 token 與備份檔案,而不是其加密機制;具備 shell 存取權的代理程式可以接觸這兩者。

在公開任何會執行 shell 命令的功能前,請先刻意完成基本檢查。在此為自己的主機產生檢查清單,然後由上到下逐項執行:

ToolVPS hardening checklist

非特權使用者的部分已在 以非特權使用者身分執行服務 中詳細說明,而實際專案的完整安全設定流程則請參閱 在 VPS 上安全執行 OpenClaw。

以純文字檔案儲存記憶

多數人預期代理程式的記憶會儲存在資料庫中。但 OpenClaw 並非如此。它會將記憶儲存為磁碟上的純 Markdown 檔案,而這項設計值得採用。這些檔案是唯一可信來源;預設的記憶引擎會在旁邊建立 SQLite 搜尋索引,而且可以從檔案重新建置該索引。

檔案很簡單。不需要遷移 schema、不需要持續執行的服務,也不需要學習查詢語言。檔案內容可直接檢查:您可以開啟資料夾,確實讀取代理程式對您的認知;若有錯誤備註,可直接編輯檔案加以修正;若要刪除某項記憶,也只需移除對應檔案。檔案也具備可攜性,因為將代理程式移至新伺服器只需複製一個目錄。對單一使用者的個人代理程式而言,一組文字檔案就已足夠,也能讓整個系統更容易理解與管理。

技能:可攜式的能力擴充方式

除了內建工具之外,OpenClaw 使用可攜式的技能格式,讓社群不必修改核心程式即可擴充功能。技能是由指示組成的自足式套件,有時也會包含程式碼,用來教導代理執行新的工作。代理會在工作需要時載入技能。網頁搜尋通常是人們首先加入的功能,而將 該技能指向自行架設的 SearXNG 執行個體,可讓查詢不經由商用搜尋 API,同時清楚呈現技能的信任邊界,因為它傳回的所有內容都是陌生人撰寫的文字。

這類格式的價值在於能分享能力。有人為特定工作撰寫技能並發布,其他人即可直接加入。這種便利也有風險,因為技能是陌生人提供的程式碼,而代理會毫不遲疑地執行它。因此,載入任何非自行撰寫的技能前,最好先交由 自行架設的安全掃描器 檢查。如果你要建立自己的代理,及早定義小巧且清楚的擴充格式,就能避免日後將每項功能硬編碼到核心中。

自行提供模型

OpenClaw 不限於特定模型。它不內建語言模型,而是連接到您選擇的模型。該模型可以是託管 API,也可以是由您自行執行的模型。

這種分離方式會直接影響成本、隱私與控制權。託管 API 不需要您管理硬體,就能使用能力最強的模型,但必須依 token 計費,且提示內容會離開您的伺服器。使用 Ollama 等工具提供的自架模型,則能讓所有訊息留在您自己的主機上;代價是需要自行負擔硬體與電力,且可用的模型可能較小或速度較慢。許多人會混合使用兩種方式。若您希望讓 agent 完全維持私密,在您的 VPS 上自架模型 是補上最後一道隱私缺口的關鍵,而 Hermes Agent 也是值得拿來比較的另一個自架 agent。

要自行建置嗎?

這些功能都能自行建置。所需元件並不特殊:一個 daemon、幾個聊天連接器、模型與工具的執行迴圈、一個存放 Markdown 的資料夾,以及一種 plugin 格式。了解這些元件確實很有用,因為這能讓你看清楚所有將使用的 agent,也能明確知道風險所在。

但對大多數人而言,務實的做法是執行現成方案並加以強化,而不是重新實作。OpenClaw 已經處理好連接器、執行迴圈與 skill 格式,也接受過實際的安全性檢視。你應該把時間花在真正需要由你處理好的部分,也就是在自己的伺服器上完成設定與強化。如果你想先採取學習路線,分階段逐步建立這些概念會比直接閱讀 agent 原始碼更有效,因為每個階段都會留下你實際建置的一項成果。建置一個小型版本來學習。執行現成版本並加以鎖定,以供實際使用。

一般基礎可參考在 VPS 上建置自己的 AI agent;使用 Claude 建置 agent則以特定模型作為核心,展示相同的概念。

FAQ

建立像 OpenClaw 這類的代理程式很困難嗎?

各個組成部分本身並不困難。閘道程序、聊天連接器、模型與工具迴圈,以及檔案目錄,分開來都很容易實作。困難之處在於安全性。能從聊天訊息執行 shell 命令的代理程式,會形成嚴重的安全攻擊面。正確設定沙箱、權限與非特權使用者,比串接各項功能需要更多工作。

OpenClaw 為什麼使用 Markdown 檔案儲存記憶,而不是使用資料庫?

因為對單一使用者的個人代理程式而言,檔案已經足夠,而且簡單得多。不需要執行資料庫服務,記憶內容容易讀取,也能手動修正;將代理程式搬到另一台伺服器時,只需複製目錄即可。資料庫適合更大規模的使用情境,但不適合這裡的需求。

個人 AI 代理程式最危險的部分是什麼?

是讓它能夠採取行動的工具:執行 shell 命令、控制瀏覽器,以及寫入檔案。這些工具是建立代理程式的原因,也是它可能造成傷害的原因。OpenClaw 在 March 2026 發布的一系列安全性公告,是必須謹慎處理工具層的最明確理由。13 至 16 March 期間共發布 27 則公告,其中包含 2 個評分為 9.9 的重大漏洞。應以非特權使用者執行、限制具破壞性的操作,並將執行環境置於沙箱中。

建立這類代理程式需要自己的語言模型嗎?

不需要。OpenClaw 這類代理程式與模型無關,因此可以連接自行選擇的模型。若要使用能力最強的模型,可以選擇代管式 API;若要完整隱私,則可以自行執行模型。使用 Ollama 自行代管時,所有訊息都會留在自己的伺服器上,但代價是必須執行較小的模型。