Hermes Agent 迁移报告(适用于从旧服务器迁移到新服务器的完整步骤)
Hermes Agent 迁移报告
(适用于从旧服务器迁移到新服务器的完整步骤)
1. 概览
- 工具:hermes_migrate.sh(已在旧服务器 ~/bin/ 生成)
- 功能:一键打包、传输、解压 Hermes 配置与数据,支持本地备份或远程同步。
- 适用场景:更换服务器、搬迁至新机器、灾备恢复。
2. 前置准备
项目: 系统
说明: Linux(RHEL、CentOS、Ubuntu 均可)
操作: 确认 bash、tar、scp 已安装
────────────────────────────────────────
项目: Python
说明: Python 3.11(或兼容)
操作: python3 --version <br>若未安装:yum install -y python3(RHEL)或 apt-get install -y python3(Ubuntu)
────────────────────────────────────────
项目: pip
说明: Python 包管理
操作: python3 -m ensurepip
────────────────────────────────────────
项目: git
说明: 代码管理(可选)
操作: git --version
────────────────────────────────────────
项目: Hermes 安装
说明: 在新服务器上准备好 Hermes 二进制或 pip install hermes-cli
操作: 参考官方文档 hermes setup
────────────────────────────────────────
项目: SSH 访问
说明: 本机能够 SSH 进入新服务器
操作: ssh <new-host> 正常登录
────────────────────────────────────────
项目: 网络
说明: 能够访问外部模型服务(OpenRouter、DeepSeek、Google Gemini)
操作: 检查端口 443 outbound 是否通畅
> 提示:若新服务器已装好 hermes,请先运行 hermes status 确认服务可以启动(即便没有配置文件也会输出 no config found)。
3. 迁移脚本说明
bash
#!/bin/bash
~/bin/hermes_migrate.sh
用法: ./hermes_migrate.sh [backup|restore] [remote_host]
- backup:
1. 生成时间戳文件 hermes_backup_YYYYMMDD_HHMMSS.tgz。
2. 打包用户主目录下的 .hermes(包含模型配置、凭证、技能、cron、记忆等)。
3. 若提供 remote_host 参数,会自动 scp 复制到目标机器的 ~/ 目录。
- restore:
1. 需要把打好的压缩包放到新机器的任意位置。
2. 执行 ./hermes_migrate.sh restore <archive_path> 即可解压到用户根目录的 .hermes。
3. 完成后,可自行检查文件权限,确保 ~/.hermes 属于当前用户。
4. 迁移步骤
4.1 在旧服务器执行备份
bash
给脚本加执行权限(若已执行可跳过)
chmod +x ~/bin/hermes_migrate.sh
本地备份(生成文件在 ~ 目录)
./hermes_migrate.sh backup
若想直接同步到新服务器(IP 或域名)
./hermes_migrate.sh backup <new-server-ip-or-host>
- 结果:在旧服务器 ~/ 生成类似 hermes_backup_20260604_154210.tgz 的压缩包。
- 若使用远程参数,脚本会在传输完成后提示解压命令。
4.2 在新服务器准备环境
bash
安装必要依赖(示例为 RHEL/CentOS)
sudo yum install -y python3 python3-pip tar openssh-clients
安装 Hermes(如已装可跳过)
python3 -m pip install --upgrade hermes-cli
- 确认 hermes 命令可用:hermes --version
4.3 将备份文件复制至新服务器(若未使用脚本远程传输)
bash
从旧服务器把备份拉到新机器(在新机器上执行)
scp user@old-server:~/hermes_backup_20260604_154210.tgz ~/
4.4 在新服务器恢复
bash
给脚本加执行权限(如果你把脚本也拷贝过去)
chmod +x ~/bin/hermes_migrate.sh
恢复备份
./hermes_migrate.sh restore ~/hermes_backup_20260604_154210.tgz
> 恢复后,.hermes 目录与旧服务器完全一致,包括:
- config.yaml(模型、provider、cron 等配置)
- .env(API Key、凭证)
- skills/(自定义 Skill)
- cron/(定时任务脚本)
- memory/(持久记忆)
4.5 验证迁移成功
bash
查看配置是否读取
hermes config get model.default
hermes config get model.provider
hermes config get model.api_key # 注意输出会被脱敏
列出已有的技能
hermes skills list
检查 cron 任务
hermes cron list
启动 Hermes(如果使用 systemd 服务)
systemctl --user restart hermes.service
systemctl --user status hermes.service
- 若看到 hermes service is active (running) 并且 hermes cron list 能列出原来的任务,则迁移成功。
5. 常见问题 & 解决方案
场景: 恢复后 hermes 报错 “config not found”
可能原因: .hermes 权限不对或解压路径错误
处理办法: ls -la ~/.hermes 检查所有文件归属用户,确保是当前用户;若在根目录执行 tar -xzf,请确认使用 -C ~ 参数
────────────────────────────────────────
场景: API Key 被截断
可能原因: .env 写入时被 secret‑redaction 截断
处理办法: 参考 hermes‑model‑configuration skill 中的 “⚠️ 写入 .env 的坑”章节,用 write_file 直接写入完整 key,或使用 Python 脚本写入
────────────────────────────────────────
场景: Cron 任务未启动
< 可能原因: cronjob 服务未开启或 enabled=false
Resume this session with: list 检查 enabled:true;若未启动,使用 systemctl –user enable –now hermes-cron.service(若有)
hermes –resume 20260604_113003_659a78────
hermes -c “Current Time Inquiry”
可能原因: Google Gemini 免费配额已用尽
Session: 20260604_113003_659a78outer,或者在 GCP 项目中升级计费、检查 API 限制
Title: Current Time Inquiry────────
Duration: 10h 21m 58sprovider not found”
Messages: 84 (12 user, 60 tool calls)
[root@SoJjlun9YRkPf ~]# fig set model.provider “” 清空,或改为对应新 provider(如 deepseek、openrouter)
6. 完整迁移报告(示例)
[2026-06-04 15:42:10] 迁移脚本路径:/root/bin/hermes_migrate.sh
[2026-06-04 15:42:12] 生成备份文件:/root/hermes_backup_20260604_154210.tgz (size: 12.3 MB)
[2026-06-04 15:42:17] 通过 scp 将备份传输至新服务器 192.0.2.45
[2026-06-04 15:42:34] 在新服务器解压完成,恢复路径:/root/.hermes/
[2026-06-04 15:43:01] 检查模型配置 → model.default = openrouter/free
[2026-06-04 15:43:05] 检查 provider & API key → provider = openrouter, key 已完整
[2026-06-04 15:43:11] 列出技能 → 85 条自定义 skill
[2026-06-04 15:43:14] 列出 cron 任务 → 包含 “服务器健康监控” 与 “sdoculb-monitor”
[2026-06-04 15:43:20] 重启 Hermes 服务 → 状态 active (running)
[2026-06-04 15:43:25] 迁移成功,所有配置、凭证、cron 与 skill 完整复原
> 备注:上述时间戳仅为示例,实际执行时请自行记录。
7. 后续建议
1. 备份策略:建议在每次重大改动(新增 skill、修改 cron)后执行一次 backup,并把压缩包存放在离线存储(对象存储、NAS)。
2. 监控:在新服务器上开启 hermes cron 的 “服务器健康监控” 任务,以便及时发现服务异常。
3. 文档同步:若你在 /root/.hermes/skills/ 中维护了自定义文档,可在新机器上使用 git 进行版本管理,方便协同开发。