SSD Nodes Learn Hosting plans →
指南 Matt Connor作者: Matt Connor · 已更新 2026-08-30

如何在 VPS 上用 Claude 建立 AI 代理程式

了解如何以 Claude Messages API 作為推理核心,搭配 tool use 與 MCP,讓代理程式在自己的 VPS 上執行並由你掌控工具與資料。

使用 Claude 建立代理程式的意義

使用 Claude 建立代理程式,表示將 Claude 作為推理核心,而將迴圈、工具與資料放在自己的伺服器上。由 Claude 決定要執行的工作,再由你的 VPS 執行。你將工作與目前狀態傳送給 Claude,Claude 回傳答案,或要求使用其中一項工具。你的程式執行該工具,再將結果傳回 Claude。這個迴圈會持續進行,直到工作完成。智慧功能是透過網際網路呼叫的服務,其餘部分都由你掌控。

這種分工正是它的吸引力。你不必自行操作模型,就能取得前沿等級的推理能力。同時,由於工具在你擁有的硬體上執行,你可以完全控制代理程式能接觸哪些內容。如果你已經建立第一個 Claude 程式,在 VPS 上建立第一個 Claude 應用程式的指南涵蓋了本篇教學所依據的基礎。

Claude 是核心:Messages API

Claude 的每次呼叫都會經過同一個端點:Messages API。您傳送目前為止的對話內容,以及 agent 可使用的工具清單;Claude 會回傳下一則訊息。該訊息可能是最終答案,也可能是要求呼叫工具。自行建置時,不存在獨立的「agent API」;工具使用是這個單一端點的功能,而端點外圍的迴圈則由您負責執行。

Claude 在不同呼叫之間不會保留狀態,也就是說,它不會自行記住任何內容。每個請求都必須包含完整對話內容。您的程式會保存歷程,並在每一輪傳送歷程,這就是長時間工作階段中,每一輪所需的 token 都比上一輪更多的原因。這與其說是限制,不如說是設計選擇:由於狀態儲存在您的伺服器上,您可以精確決定 Claude 能看到的內容,也不會讓任務資料儲存在您無法控制的位置。但這確實會讓提示持續變長。Claude 的 context window 通常能輕鬆容納這些內容,但同一個迴圈中的本機模型無法如此處理,因此必須先提高 Ollama 的 num_ctx,才能停止截斷過長的提示

工具使用就是 agent 迴圈

使用 Claude 的 agent 迴圈很容易說明。您傳送包含工具的請求。Claude 讀取任務內容後,如果需要採取行動,就會回傳工具使用請求,指定工具並填入輸入值。您的程式執行該工具,然後在下一個請求中將結果傳回 Claude。Claude 讀取結果後,會再要求使用其他工具,或撰寫最終回覆。當它不再要求使用工具時,任務就完成了。

您可以用幾行程式手動撰寫這個迴圈。許多人會這麼做,因為流程容易查看,也容易控制。官方 SDK 也提供 tool runner,替您驅動這個迴圈:您提供工具函式,SDK 會負責反覆呼叫 Claude、執行工具,並將結果回傳給 Claude,直到 Claude 完成任務。無論採用哪種方式,整體結構都相同。runner 只是免除您自行撰寫迴圈的工作。如果迴圈仍然過於抽象,最好的方法是在使用 runner 前先撰寫一個最小版本。這是後續所有內容的基礎,請參閱這套從零開始學習 AI agent 的分階段路徑

建置方式,以及適合 VPS 的選項

建置 Claude agent 有 3 種方式,差別在於由你執行多少底層元件。

第一種方式是使用自有程式呼叫 Claude API,並搭配自有工具。你可以自行撰寫迴圈,或使用 SDK 的 tool runner,然後在自己的 VPS 上執行完整系統。這是最常見的選擇,因為你能完全控制工具、資料與安全性,而且系統會以伺服器上的一般程式執行。本指南大多以這種方式為前提。

第二種方式是 Claude Agent SDK。這是以 library 形式提供的 Claude Code,也就是可供你建置的 coding agent。它內建完整的 agent loop,以及讀寫檔案、執行 shell 指令和搜尋等工具,因此不必從頭組合這些功能。它同樣在你自己的伺服器上執行;如果你想要具備檔案與 shell 操作能力的 agent,又不想自行建置 harness,這會是很適合 VPS 的選擇。能讀取檔案並執行 shell 指令的 agent,在無人值守前必須先完成隔離;在伺服器上安全執行 Claude Code 會介紹權限系統、sandbox 與隔離選項。

第三種方式是 Managed Agents,由 Anthropic 執行 agent loop,並代管供 agent 工具執行的 sandbox。這是最省管理工作的選項:你需要維運的元件少得多,但 agent 的工作區會位於 Anthropic 的基礎架構,而不是你的 VPS。當你希望將維運工作降至最低,且不需要工具在自己的機器上執行時,應選擇這種方式。至於另外 2 種方式,agent 會以你的伺服器為執行環境,這正是本指南後續內容的重點。

連接工具與 MCP

無論選擇哪種方式,都需要將 agent 連接到實際系統,而 Model Context Protocol 是一種簡潔的做法。MCP 是用於向 agent 提供工具與資料的開放標準。與其為每項服務手動撰寫整合程式,不如將 Claude 指向已經把這些能力呈現為工具的 MCP server。您可以將 MCP server 以小型服務的形式執行在同一台 VPS 上,並只授予各服務所需的存取權限。相關內容請參閱 在 VPS 上執行 MCP server

選擇模型

Claude 提供多種模型,選擇時需要在能力、速度與成本之間取捨。截至本文撰寫時,主流選項包括 Claude Opus 4.8(claude-opus-4-8),適合複雜推理與長時間代理執行的高能力預設模型;Claude Sonnet 5(claude-sonnet-5),在許多工作中維持接近 Opus 的表現,同時成本較低、速度較快的均衡選項;以及 Claude Haiku 4.5(claude-haiku-4-5),適合簡單且大量執行的步驟,速度最快、成本最低。其上還有 Claude Fable 5(claude-fable-5),這是能力最強的模型,適合要求最高的工作。在程式碼中使用確切的模型識別碼,不要在識別碼後加上日期。

實務上可以混合使用不同模型。讓成本較低的模型處理例行工具呼叫,讓能力較強的模型處理複雜決策。模型在請求中只是一個字串,因此切換模型只需修改一行。建議先使用能力較強的預設模型,再針對速度或成本比最後一點品質更重要的情況,改用較低階的模型。

在 VPS 上以強化服務執行

代理程式只有持續執行才有用,也只有受到隔離才安全。在 VPS 上,應將代理程式作為強化的 system service 執行,而不是手動在終端機中啟動的程式。作為服務執行時,它會在開機時啟動,當機時自動重新啟動,並將日誌寫入 journal。經過強化後,它會以非特權使用者執行,只具備必要的存取權限,因此即使程式有錯誤或收到不當指令,造成的影響也受到限制。服務單元只能限制處理程序可存取的內容,其餘防護應由代理程式本身的 harness 負責。這正是 值得安裝的 DeepSeek Harness plugins 在另一套技術堆疊中處理的工作,包括支出上限、各工具的權限規則,以及 prompt injection 掃描。

最重要的規則,是將 Claude API key 保留在伺服器端。此 key 會支付並授權每次呼叫,因此應存放在只有代理程式使用者可讀取的檔案中,再以環境變數載入服務。不得將它放入程式碼、repository,或任何瀏覽器可存取的位置。在此為代理程式產生完整且經過強化的服務單元:

ToolRun your agent as a hardened service

接著完成伺服器本身的設定。僅使用 SSH key 登入,並鎖定你用來管理伺服器的帳號,如 VPS 上的 SSH 強化設定 所示。如果你希望在建置期間透過互動式工作階段操作代理程式,使用 tmux 在 VPS 上執行 Claude Code 是很好的搭配。當你在同一台伺服器上開啟第二個工作階段後,兩個工作階段可以互相傳遞工作,不必再手動將每項指令從一個窗格轉貼到另一個窗格。如果你想了解這些概念背後的原理,而不將其綁定到特定模型,姊妹指南 在 VPS 上建置自己的 AI 代理程式 說明了相關基礎。

如果你需要的是終端機編碼助理,在 VPS 上執行編碼 AI 代理程式 介紹了 Aider 和 Goose。

FAQ

我應該使用哪個 Claude 模型來建構 agent?

先從 Claude Opus 4.8(claude-opus-4-8)開始,這是能力完整的預設選項,再依需求調整。Claude Sonnet 5(claude-sonnet-5)較便宜、速度也較快,適合大多數工作;Claude Haiku 4.5(claude-haiku-4-5)最適合簡單且大量的步驟;Claude Fable 5(claude-fable-5)處理最困難的工作時能力最強。常見做法是讓較便宜的模型處理例行步驟,讓較強的模型做出困難決策,因為切換模型只需修改一行設定。

我應該在自己的 VPS 上執行整個 agent,還是由 Anthropic 執行?

這取決於採用的方法。如果您直接使用 Claude API 撰寫自己的迴圈,或使用 Claude Agent SDK,agent 會完全在您的 VPS 上執行,只有模型呼叫會傳送到 Anthropic。如果使用 Managed Agents,則由 Anthropic 執行迴圈並代管工具執行所在的 sandbox,因此較少元件會留在您的伺服器上。若要讓 agent 在自己的機器上執行,請使用前兩種方法之一。

Claude API 與 Claude Agent SDK 有何不同?

Claude API 是原始的 Messages endpoint:您傳送對話與工具,並自行撰寫外圍的 agent 迴圈,或使用 SDK 的 tool runner 驅動迴圈。Claude Agent SDK 是較高階的 library,是為建構 agent 而封裝的 Claude Code,提供完整迴圈,以及內建的檔案、shell 與搜尋工具。若要自行定義所有內容,請使用 API;若想取得能力完整的 agent,而不必自行組裝執行框架,請使用 Agent SDK。

如何保護伺服器上的 Claude API key?

將 key 保留在伺服器端,不要寫入程式碼。將它儲存在只有 agent 執行帳號可讀取的檔案中,載入服務的環境變數,並且絕不要提交至 repository 或暴露給瀏覽器。由於所有對 Claude 的請求都從您的伺服器發出,key 不必傳送到使用者裝置,因此在伺服器上執行的 agent 比嵌入用戶端應用程式的 agent 更容易保護。

使用 Claude 建構 agent 時,需要自行代管模型嗎?

不需要。Claude 是透過 API 呼叫的代管服務,因此不需要在 GPU 上執行任何元件。您的 VPS 執行 agent 迴圈、工具與資料,推理則在 Anthropic 端完成。這使得資源有限的伺服器也能執行能力完整的 agent。若您需要完全在本機執行的模型,則應採用自行代管模型的方式;相關內容請參閱姊妹指南中建構自有 AI agent 的章節。