在VPS上自托管AI代理
在自己的VPS上运行Claude Code、OpenClaw和Hermes等AI代理的实用指南。涵盖代理类型、基础设施选型、通信协议、安全性和成本。
AI代理能编写代码、管理服务器、自动化工作流,并代替你与外部服务通信。把它们运行在托管平台上意味着支付订阅费、把数据交给第三方,并接受对方的速率限制。
VPS改变了这个等式。你的代理在你控制的硬件上全天候运行。数据留在你的服务器上。没有人限制你的API调用。
本指南涵盖AI代理是什么、哪些可以自托管、需要什么硬件、如何通信以及如何加固安全。每个章节都链接到实操教程。
什么是AI代理,它们如何工作?
AI代理是一个自主程序,它使用大语言模型(LLM)来决定做什么,然后去做。与一次只回答一个问题的聊天机器人不同,代理持续运行。它在任务之间保持上下文,调用外部工具,读写文件,执行shell命令,并且不需要在每一步都等待人工批准就能串联操作。
实际上,代理以循环方式工作:
- 观察 -- 从用户消息、文件变更、webhook或定时触发器中读取输入
- 推理 -- LLM根据当前上下文和可用工具决定采取什么行动
- 执行 -- 执行该行动(运行命令、调用API、编辑文件、发送消息)
- 评估 -- 检查结果,决定任务是否完成或需要再迭代一次
LLM本身通常通过API远程运行(Anthropic、OpenAI或自托管模型)。在你VPS上运行的是代理框架(agent harness):管理循环、工具执行、内存和通信渠道的代码。这就是为什么大多数代理需要的本地计算资源出奇地少。繁重的推理发生在别处。
有些代理还通过Ollama或vLLM支持本地模型。这种情况下你的VPS需要GPU或明显更多的RAM。但在大多数自托管场景中,2-4 GB的VPS就能处理代理框架,LLM提供商负责推理。
为什么自托管AI代理而不是使用托管平台?
在VPS上自托管更便宜(基础价5-14美元/月,对比订阅费20-50+美元/月),数据留在你的服务器上,消除速率限制,全天候运行而不依赖你的笔记本电脑。你来选择调用哪些模型、安装哪些工具、代理如何行为。托管平台替你做了所有这些决定。
成本对比如下:
| 选项 | 月费 | 你得到什么 |
|---|---|---|
| ChatGPT Plus | 20美元 | 网页聊天,有限的代理功能,OpenAI控制你的数据 |
| Claude Pro | 20美元 | 网页/桌面聊天,用量上限,数据由Anthropic处理 |
| Claude Max | 100-200美元 | 更高限额,仍然只有云端 |
| 托管代理平台 | 30-50+美元 | 供应商锁定,基础设施不透明,数据不在你的控制之下 |
| VPS + API密钥 | 5-14美元/月 + API用量 | 完全控制,数据留在你的服务器,除API层级外无速率限制 |
VPS费用是基础成本。你仍然要为LLM API调用付费,但你精确控制调用哪个模型、频率多高、发送什么数据。没有中间商加价。
超越成本:为什么自托管很重要
**数据主权。**你的提示词、代理内存和输出永远不会离开你的服务器。对于处理客户数据、受GDPR监管的信息或专有代码的人来说,这不是可选项。托管平台在他们的基础设施上按他们的条款处理你的数据。
**无速率限制。**托管平台会限制重度用户。在你的VPS上,唯一的限制是你在LLM提供商处的API层级和你的服务器资源。
**全天候运行。**需要监控、自动化或响应事件的代理必须持续运行。VPS在你的笔记本休眠时保持运行。
**完全自定义。**安装任何你想要的工具或库。不需要等待平台添加你需要的MCP服务器支持。
你可以自托管哪些类型的AI代理?
2026年的代理世界分为四类:编码代理、通用助手、工作流自动化工具,以及你自己构建的定制代理。
| 代理 | 用途 | 最低RAM | 需要GPU? | 协议支持 | 难度 |
|---|---|---|---|---|---|
| Claude Code | 编码、重构、git工作流 | 2 GB | 否 | MCP(原生) | 低 |
| OpenClaw | 通用助手、消息、自动化 | 4 GB(带浏览器8 GB) | 否 | MCP、自定义skills | 中 |
| Hermes Agent | 持久记忆助手 | 2 GB | 否 | MCP、agentskills.io | 低 |
| n8n | 带AI节点的工作流自动化 | 2 GB(推荐4 GB) | 否 | HTTP、webhooks | 中 |
| 自定义代理 | 你构建的任何功能 | 视情况而定 | 可选 | 你实现的任何协议 | 高 |
什么是Claude Code,为什么在VPS上运行它?
Claude Code是Anthropic的代理式编码工具。它位于你的终端中,读取你的整个代码库,编辑文件,执行命令,管理git工作流,并为并行任务启动子代理。它使用Claude Opus 4.6作为推理引擎,在SWE-bench Verified上得分80.8%。
在VPS上运行Claude Code意味着你的编码代理全天候工作。它可以运行CI流水线、监控仓库、处理计划中的重构任务并响应webhook。你的代码库保留在你控制的服务器上,而不是通过托管平台传输。
Claude Code原生支持MCP。你可以通过运行在同一VPS上的MCP服务器将其连接到数据库、API、文件系统和自定义工具。它还支持代理团队:多个Claude Code会话在共享项目上协调,其中一个会话充当团队负责人。
在资源方面,Claude Code很轻量。代理框架需要大约2 GB RAM。所有推理通过Anthropic的API进行。
什么是OpenClaw?
OpenClaw(前身为Clawdbot/Moltbot)是最流行的开源AI代理,截至2026年3月拥有超过25万GitHub星标。由Peter Steinberger创建,它是一个通用助手,可以连接Signal、Telegram、Discord和WhatsApp等消息平台。
与专注于编码的Claude Code不同,OpenClaw充当个人助手。它管理文件、发送电子邮件、控制API、自动化工作流并浏览网页。它支持多种LLM后端:Claude、GPT、DeepSeek,以及通过Ollama使用的本地模型。
自托管OpenClaw比Claude Code需要更多资源。最低配置为2个vCPU和4 GB RAM。如果启用浏览器自动化(Playwright),需要规划8 GB,因为每个浏览器实例本身就消耗1-2 GB。存储应为NVMe SSD:OpenClaw在Docker操作期间对I/O敏感。
**安全警告:**OpenClaw曾面临严重的安全问题。Palo Alto Networks识别出一组"致命三要素"风险:访问私有数据、暴露于不可信内容,以及在保留记忆的同时执行外部通信的能力。2026年初,Koi Security审计了ClawHub上的2,857个skills,发现341个恶意的,大约每八个包中就有一个。将OpenClaw的skill生态系统视为不可信的。安装前审计每个skill,并在沙箱环境中运行OpenClaw。
什么是Hermes Agent?
Hermes Agent是Nous Research开发的开源AI代理,于2026年2月发布。它的独特之处在于持久记忆:Hermes会跨会话记住你的偏好、项目和环境。当它解决了一个困难问题时,会编写一个可重用的skill文档,这样就永远不会忘记解决方案。
Hermes在每月5美元的VPS上即可运行。它内置40多个工具,通过单一网关进程连接Telegram、Discord、Slack、WhatsApp、Signal和CLI。所有数据保留在你的机器上。无遥测,无追踪。
Skills遵循agentskills.io开放标准,因此它们在代理之间是可移植和可搜索的。Hermes运行时间越长,能力越强。MIT许可证。
工作流自动化:带AI节点的n8n
n8n本身不是AI代理,但添加AI节点后就变成了一个。你可以构建调用LLM、处理响应并根据AI决策触发操作的工作流。把它看作胶合层:无需为每个集成编写自定义代码,就能将你的AI代理连接到400多个集成。
自托管n8n在生产环境中需要2个vCPU和4 GB RAM。除测试外的任何场景都应使用PostgreSQL替代SQLite。如果在n8n旁运行向量数据库(Qdrant、Pinecone),再增加2-4 GB RAM。
代理协议如何工作?(MCP、A2A、ANP)
三个协议定义了2026年AI代理的通信方式。它们不是竞争标准,而是互补的层。每个解决不同的问题,了解它们有助于规划你的自托管部署。
| 协议 | 创建者 | 功能 | 何时需要 |
|---|---|---|---|
| MCP(Model Context Protocol) | Anthropic | 将代理连接到工具和数据源 | 始终需要。这是你的代理读取文件、查询数据库、调用API的方式 |
| A2A(Agent-to-Agent) | Google(现为Linux Foundation) | 让代理将任务委派给其他代理 | 当你运行多个需要协作的代理时 |
| ANP(Agent Network Protocol) | 社区/AAIF | 跨网络的代理发现和路由 | 当代理需要查找和验证服务器外部的代理时 |
MCP:代理到工具
MCP是一个JSON-RPC协议,标准化了代理访问外部能力的方式。你不需要硬编码API调用,而是运行MCP服务器来暴露工具(读数据库、获取URL、执行查询),代理作为客户端连接。
截至2026年2月,MCP的SDK月下载量已超过9700万次(Python + TypeScript合计)。所有主要AI提供商都支持它:Anthropic、OpenAI、Google、Microsoft、Amazon。
在自托管VPS上,MCP服务器作为本地进程运行。你的代理通过stdio或HTTP连接。你控制哪些工具可用、它们有什么权限、可以访问什么数据。不涉及第三方服务器。
A2A:代理到代理
A2A实现代理之间的点对点任务委派。一个代理可以请求另一个执行任务、跟踪进度并接收结果。Google于2025年4月创建它,2025年6月捐赠给Linux Foundation,2025年12月Agentic AI Foundation(AAIF)成为它与MCP共同的永久家园。
当你运行具有不同专长的多个代理时需要A2A。例如:编码代理将文档任务委派给写作代理,或监控代理在测试通过后触发部署代理。
ANP:代理发现
ANP处理发现和路由。它让代理跨组织边界相互查找、认证并建立通信渠道。把它看作代理的DNS。
对于大多数在单个VPS上运行代理的自托管部署,你暂时不需要ANP。当你的代理需要与其他服务器或其他组织的代理交互时,它才变得相关。
AI代理需要什么服务器规格?
大多数AI代理比你想象的更轻量。LLM通过API远程运行。你的VPS只运行代理框架、工具和你添加的本地服务(数据库、消息队列、Web服务器)。
以下是常见部署的测试最低配置:
| 部署方案 | vCPU | RAM | 存储 | 月费(Virtua) |
|---|---|---|---|---|
| 单个代理(Claude Code或Hermes) | 1 | 2 GB | 40 GB SSD | 12€ |
| OpenClaw(纯文本) | 2 | 4 GB | 80 GB NVMe | 28€ |
| OpenClaw + 浏览器自动化 | 4 | 8 GB | 160 GB NVMe | 56€ |
| 多个代理 + 数据库 | 4 | 8 GB | 160 GB SSD | 48€ |
| n8n + 向量数据库 + 代理 | 4 | 8 GB | 160 GB NVMe | 56€ |
| 全栈(3+代理、数据库、监控) | 6 | 12 GB | 240 GB NVMe | 84€ |
**什么时候需要GPU?**只有当你运行本地LLM(Ollama、vLLM)而不是使用API时。对于Llama 3或Mistral等模型,你至少需要16 GB VRAM。大多数自托管代理部署不需要GPU,因为推理在API提供商处进行。
**存储很重要。**使用SSD或NVMe。使用Docker的代理(OpenClaw、n8n)在容器操作期间对I/O敏感。HDD会在容器启动和工作空间操作时造成明显延迟。
**留出余量。**在典型负载下保持至少30%的RAM空闲。代理在复杂推理链或处理大上下文窗口时可能会出现峰值。如果你的VPS开始使用swap,代理响应时间会迅速恶化。
如何保护自托管的AI代理?
AI代理不是普通应用程序。它们根据LLM输出执行任意代码。拥有shell访问权限的代理可以做你的用户账户能做的任何事情。提示注入攻击可以将你的编码代理变成数据泄露工具。这个现实决定了本节的每一个决策。
将代理视为不可信代码
驱动代理的LLM会处理外部输入:用户消息、文件内容、API响应、网页。其中任何一个都可能包含提示注入载荷。假设在某个时刻,你的代理会尝试做一些不该做的事。
**最小权限原则。**以专用系统用户身份运行每个代理,赋予最少权限。永远不要以root身份运行代理。只给代理用户访问其需要的目录和命令的权限。
# Create a dedicated user for your agent
sudo useradd -r -m -s /bin/bash agent-claude
sudo chmod 700 /home/agent-claude
沙箱化代理执行
标准Docker容器不是安全边界。容器共享宿主机内核,一个有动机的攻击者(或一个混乱的LLM)可以逃出宽松的容器。要实现真正的隔离:
- **微虚拟机(Firecracker、Kata Containers):**每个代理拥有自己的内核。最强隔离。最适合执行不可信代码的代理。
- **gVisor:**在用户空间拦截系统调用。比微虚拟机轻量但比裸容器更强。很好的折中方案。
- **加固容器:**仅适用于可信代理。使用
--read-only、--no-new-privileges,移除所有capabilities,挂载最少的卷。
网络隔离
代理不应拥有不受限制的网络访问。能够访问任意IP的代理可以泄露数据或参与攻击。
# Allow only the specific API endpoints your agent needs
sudo ufw default deny outgoing
sudo ufw allow out to any port 443 proto tcp # HTTPS for API calls
sudo ufw allow out to any port 53 proto udp # DNS
sudo ufw enable
通过限制出站连接到你的LLM提供商的特定IP范围来进一步细化。阻止其他所有连接。
正确管理密钥
永远不要在代理配置文件中硬编码API密钥。使用具有受限权限的环境文件。
# Create a secrets file
sudo mkdir -p /etc/agent-claude
echo "ANTHROPIC_API_KEY=sk-ant-..." | sudo tee /etc/agent-claude/env > /dev/null
sudo chmod 600 /etc/agent-claude/env
sudo chown agent-claude:agent-claude /etc/agent-claude/env
在systemd单元中用EnvironmentFile=/etc/agent-claude/env引用它。密钥永远不会出现在进程列表或其他用户可读的配置文件中。
监控并记录一切
自主运行的代理可能会出现意外行为。记录所有代理操作并定期检查。
# Watch agent logs in real time
journalctl -u agent-claude -f
# Check for unusual outbound connections
ss -tnp | grep agent-claude
为异常模式设置告警:高CPU使用率、意外的网络连接、快速的文件系统变更,或代理执行超出正常范围的命令。
完整的安全加固指南请参见。
如何开始你的第一个自托管代理
选一个代理,让它跑起来。不要试图一次搭建整个技术栈。
**如果你想要一个编码助手:**从Claude Code开始。通过npm安装,认证,几分钟内就有一个可用的代理。这里所有选项中资源需求最低。
**如果你想在消息应用上有一个个人助手:**部署OpenClaw。设置更费时间(Docker、消息平台配置、skill选择),但能给你最通用的通用代理。初始配置预计需要4-8小时。
**如果你想要一个有持久记忆的代理:**试试Hermes。一条命令安装,MIT许可证,运行时间越长越好用。
**如果你想要AI驱动的工作流自动化:**搭建带AI节点的n8n。通过可视化工作流连接你现有的工具和服务。最适合无代码自动化任务。
你的第一步
无论选择哪个代理:
- **配置一台VPS。**不确定的话从4 GB RAM开始。后续可以扩容。
- **加固服务器。**仅使用SSH密钥,启用防火墙,创建非root用户。在安装任何其他东西之前先做这些。
- **安装代理。**按照所选代理的专用教程操作。
- **限制权限。**以专用用户身份运行代理。限制网络访问。将密钥存储在受保护的文件中。
- **从外部测试。**从你的本地机器连接来验证代理是否正常工作,而不仅仅从服务器本身测试。
- **设置监控。**至少用
journalctl查看日志。最好配置资源告警。
本指南中链接的每个教程都包含每个阶段的验证步骤。从一个代理开始,熟悉之后再扩展。
Copyright 2026 Virtua.Cloud. All rights reserved.