换新 VPS 时把正在跑的 AI Agent 迁移过去,最怕的就是环境报错和配置丢失。很多朋友在主机选交流群里反馈,Docker 容器起不来、API Key 忘记备份、或者向量数据库连不上。其实只要掌握了环境重建、数据同步和验证的正确顺序,迁移就能像复制粘贴一样顺滑,不用重头再来。

AI Agent 环境重建与基础依赖
迁移不是简单的文件复制,而是要让旧服务在新机器上“复活”。先别急着搬运数据,先确认基础环境是否对齐。
Docker 与 Compose 版本对齐
绝大多数 AI Agent(如 n8n、Hermes Agent、Ollama)都依赖 Docker。如果新机器的 Docker 版本过低,可能会导致 Compose 配置文件无法解析。
docker -v # 检查 Docker 版本
docker-compose -v # 检查 Docker Compose 版本
如果版本差距过大,建议先更新。以常用的 Docker 安装脚本为例:
curl -fsSL https://get.docker.com | sh # 安装最新版 Docker
usermod -aG docker $USER # 将当前用户加入 docker 组,避免总是用 root
Python 与 Node.js 运行时检查
部分 Agent 需要宿主机预装 Python 或 Node.js 环境(例如某些基于 LangChain 开发的自定义 Agent)。
python3 –version # 检查 Python 版本
node -v # 检查 Node 版本
如果旧环境用的是 Python 3.10,新机器装了 3.12,可能会出现依赖库不兼容。建议使用 `pyenv` 或 `nvm` 管理版本,或者直接使用 Docker 镜像隔离环境,省去很多麻烦。
核心数据同步与配置迁移
环境准备好后,才是最关键的数据搬家。这一步要把配置文件、知识库和本地模型完整转移。
环境变量与 API Key 安全转移
千万不要把 `.env` 文件通过微信或未加密的邮件传输。先用 `scp` 或 `rsync` 把配置文件传到新 VPS 临时目录。
scp root@旧VPS_IP:/root/agent-project/.env ./ # 下载到本地
scp .env root@新VPS_IP:/root/agent-project/ # 上传到新服务器
打开 `.env` 文件,重点检查 `OPENAI_API_KEY`、`ANTHROPIC_API_KEY` 等敏感信息。如果你的 API Key 绑定了旧 VPS 的 IP 白名单,记得去服务商后台把新 IP 加进去,否则 Agent 一跑就报 403 错误。
Ollama 本地模型与向量数据库迁移
如果你部署了 Ollama 本地运行 Llama 3 或 DeepSeek 模型,模型文件通常很大(几 GB 到几十 GB),重新下载太慢。直接打包模型目录迁移最快。
Ollama 的默认模型路径在 `/usr/share/ollama/.ollama/models`(视具体安装方式而定,建议用 `ollama show –modelfile` 确认路径)。
cd /usr/share/ollama/.ollama
tar -czf models.tar.gz models
mkdir -p /usr/share/ollama/.ollama
tar -xzf models.tar.gz -C /usr/share/ollama/.ollama/
对于使用了 ChromaDB 或 Pgvector 的知识库 Agent,直接迁移数据库挂载目录即可。如果是 Docker 部署,通常在 `docker-compose.yml` 中定义的 volumes 路径下。
rsync -avzP root@旧VPS_IP:/var/lib/docker/volumes/agent_db_data/ /var/lib/docker/volumes/agent_db_data/
AI Agent 验证清单与故障排查
数据搬过去不代表迁移成功,必须跑一遍完整的验证流程。
容器启动与日志分析
在新 VPS 的项目目录下拉起服务。
docker-compose up -d
docker-compose ps -a # 查看所有容器状态,确保 Exit 0 或是 Up 状态
如果有容器一直 `Restarting`,别急着重启,先看日志。
docker-compose logs agent-service # 查看具体服务的日志
常见报错通常是网络不通(API 无法访问)或权限不足(挂载目录读写权限被拒绝)。如果是权限问题,用 `chown -R 1000:1000 数据目录` 修正一下。
Agent 执行逻辑与 API 回调测试
进入 Web UI(如 n8n 或 Open WebUI),手动触发一个简单的测试 Workflow。
1.输入测试:发一条消息给 Agent,看是否能正常调用 LLM。
2.工具调用测试:让 Agent 执行一个搜索或代码执行任务,检查 MCP 或插件是否连接正常。
3.Webhook 测试:如果 Agent 依赖外部 Webhook 触发,用 `curl` 模拟一次请求,看新 VPS 是否能正常接收。
老鸟叮嘱
迁移过程最容易踩坑的地方往往不是技术,而是配置细节。
1.IP 白名单:API Key 的 IP 限制忘记改,这是最常见的“假死”原因。
2.时区问题:新 VPS 默认可能是 UTC 时区,导致定时任务(Cron)执行时间不对,记得用 `timedatectl set-timezone Asia/Shanghai` 修正。
3.防火墙端口:新机器的安全组(Security Group)往往没放行端口,记得把 80、443 或 Agent 自定义端口放行。
4.不要用 root 跑所有服务:虽然省事,但一旦容器被攻破,黑客直接拿到服务器权限。尽量在 `docker-compose.yml` 里指定 `user`。
FAQ
Q1:可以直接把旧 VPS 的整盘镜像克隆到新 VPS 吗?
A:理论上可以,但风险很大。如果新旧 VPS 的底层架构不同(比如从 AMD 迁移到 ARM),或者内核版本差异大,直接克隆可能导致系统无法启动。建议只迁移应用层的数据和配置,系统层重装更稳。
Q2:迁移后 n8n 的 Workflow 丢失了怎么办?
A:n8n 的数据存储在 Postgres 数据库里。如果你迁移了 Docker 的 Volume 数据,Workflow 应该都在。如果确实丢了,检查一下旧 VPS 的数据库备份文件,或者查看是否有导出的 JSON 文件。
Q3:Ollama 迁移后模型无法识别,提示找不到模型?
A:通常是文件权限问题。Ollama 运行用户(通常是 ollama:ollama)对模型目录没有读取权限。执行 `chown -R ollama:ollama /usr/share/ollama/.ollama` 修复权限,然后重启 Ollama 服务。
Q4:新 VPS 内存比旧的小,跑不动本地大模型怎么办?
A:如果内存不足导致 OOM(Out of Memory),可以开启 Swap 虚拟内存应急,或者改用 API 调用型的 Agent(如通过 OpenAI 接口调用 GPT-4),把本地模型换成量化版本(如 Q4_K_M)以降低内存占用。
只要按照环境对齐、数据迁移、功能验证这三步走,AI Agent 换个新家依然能稳定运行,关键在于别漏掉 `.env` 里的配置和数据库文件。
转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/10263.html 商家投稿邮箱:zhujixuanblog@qq.com
