如何在 VPS 上架設 AI Agent:核心概念與實作指南
深入了解 AI Agent 的運作本質,從語言模型迴圈、工具呼叫機制到 Model Context Protocol (MCP) 標準。本文教你如何利用 VPS 建立具備執行能力的 Agent,並透過 Function calling 與 MCP Server 實現工具的複用與系統整合。
AI Agent 的本質是什麼
AI Agent 是封裝在語言模型(Language Model)周圍的迴圈。模型讀取現況、決定一個動作,接著由你的程式碼執行該動作,結果再回傳給模型,如此循環直到任務完成。這就是核心概念。一般的 Chatbot 回答一次後就會停止;Agent 則會持續運作,在輪次之間執行實際動作,直到達成你設定的目標。
「動作」是關鍵所在。語言模型本身僅能產生文字,無法讀取檔案、呼叫 API 或執行指令。Agent 會賦予模型一套允許使用的工具(Tools)以及請求工具的方式。當模型想要搜尋網路或寫入檔案時,它不會親自執行,而是發出一個結構化請求,由你的程式碼執行工具,並將結果作為模型下一次讀取的內容。模型提供判斷力,而你的伺服器提供執行力。
並非所有任務都需要 Agent,預設就使用 Agent 是常見的錯誤。如果步驟是預先確定的,使用簡單的 Script 會更簡單、快速且可靠。「每小時抓取此頁面並將價格寄給我」是排程工作(Scheduled job),而非 Agent。當路徑無法預先確定,且模型必須根據發現的資訊來決定下一步時,才需要建立 Agent。Agent 的代價是不可預測性,因此只有在靈活性能帶來實質效益時才使用。
Tools:Agent 如何執行動作
工具(Tool)是你提供給模型能力的任何功能,且其描述必須足以讓模型知道何時該使用它。讀取檔案、執行 Shell 指令、查詢資料庫、傳送訊息:每一項都是具有名稱、簡短描述與輸入參數列表的工具。由你定義工具,模型決定何時呼叫它們。
無論使用哪種模型,機制都是相同的。模型會回傳一個包含工具名稱與填入參數的結構化請求。你的程式碼偵測到該請求後,執行對應的 Function,並在下一輪回傳結果。模型讀取結果後,決定是要呼叫另一個工具,還是輸出最終答案。Function calling 是每個 Agent 的底層機制,而驅動它的迴圈僅需幾行普通的程式碼。
這也是你進行控制的地方。模型可以請求執行指令,但在你的程式碼選擇執行之前,不會有任何動作發生。這個間隙可以用來放置危險動作的核准提示(Approval prompts)、工具存取範圍的限制,以及 Agent 的行為日誌。Agent 的安全性取決於你提供的工具以及你設置的檢查機制。
MCP:連接工具的標準方式
為每個服務手動撰寫新的整合程式碼非常耗時。Model Context Protocol(MCP)是一個解決此問題的開放標準。你不需要為檔案、資料庫和問題追蹤器分別編寫新工具,只需將 Agent 指向一個已經將這些功能暴露為工具的 MCP Server。Agent 使用單一協定,而 Server 負責與實際系統溝通。
這帶來了複用性(Reuse)的優勢。別人為你使用的服務所寫的 MCP Server,可以無需新整合程式碼就直接供你的 Agent 使用;而你寫的 Server 也能被任何支援該協定的 Agent 使用。在 VPS 上這點很重要,因為你可以將 MCP Server 作為獨立的小型服務與 Agent 並行執行,且每個 Server 僅擁有必要的權限。我在 running MCP servers on a VPS 中介紹了相關設定。
記憶體與檢索
語言模型在呼叫之間沒有自身的記憶力。關於當前任務的所有資訊,必須在每一輪都傳遞給它。對於短任務這沒問題,因為整個對話可以包含在單個請求中。對於較長的任務,你必須自行管理記憶體,這有兩種值得了解的模式。
第一種是草稿本(Scratchpad)。你給 Agent 一個可以讀寫的檔案,並要求它在執行過程中記錄所學到的內容。在下一輪或下一個 Session,它會讀取該檔案並從上次中斷處繼續。這是一種將記憶體視為普通文件的做法,因為 Agent 會將該檔案視為另一個工具。
第二種是檢索(Retrieval)。當 Agent 需要從龐大的文件集中獲取知識,而這些文件無法放入單個請求時,你需要將文件以可搜尋的形式儲存,並僅在需要時將相關片段提取到模型的視角中。這種模式稱為檢索增強生成(RAG)。Agent 提出問題,你的程式碼找到匹配的段落,並僅將這些段落傳送給模型。儲存庫位於你的伺服器上,因此你的私密文件不會離開伺服器。
多個 Agent 與一個協調者
一個擁有許多工具的 Agent 可以應對大多數任務。當任務龐大或自然拆分為多個部分時,另一種結構會更有幫助:由一個協調者 Agent(Coordinator agent)將任務委派給專門的子 Agent(Sub-agents)。協調者將目標拆解,將每個部分交給專為該工作設計的子 Agent,最後整合結果。
這樣做的優點是專注度。擁有窄化任務與小型工具集的子 Agent,其決策品質會優於處理所有事情的通用型 Agent,且獨立的部分可以同時執行。代價是協調成本,這確實存在,因此在任務明顯需要更多支援前,請保持使用單一 Agent。從簡單開始,僅在單一 Agent 顯得吃力時才增加 Agent。
Self-hosted 或 Hosted:哪種模式執行你的 Agent
模型是 Agent 中你不需要自行運行的部分,選擇其存放位置是你最重要的決定。透過 API 存取的 Hosted model(託管模型)提供最強的推理能力且無需維護:你傳送文字,它回傳文字。Self-hosted model(自行託管模型)運行在你的伺服器上,這能確保每個請求的隱私,成本是固定價格而非按 Token 計費,且不依賴他人的服務穩定性。這是在能力與工作量之間的權衡。頂尖的 Hosted models 優於你能自行運行的模型,而自行託管則意味著你必須提供足夠的記憶體。
最後一點是實際的限制。模型必須符合你伺服器的記憶體容量,如果你使用 GPU,則必須符合其顯存(Video memory)容量。對於硬體來說過大的模型將無法載入。在規劃自行託管的 Agent 之前,請確認你想要的模型是否符合現有的機器:
如果數值不符,你有三個選擇:選擇較小的模型、使用更激進的量化(Quantization)來縮小體積,或者使用 Hosted API 進行推理,僅將工具與數據保留在伺服器上。許多自行託管的 Agent 是從透過 Ollama on a VPS 運行本地模型開始,並在處理最難的步驟時回退(Fallback)到 Hosted API。
伺服器是危險所在
一個可以執行 Shell 指令並寫入檔案的 Agent 功能強大,這也正是其危險之處。模型的判斷雖然優秀但不完美,錯誤的指令、Bug 或惡意輸入都可能讓一個有用的 Agent 變成刪除錯誤檔案或洩漏機密的工具。安全性工作是不可或缺的,且在伺服器上這是最重要的部分。
幾個習慣可以承擔大部分風險。以專用的非特權用戶(Unprivileged user)而非 root 身份執行 Agent,以限制錯誤造成的影響;相關概念請參閱 running services as an unprivileged user。將 API key 等機密資訊與程式碼分離,並僅限該用戶讀取。對接觸系統的工具進行沙盒化(Sandbox),確保 Agent 只能存取真正需要的資源。關於強化實際自行託管 Agent 的實作範例,請參閱 running OpenClaw safely on a VPS。如果你偏好使用 Hosted model 來處理智慧運算,關於 building an agent with Claude on a VPS 的指南採用了相同的概念並套用在特定模型上。
關於實作範例,building an OpenClaw-style personal agent 應用了這些元件;如果你想直接運行現成的方案,可以從 self-hosting Hermes Agent on a VPS 或 running Agent Zero on your own server 開始,而 the best self-hosted AI agents in 2026 則逐一比較了我們介紹的所有現成選項。
FAQ
AI Agent 與 Chatbot 有什麼區別?
Chatbot 回答訊息後就會停止。Agent 則是執行一個迴圈:模型決定動作,你的程式碼執行動作,結果回傳給模型,並重複此過程直到任務完成。區別在於 Agent 會在輪次之間執行實際動作(例如呼叫工具來讀取檔案、執行指令或查詢服務),而不僅僅是產生文字。
在 VPS 上執行 AI Agent 需要 GPU 嗎?
只有當你自行託管(Self-host)模型時才需要。Agent 迴圈、工具與記憶體是普通的程式碼,在沒有 GPU 的一般 VPS 上即可正常執行。當你想在自己的硬體上執行語言模型時,GPU 非常重要,因為模型必須符合記憶體容量。如果你透過 API 使用 Hosted model,繁重的運算會在別處完成,一個配置適中的 VPS 即可。
什麼是 MCP,我需要它來建立 Agent 嗎?
MCP(Model Context Protocol)是將 Agent 連接到工具與資料來源的開放標準。你並非絕對需要它,因為你可以手動撰寫每個工具。MCP 透過讓你可以複用現有的通用服務 Server,並只需一次性地為任何 Agent 暴露你的系統,從而節省開發工作。隨著整合數量增加,這項便利性會變得非常值得。
給予 AI Agent 存取我伺服器的權限安全嗎?
如果你能加以控制,就是安全的。執行指令的 Agent 其安全性取決於它運行的帳號與你允許的工具。請以非特權用戶身份執行,將機密資訊隔離,對接觸檔案系統的工具進行沙盒化,並要求對難以撤銷的動作進行核准。請將 Agent 視為一個「聰明的不可信程式碼」,並僅給予它任務所需的權限。