如何在 VPS 上运行 Aider 或 Goose 编码代理
在终端通过 tmux 运行 Aider 或 Goose,连接托管 API 或自托管 Ollama。了解 Ubuntu 24.04 安装方式、Ubuntu 26.04 的 Python 3.14 兼容性问题、模型内存需求与安全设置。
为什么要在 VPS 上运行编码代理
编码代理是一种从终端读取代码库、编写更改并运行命令进行测试的工具。在 VPS 上运行它,相比在笔记本电脑上运行有 3 个优势:断开连接后它仍会继续工作;它与代码和构建工具位于同一台服务器上;它可以连接到自行托管的模型。在 tmux 会话中启动代理后,您可以关闭笔记本电脑,稍后继续工作。这与使用 tmux 在 VPS 上运行 Claude Code的方式相同。
有 2 个基于终端的代理值得了解。Aider 是原生终端、以 Git 为核心的选项:它会为每次更改自动创建提交,并使用合理的提交消息,因此提交历史保持整洁,每次编辑都可以撤销。它是历史最悠久的终端编码代理之一,但目前的发布速度有所放缓。Block 开发的 Goose 功能范围更广:它是采用 Apache-2.0 许可证的代理,拥有庞大的扩展生态,并支持包括本地 Ollama 模型在内的多种提供商。目前,Goose 在 Linux Foundation 的 Agentic AI Foundation(AAIF)旗下开发。Aider 适合规范、以 Git 为核心的工作流;Goose 适合需要丰富插件集的通用助手。
所需条件
您需要一台安装了 git、tmux 和近期版本 Python 的 VPS,以运行 Aider;如果使用 Goose,则需要 Goose 安装程序。您还需要一个模型:可以使用 Anthropic 或 OpenAI 等提供商提供的托管 API 密钥,也可以使用由同一台 VPS 上的 Ollama提供服务的本地模型。自托管方案可让代码保留在您自己的服务器上,并且无需按 token 付费,但需要足够的内存来运行性能足够的模型。
安装并运行 Aider
使用来自 apt 的 pipx 在隔离环境中安装 Aider。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,而该版本无法在 Ubuntu 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,即可从会话中分离。即使合上笔记本电脑,代理也会继续工作。稍后使用 tmux attach -t aider 重新连接,以查看它修改的内容。您也可以保留第二个 tmux 窗口来运行另一个代理。如果两个代理都是 Claude Code,两个会话可以相互传递工作,无需您手动转交。Aider 会读取代码库、提出修改、应用修改并为每次修改创建提交;当一次修改涉及多个文件时,它还可以读取其他文件作为上下文。由于每次修改都是一个提交,要撤销代理的修改只需执行普通的 git revert。这层安全保障让 Aider 更易于使用。Goose 使用其文档中提供的单行脚本安装,并以类似方式从终端运行,通过扩展执行任务:
curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bash托管模型还是自托管模型
托管模型质量最高且无需本地硬件,但需要按 token 付费,并且代码会发送给服务提供商。按 token 计费的成本增长速度往往超出预期,因为代理在每一轮对话中都会重新发送完整的会话内容。长时间代理会话实际消耗多少 token中的 Claude Code 成本分析同样适用于这里,因为 Aider 和 Goose 采用相同的计费方式。通过 Ollama 自托管模型可以让所有内容保留在服务器上;硬件购置完成后,运行模型无需额外付费。但要获得足够实用的编码模型,需要充足的内存。需要权衡的是质量和便利性,以及隐私和成本。
如果选择自托管,实际问题是哪个模型适合您的服务器。同时要关注上下文窗口,因为 Ollama 默认使用较小的上下文窗口,并会静默截断超出长度的内容。对于编码代理来说,这意味着刚刚读取的文件会从提示中消失。增大 num_ctx可以解决这个问题;它所需的更大 KV cache 也属于您需要预留的内存。请先完成容量规划,再将一个 8 GB 的模型下载到无法容纳它的服务器上:
安全:它会修改文件并运行命令
编码代理不是被动工具。它会重写文件,也可以运行构建和测试命令,因此应像对待任何可以修改系统的进程一样谨慎。以下3个习惯可以覆盖大多数风险。在 git 仓库中工作,以便跟踪并恢复每项更改;Aider 会自动完成这一点。使用普通的非特权用户运行代理,绝不要使用 root,并遵循最小权限用户原则,这样错误命令就无法影响整个系统。同时,应加固服务器本身,因为用于编码的 VPS 仍然是公网服务器:仅允许密钥认证的 SSH、默认拒绝的防火墙,以及其他必要措施。OpenClaw 加固指南对更自主的代理采用了相同的原则,这些原则同样适用。
要将编码代理接入自己的工作流,请参阅使用 Claude 构建 AI 代理,了解如何让一个模型驱动您的工具;在 VPS 上运行 Google 的 Gemini CLI提供了另一种终端选项,而自行托管 OpenHands则是更重量级的自主运行方案。该领域目前获得最多星标的开源项目也有自己的指南:在 VPS 上运行 OpenCode,按照相同的 tmux 和非特权用户模式完成配置。
FAQ
我可以使用本地模型运行 coding agent,而不使用付费 API 吗?
可以。Aider 和 Goose 都支持通过 Ollama 提供本地模型,因此您可以完全自行托管 coding agent,不按 token 付费,代码也不会离开服务器。需要注意的是内存:要生成实用代码,模型必须具备足够的能力,这通常需要较多 RAM 或 VRAM。因此,在确定方案前,应根据模型为机器配置足够的资源。
应该使用 Aider 还是 Goose?
如果您的工作流以终端和 git 为中心,并且希望使用最成熟、开销最低的方案,请选择 Aider;它会自动为每次更改创建提交,因此可以随时回滚历史。如果您需要功能更广泛的助手、庞大的扩展生态以及对多个提供商的支持,请选择 Goose。两者都从终端运行,也都支持 Ollama,因此都适合 VPS。
自行托管 coding model 需要多少内存?
这取决于模型大小以及量化程度。较小的量化模型可能只需几 GB,而能力更强的模型需要更多资源;较长的上下文窗口也会增加内存需求。下载模型前,请使用上方的 sizing tool 估算指定模型和上下文长度所需的内存。
让 AI agent 修改代码并运行命令是否安全?
采用正确的操作习惯即可控制风险。将工作放在 git 仓库中,使每次修改都能通过提交回滚;使用非特权用户运行 agent,不要使用 root;并按照保护任何公网服务器的方式加固 VPS。不要盲目信任 agent 创建的提交,应先检查更改内容,尤其是它准备在系统上执行的命令。