在 VPS 上运行 AI 编程 agent
在 VPS 上运行 Aider 或 Goose,从终端编写代码,连接托管模型或自托管的 Ollama 模型。涵盖安装、模型规格评估与安全。
为什么要在 VPS 上运行编程 agent
编程 agent 是一种工具,它读取您的代码库、编写修改,并运行命令来测试这些修改,全部在终端里完成。与在笔记本电脑上运行相比,在 VPS 上运行它有三个优势:断开连接后它仍会继续工作;它就紧挨着您的代码和构建工具;而且它可以与您自己托管的模型通信。在一个 tmux 会话里启动它,您就可以合上笔记本电脑,稍后再接着做这项工作,这与 用 tmux 在 VPS 上运行 Claude Code 是同一套模式。
有两个基于终端的 agent 值得了解。Aider 是终端原生、以 git 为先的选择:它会为每次修改自动提交一条合理的说明,因此您的历史记录保持整洁,每次编辑都可以回退。它是历史最悠久的终端编程 agent 之一,不过发布节奏已经放缓。Goose 来自 Block,功能更广:它是一个采用 Apache-2.0 许可的 agent,拥有庞大的扩展生态,支持包括本地 Ollama 模型在内的众多提供方,目前在 Linux 基金会的 Agentic AI Foundation(AAIF,智能体 AI 基金会)下开发。Aider 适合严谨、以 git 为中心的工作流;Goose 适合搭配大量插件的更通用的助手。
您需要什么
您需要一台装有 git、tmux 和较新版本 Python 的 VPS 来运行 Aider,或者用 Goose 安装程序来运行 Goose。您还需要一个模型:可以是来自 Anthropic 或 OpenAI 等提供方的托管 API 密钥,也可以是由 同一台 VPS 上的 Ollama 提供的本地模型。自托管这条路让您的代码留在自己的服务器上,且每个 token 都不花钱,代价是需要足够的内存来容纳一个够用的模型。
安装并运行 Aider
用 pipx 把 Aider 装在一个隔离的环境里,pipx 来自 apt,因为 Ubuntu 24.04 禁止在虚拟环境之外直接执行 pip install(PEP 668)。然后在您的项目里运行 Aider,放在一个 tmux 会话中,这样它在断开连接后仍能存活:
sudo apt install pipx
pipx ensurepath
pipx install aider-chat
tmux new -s aider
cd ~/my-project
aider有一个版本提示:如上所示的安装方式在 Ubuntu 24.04 上可以正常工作。在 Ubuntu 26.04 上它目前会失败,因为 Aider 锁定的依赖中包含一个较旧的 numpy,无法针对 26.04 的 Python 3.14 编译。解决办法是给 Aider 单独配一个 Python 3.12:
pipx install --python 3.12 --fetch-missing-python aider-chatpipx 会专门为 Aider 下载一个独立的解释器,安装随即完成。这是 Aider 发布节奏放缓的一个症状;如果这让您困扰,Goose 是维护更活跃的选择。
一旦它运行起来,用 Ctrl-b 再按 d 从会话中分离,即使合上笔记本电脑,agent 也会继续工作;稍后用 tmux attach -t aider 重新接入,查看它改动了什么。Aider 读取您的仓库、提出编辑、应用它们,并逐一提交,当一次修改涉及多个文件时,它还能拉取额外的文件作为上下文。因为每次修改都是一次提交,撤销 agent 只需一条普通的 git revert,正是这道安全网让人用起来安心。Goose 用它文档里的一行脚本安装,同样从终端运行,通过它的扩展来驱动任务:
curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bash托管模型还是自托管模型
托管模型质量最好,且不需要本地硬件,但按 token 计费,而且您的代码会被发送给提供方。通过 Ollama 的自托管模型让一切都留在您的服务器上,硬件付清后运行免费,但一个好到够用的编程模型需要真正充足的内存。这就是要权衡的取舍:质量与便利,对上隐私与成本。
如果您选择自托管,实际的问题是哪个模型适合您的服务器。在把一个八 GB 的模型下载到一台装不下它的机器上之前,先评估好它的规格:
安全:它会编辑文件并运行命令
编程 agent 不是被动的。它会重写文件,还能运行构建和测试命令,所以请像对待任何能改动您系统的进程一样谨慎待它。三个习惯能覆盖大部分风险。在 git 仓库里工作,让每次修改都被追踪、可回退,这一点 Aider 会自动替您做到。以您普通的非特权用户身份运行 agent,绝不要用 root,遵循 最小权限用户,这样一条糟糕的命令就无法波及整个系统。并且让机器本身保持加固,因为一台编程用的 VPS 仍然是一台公开的服务器:仅用密钥的 SSH、默认拒绝的防火墙,以及其余措施。OpenClaw 加固指南 对一个更自主的 agent 采取了同样的立场,这些原则是通用的。
要把编程 agent 接入您自己的工作流,用 Claude 构建一个 AI agent 展示了一个模型如何驱动您的工具;在 VPS 上运行谷歌的 Gemini CLI 是另一个终端选项,而 自托管 OpenHands 则是更重的自主路线。这个领域中星标最多的开源项目现在也有了自己的指南:在 VPS 上运行 OpenCode 用同样的 tmux 加非特权用户模式把它搭起来。
FAQ
能不能用本地模型而不是付费 API 来运行编程 agent?
可以。Aider 和 Goose 都能配合由 Ollama 提供的本地模型,因此您可以完全自托管地运行编程 agent,没有按 token 的费用,也没有代码离开您的服务器。要注意的是内存:一个够用来写出有用代码的模型需要相当多的 RAM 或 VRAM,所以在动手前,先按模型来配机器。
Aider 还是 Goose,我该用哪个?
如果您的工作流以终端和 git 为中心,并且想要最成熟、开销最低的选择,就选 Aider;它会为每次修改自动提交,让历史保持可回退。如果您想要一个带庞大扩展生态、支持众多提供方的更通用助手,就选 Goose。两者都从终端运行,也都能配合 Ollama,所以都适合 VPS。
自托管一个编程模型需要多少内存?
这取决于模型的大小以及它被量化的程度。一个小的量化模型只需几 GB 就能跑,而一个更强的模型想要多得多的内存,长上下文窗口还会再增加占用。在下载之前,用上面的规格评估工具来估算某个模型和上下文长度所需的内存。
让 AI agent 编辑我的代码并运行命令安全吗?
只要有正确的习惯,它是可控的。把工作放在 git 仓库里,让每次编辑都是一次可回退的提交;以非特权用户而非 root 身份运行 agent;并像对待任何公开服务器那样加固 VPS。审查它提交的修改,而不是盲目信任,尤其是它想对您系统执行的任何命令。