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

如何在 VPS 上使用 Claude 构建 AI 智能体

了解如何在自有 VPS 上运行 Claude 智能体:Messages API 负责推理,工具调用驱动执行循环,MCP 连接外部工具与数据,同时保留服务器控制权。

使用 Claude 构建代理意味着什么

使用 Claude 构建代理,意味着将 Claude 用作推理核心,而循环、工具和数据运行在您自己的服务器上。Claude 决定执行什么操作,您的 VPS 负责执行。您向 Claude 发送任务和当前状态,Claude 返回答案,或请求使用您的某个工具;您的代码运行该工具,再将结果发回 Claude。循环会持续进行,直到任务完成。智能部分是您通过互联网调用的一项服务。除此之外的一切都由您控制。

这种分工正是其优势所在。您无需运行模型即可获得前沿级别的推理能力,同时可以完全控制代理能够访问的内容,因为工具运行在您拥有的硬件上。如果您已经构建了第一个 Claude 程序,请参阅 在 VPS 上构建第一个 Claude 应用的指南。本指南将在其基础上继续介绍。

Claude 是大脑:Messages API

Claude 的每次调用都通过一个端点,即 Messages API。您发送当前为止的对话,以及代理可以使用的工具列表;Claude 返回下一条消息。这条消息要么是最终答案,要么是调用工具的请求。对于自行构建的方案,没有单独的“代理 API”:工具调用是这个单一端点的一项功能,而围绕该端点运行的循环由您负责。

Claude 在调用之间不会保留状态,也就是说,它不会自行记住任何内容。每个请求都包含完整的对话。您的代码保存历史记录,并在每一轮都发送这些记录,这就是 长会话中每一轮消耗的 token 都比上一轮更多的原因。这与其说是限制,不如说是一种设计选择:由于状态保存在您的服务器上,您可以准确决定 Claude 能看到的内容,任务数据也不会存储在任何您无法控制的位置。但这意味着提示会持续变长。Claude 的上下文窗口可以轻松容纳这些内容,但同一循环中的本地模型无法做到,这就是为什么 必须先提高 Ollama 的 num_ctx,才能避免长提示被截断

工具调用构成智能体循环

使用 Claude 的智能体循环很容易描述。您发送一个包含工具的请求。Claude 读取任务,如果需要执行操作,就会返回一个工具调用请求,其中指定工具并填写输入参数。您的代码运行该工具,然后在下一次请求中将结果发送回 Claude。Claude 读取结果后,要么请求调用另一个工具,要么生成最终回复。当它不再请求工具时,任务就完成了。

您可以用几行代码手动编写这个循环。许多人这样做,因为流程清晰且易于控制。官方 SDK 也提供了工具运行器,可以代您驱动循环:您提供工具函数,SDK 负责反复调用 Claude、运行工具并将结果反馈给 Claude,直到 Claude 完成任务。无论采用哪种方式,流程结构都相同。运行器只是省去了手动编写循环的工作。如果您仍觉得这个循环过于抽象,最有效的方法是在使用运行器之前先编写一个最小实现;后续所有内容都建立在这一步之上,参见这条从零开始学习 AI 智能体的分阶段路径

构建方式及其与 VPS 的适配性

构建 Claude agent 有三种方式,区别在于由您运行多少基础组件。

第一种方式是编写自己的代码,通过 Claude API 调用自定义工具。您可以自行编写循环,也可以使用 SDK 的 tool runner,然后将整个程序部署到 VPS 上。这是最常见的选择,因为您可以完全控制工具、数据和安全性,而且程序可以像普通服务一样运行在服务器上。本指南主要介绍这种方式。

第二种方式是 Claude Agent SDK。它将 coding agent Claude Code 打包为一个可供您构建的库。SDK 自带完整的 agent 循环,以及用于读写文件、运行 shell 命令和搜索的内置工具,因此您无需从头实现这些功能。它同样运行在您自己的服务器上;如果您希望获得功能完整的文件和 shell agent,又不想自行构建运行框架,那么它非常适合 VPS。能够读取文件并运行 shell 命令的 agent 在无人值守运行前必须先进行隔离;在服务器上安全运行 Claude Code介绍了权限系统、沙箱和隔离选项。

第三种方式是 Managed Agents。Anthropic 负责运行循环,并托管一个供 agent 执行工具的沙箱。这种方式几乎无需您管理基础设施,但 agent 的工作区位于 Anthropic 的基础设施上,而不是您的 VPS 上。如果您希望将运维工作降至最低,并且不要求工具在自己的机器上运行,可以选择这种方式。对于前两种方式,您的服务器就是 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 上,应将代理作为强化的系统服务运行,而不是手动在终端中启动的程序。作为服务运行时,它会在系统启动时自动启动,崩溃后自动重启,并将日志写入 journal。经过强化后,它会以非特权用户身份运行,只拥有完成任务所需的访问权限,因此即使存在漏洞或收到恶意指令,影响范围也受到限制。服务单元只能限制进程可以访问的对象,其余防护必须由代理自身的 harness 完成。值得安装的 DeepSeek Harness 插件可在另一套技术栈中完成这项工作,包括支出上限、按工具设置的权限规则,以及提示注入扫描。

最重要的一条规则,是将 Claude API key 保留在服务器端。该 key 用于支付每次调用并授予调用权限,因此应放在仅代理用户可读取的文件中,再作为环境变量加载到服务中。不得将其写入代码、提交到仓库,或放在浏览器可以访问的任何位置。在此为代理生成完整的强化服务单元:

ToolRun your agent as a hardened service

然后完成服务器本身的加固。仅允许使用 SSH key 登录,并锁定用于管理服务器的账户,具体参见 VPS 上的 SSH 加固。如果你希望在构建代理时通过交互式会话操作,在 VPS 上使用 tmux 运行 Claude Code可以配合使用。在同一台服务器上打开第二个会话后,两个会话可以互相传递工作,无需你在两个窗格之间手动转发每条指令。如果你希望了解这些做法背后的概念,而不将其绑定到某个模型,姊妹指南在 VPS 上构建自己的 AI 代理介绍了相关基础。

如果你需要的是终端编码助手,在 VPS 上运行编码 AI 代理介绍了 Aider 和 Goose。

FAQ

应使用哪个 Claude 模型构建智能体?

从 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 上,还是由 Anthropic 运行?

这取决于所采用的方式。如果您直接针对 Claude API 编写自己的循环,或使用 Claude Agent SDK,智能体会完全运行在您的 VPS 上,只有模型调用会发送到 Anthropic。如果使用 Managed Agents,Anthropic 会运行循环并托管工具执行所需的沙箱,因此较少组件驻留在您的服务器上。如果要让智能体运行在您自己的机器上,请使用前两种方式之一。

Claude API 与 Claude Agent SDK 有什么区别?

Claude API 是原始的 Messages 端点:您发送对话和工具,并围绕它编写智能体循环,或使用 SDK 的工具运行器驱动该循环。Claude Agent SDK 是更高层的库,是为构建应用而打包的 Claude Code,提供完整循环以及内置的文件、shell 和搜索工具。如果您希望自行定义所有内容,请使用 API;如果您希望直接获得功能完善的智能体,而不必自行组装运行框架,请使用 Agent SDK。

如何在服务器上保护 Claude API key?

将其保留在服务器端,不要写入代码。将 key 存储在只有智能体运行账户可读取的文件中,将其作为环境变量加载到服务中,并且绝不要将其提交到代码仓库或暴露给浏览器。由于每个 Claude 请求都从您的服务器发出,key 无需传输到用户设备。因此,与嵌入客户端应用的智能体相比,运行在服务器上的智能体更容易进行安全保护。

使用 Claude 构建智能体时,是否需要自行托管模型?

不需要。Claude 是通过 API 调用的托管服务,因此无需在 GPU 上运行任何组件。您的 VPS 运行智能体循环、工具和数据,推理则在 Anthropic 侧完成。这使配置适中的服务器也能运行功能完善的智能体。如果您需要完全在本地运行的模型,则应采用自托管路径,具体内容请参阅配套指南《构建您自己的 AI 智能体》。