SSD Nodes Learn
指南 Matt Connor作者: Matt Connor · 更新于 2026-07-19

在 VPS 上搭建您自己的 AI 智能体

AI 智能体就是围绕语言模型的一个循环,它能调用工具。本文讲解在您自己的 VPS 上搭建智能体的核心概念:循环、工具、MCP 与记忆。

AI 智能体到底是什么

AI 智能体(agent)就是包裹在语言模型外层的一个循环。模型读取当前情况,决定采取某一个动作,您的代码执行这个动作,结果再回传给模型,循环随即再次运行,直到任务完成。这就是它的全部思路。普通的聊天机器人回答一次就停下。而智能体会持续运转,在自己的每一轮之间执行真实的动作,直到达成您交给它的目标。

动作是关键所在。语言模型单靠自己只会生成文本。它无法读取文件、调用 API,也无法运行命令。智能体会给模型一组它被允许使用的工具,以及一种请求这些工具的方式。当模型想要搜索网页或写入文件时,它并不亲自动手。它发出一个结构化的请求,您的代码运行相应的工具,答复再作为模型接下来要读取的内容返回。模型提供判断,您的服务器提供双手。

并非每个任务都需要智能体,默认就动用它是一个常见的错误。如果步骤事先已经确定,一个普通脚本会更简单、更快、也更可靠。“每小时抓取这个页面并把价格邮件发给我”是一个定时任务,而不是智能体。当路径无法事先固定、当模型必须查看它所发现的内容再决定下一步时,才去构建智能体。智能体的代价是不可预测性,所以只有当这种灵活性物有所值时才付出它。

工具:智能体如何行动

工具就是您交给模型的任何能力,只要描述得足够清楚,让它知道何时该动用。读取文件、运行 shell 命令、查询数据库、发送消息:每一项都是一个工具,带有名称、一段简短的描述和一组输入。工具由您来定义,何时调用则由模型来决定。

无论您使用哪个模型,机制都是一样的。模型返回一个结构化的请求,指明某个工具并填好它的输入。您的代码看到这个请求,运行对应的函数,并在下一轮把结果送回。模型读取结果,然后要么调用另一个工具,要么写出它的最终答案。函数调用(function calling)是每个智能体底层的管道,而驱动它的循环只不过是几行普通代码。

您的控制权也正落在这里。模型可以请求运行一条命令,但在您的代码决定运行它之前,什么都不会发生。这道缝隙正是您为危险动作设置确认提示、为工具能触及的范围设置限制、以及为智能体所做的一切记录日志的地方。一个智能体的安全程度,取决于您交给它的工具,以及您在这些工具前面设下的检查。

MCP:连接工具的一种标准方式

为每一个服务手写一套全新的集成,很快就会让人厌烦。模型上下文协议(Model Context Protocol,简称 MCP)是一个解决这个问题的开放标准。您不必为自己的文件、数据库和问题追踪器分别编写新工具,而是把智能体指向一个已经把这些东西以工具形式暴露出来的 MCP 服务器。智能体只说一种协议,与真实系统对话的工作则由服务器来完成。

回报在于复用。别人为您正在使用的某个服务写好的 MCP 服务器,无需任何新的集成代码就能供您的智能体使用;而您自己写的服务器,也能被任何说这种协议的智能体使用。在 VPS 上这一点很重要,因为您可以把多个 MCP 服务器作为各自独立的小服务运行在智能体旁边,每个只拥有它所需的那一点访问权限。搭建方法我在在 VPS 上运行 MCP 服务器中做了介绍。

记忆与检索

语言模型在两次调用之间没有属于自己的记忆。它关于当前任务所知道的一切,每一轮都必须重新交给它。对于短小的活儿这没问题,因为整段对话正好装进一次请求。而对任何更长的任务,您就得自己来管理记忆,有两种值得了解的模式。

第一种是草稿本(scratchpad)。您给智能体一个它可以读写的文件,并告诉它把一路上学到的东西记录下来。到下一轮,或者下一次会话时,它把文件读回来,从上次停下的地方继续。这是把记忆当作一份普通文档,它之所以有效,是因为智能体把这个文件当成又一个工具来对待。

第二种是检索。当智能体需要来自一大批文档的知识,而这些文档绝无可能装进一次请求时,您就把这些文档以可搜索的形式存储起来,只在需要时把相关的那几段拉进模型的视野。这种模式称为检索增强生成(retrieval-augmented generation,简称 RAG)。智能体提出一个问题,您的代码找出少数几段匹配的文字,只有这些才送给模型。存储库就在您的服务器上,所以您的私有文档永远不会离开它。

多个智能体,一个协调者

一个配备许多工具的智能体足以应付大多数任务。当一项工作很大,或者天然可以拆成几部分时,另一种结构会有帮助:由一个协调者智能体把工作委派给若干专门的子智能体。协调者把目标拆成若干块,把每一块交给一个为那类工作打造的子智能体,再把结果汇总起来。

好处在于专注。一个职责狭窄、工具集小巧的子智能体,比一个什么都要兼顾的全才做出更好的决策,而且相互独立的部分可以同时运行。代价是协调,这是实实在在的开销,所以在任务明确需要更多之前,就守着单个智能体。从简单起步,只有当一个智能体明显吃力时,才增添新的智能体。

自托管还是托管:由哪个模型来驱动您的智能体

模型是智能体中唯一一个您不必自己运行的部分,而选择它落在何处,是您要做的最大决定。托管模型通过 API 访问,给您最强的推理能力,且无需运维:您发送文本,就得到文本。自托管模型运行在您自己的服务器上,这让每一次请求都保持私密,费用是一口价而不是按 token 计费,而且从不依赖别人是否在线。取舍在于能力与投入。最好的托管模型领先于您自己所能运行的,而运行自己的模型意味着要喂给它足够装得下的内存。

最后这一点是现实中的门槛。模型必须装进您服务器的内存,如果您使用 GPU,还要装进它的显存。对硬件而言过大的模型根本加载不了。在您规划一个自托管智能体之前,先检查您想用的模型是否装得进手头这台机器:

ToolWill your model fit your server?

如果数字对不上,您有三招:换一个更小的模型,用更激进的量化把它压小,或者用托管 API 来做推理,只把您的工具和数据留在服务器上。许多自托管智能体先通过在 VPS 上运行 Ollama用上一个本地模型,再在最难的步骤上退回到托管 API。

服务器才是危险的部分

一个能运行 shell 命令、能写入文件的智能体威力很大,而这恰恰是它危险的原因。模型的判断力不错,但并不完美,一条糟糕的指令、一个 bug,或者一段带恶意的输入,都可能把一个有用的智能体变成一个删错东西或泄露机密的智能体。安全方面的工作不是可选项,而在服务器上,它是最要紧的部分。

几个习惯就承担了大部分分量。用一个专门的非特权用户来运行智能体,绝不要用 root,这样一次失误就有了上限;同样的道理见以非特权用户身份运行服务。把它的机密(例如 API 密钥)放在代码之外,只让那个用户可读。并把接触系统的工具放进沙箱,让智能体只能触及它真正需要的东西。想看一个加固真实自托管智能体的完整示例,参见在 VPS 上安全运行 OpenClaw。如果您更愿意用一个托管模型来充当智慧,配套指南在 VPS 上用 Claude 构建智能体沿用了同样的思路,并把一个具体的模型放在它们背后。

想看一个完整示例,构建一个 OpenClaw 式的个人智能体把这些部件付诸实践;如果您更愿意直接运行一个成品,可以从在 VPS 上自托管 Hermes Agent在自己的服务器上运行 Agent Zero起步,而2026 年最好的自托管 AI 智能体把我们介绍过的每一个现成方案并排做了比较。

FAQ

AI 智能体和聊天机器人有什么区别?

聊天机器人回答一条消息就停下。智能体则运行一个循环:模型决定一个动作,您的代码执行它,结果回传给模型,如此重复直到任务完成。区别在于,智能体在自己的每一轮之间执行真实的动作,通过调用工具来读取文件、运行命令或查询服务,而不只是生成文本。

在 VPS 上运行 AI 智能体需要 GPU 吗?

只有当您自托管模型时才需要。智能体循环、工具和记忆都是普通代码,在一台没有 GPU 的普通 VPS 上也能运行得很好。当您想在自己的硬件上运行语言模型时,GPU 才变得重要,因为模型必须装进内存。如果您通过 API 使用托管模型,繁重的计算发生在别处,一台配置一般的 VPS 就够了。

MCP 是什么,构建智能体一定要用它吗?

MCP,即模型上下文协议,是一个把智能体连接到工具和数据源的开放标准。严格来说您并不非用它不可,因为您可以手写每一个工具。MCP 让您可以复用为常见服务准备好的现成服务器,并把自己的系统只暴露一次就供任何智能体使用,从而替您省下这份功夫。它是一种便利,随着集成数量增多而变得越来越值得。

让 AI 智能体访问我的服务器安全吗?

可以安全,前提是您把它约束住。一个运行命令的智能体,其安全程度取决于它所运行的账户和您允许的工具。用非特权用户运行它,把它的机密放到够不着的地方,把接触文件系统的工具放进沙箱,并对那些难以撤销的动作要求确认。把智能体当作恰好很聪明的不可信代码来对待,只给它任务所需要的东西。