Hermes Agent 宿主机部署、备份机制与全量灾备恢复 SOP (小白通俗版)
核心目标:本文档以通俗直白、步骤精确的语言,完整梳理当前宿主机(英国 Cardiff 2号节点,Debian 13 ARM64)上 Hermes Agent 核心架构、自建及手动安装的技能/MCP/外联记忆体清单、每日自动备份机制与物理路径。
最坏打算:即使服务器突然暴毙、硬盘彻底损坏或服务商误删实例,只需一台全新安装 Debian 13 的空机器,任何人(即使是零基础小白)照着本篇从头贴命令,就能在 15~20 分钟内 100% 完整复活整个 Agent 生产系统与全部记忆!
🗺️ 一、 系统全貌与核心资产清单
1. 宿主机基本环境
- 操作系统:Linux Debian 13 (Trixie) / aarch64 (ARM64)
- 核心目录:
/root/.hermes/:Hermes Agent 核心配置、记忆碎片、Cron 定时任务、自定义脚本与技能沙盒。/usr/local/lib/hermes-agent/:Hermes 官方开源代码主程序库。/root/HermesAgent/:个人 GitHub 资产主仓(含 clbot、ccbot、直饮水台账、运动归档与每日自动备份包)。/root/hindsight-server/:自托管 PostgreSQL + pgvector 长期记忆中枢。/root/wiki/:基于 Quartz 的个人数字花园知识库(独立仓yyanxiao/wiki)。/root/homer/:自托管个人仪表盘与书签导航(独立仓yyanxiao/homer)。
2. 核心外联项目与记忆体 (External Services)
- 主推理基线模型:
gemini-3.8-flash-high(通过兼容网关https://xlxz321701.yinf.de/v1调度)。 - 唯一长期大脑 (
hindsight_memory):- 基于 Docker 容器化运行的自托管
hindsight-api与pgvector:pg16数据库; - 提供
mcp__hindsight_memory__retain(存入记忆)、sync_retain与recall(语义与混合召回); - 抽取与反射模型同样由
gemini-3.8-flash-high驱动,绑定在宿主机http://127.0.0.1:8888/mcp。
- 基于 Docker 容器化运行的自托管
- 飞书双工通信网关 (Feishu Messaging Gateway):
- 绑定应用
Hermes Agent(App ID:cli_aab37c652e389cb5); - 采用 WebSocket (WSS) 长连接与用户单聊(
ou_5a1339ce...)及群聊(oc_f1ea1580...)双向交互; - 由 Systemd 用户守护进程
hermes-gateway.service保持 7x24 小时存活。
- 绑定应用
- 三位一体专才 Profile 团队:
a_architect(A Bot / 首席架构师):独立 Profile 位于~/.hermes/profiles/a_architect/,模型gemini-3.8-flash-high;b_coder(B Bot / 核心程序员):独立 Profile 位于~/.hermes/profiles/b_coder/,模型gemini-pro-agent。日常在飞书群中负责常规 Bug 修复、单函数编写及自测交互;当面临大型多文件重构、深层并发/死锁排查或大规模自动化测试生成等复杂工程任务时,B Bot 会在底层终端调用 Factory Droid CLI (claude-opus-5) 引擎协助攻坚。
3. 外挂 MCP 服务与手动安装技能清单 (排除官方自带)
① 外部挂载的 MCP 服务
hindsight_memory(HTTP 传输模式):- 地址:
http://127.0.0.1:8888/mcp - 作用:系统绝对的核心长期记忆数据库。
- 地址:
tradingview(Stdio / UVX 模式):- 命令:
uvx --from git+https://github.com/atilaahmettaner/tradingview-mcp.git tradingview-mcp - 作用:股票、加密货币多周期技术指标(EMA/MACD/RSI/布林带)、实时报价与回测。
- 命令:
② 手动/定制安装的核心业务技能清单 (~/.hermes/skills/)
(注:以下技能均为业务定制开发,官方自带的 default skills 中没有,全部受每日备份保护)
- 量化金融与风控类:
finance/qqq-gex-and-run-schedule:QQQ 做市商 Gamma 墙与波动率策略。finance/quant-trading-pitfalls:量化交易陷阱审计防线。research/quant-api-safety:Tradier / Alpaca 只读安全防护。qqq-analysis:QQQ 数据深度回测与指标沉淀。python-bot-reliability:针对 Docker 死循环与 DB 垃圾回收加固。
- 多 Agent 与研发协作类:
autonomous-ai-agents/multi-bot-dev-team:A Bot (架构) 与 B Bot (编码) 三位一体协同 SOP。autonomous-ai-agents/multi-agent-vps-orchestration:远程多节点调度。autonomous-ai-agents/remote-worker-execution:ControlMaster 远程免密无摩擦执行。
- 生活管理与日常运维类:
workout-analyzer:Garmin.fit运动轨迹自动解析、配速计算、知识库图谱维护。productivity/water-maintenance:直饮水台账与滤芯更换记录管理。productivity/homer-bookmark:个人仪表盘书签自动化收录。devops/docker-container-update:宿主机全量 Docker 容器平滑升级。research/cognitive-models:五大跨学科思维模型。
💾 二、 备份机制与备份文件到底存在哪里?
为确保绝对安全,系统采用了**“本地热备份 + 自动逻辑导出 + 远端 GitHub 物理隔离”**三重冗余防护体系。
1. 每日定时备份机制
- 触发时间:每天凌晨 03:00 CST(由 CronJob
abaa7ed22274,hermes_auto_backup.py执行,no_agent=True运行)。 - 保留策略:本地自动轮转清理,仅保留最近 7 天 的备份文件,超期自动物理删除。
2. 备份了哪些具体内容?
每次备份生成 两个独立核心文件:
hermes_backup_YYYYMMDD_HHMMSS.tar.gz(约 14 MB):/root/.hermes/config.yaml(全局配置、MCP 声明、API 路由、模型设置)/root/.hermes/skills/(所有手动定制的技能全部在里面!)/root/.hermes/memories/(本地记忆片段与用户特征画像)/root/.hermes/scripts/(所有运维自检脚本、调度器、看门狗脚本)/root/.hermes/state/(状态机数据与部分凭据)
hindsight_YYYYMMDD_HHMMSS.dump(约 1 MB):- 通过
docker exec -t hindsight-db pg_dump -U postgres -F c -d hindsight命令对长期记忆 PostgreSQL 库执行的完整逻辑二进制转储(含全部向量表、记忆节点与实体关系)。
- 通过
3. 备份文件存放在哪里?
- 宿主机本地物理路径:
/root/HermesAgent/backups/ - 远端容灾物理路径 (GitHub 私有仓):
- 脚本备份完成后,会自动执行
git add backups/ && git commit && git push; - 全部备份文件每天凌晨 03:00 会被推送到 GitHub 远端私有仓库:
git@github.com:yyanxiao/HermesAgent.git的backups/目录下! - 结论:只要 GitHub 账号还在,即使 Cardiff 宿主机整机被物理烧毁,备份数据毫发无损!
- 脚本备份完成后,会自动执行
🚑 三、 灾难恢复 SOP:从全新服务器从零复活系统 (小白实操指南)
假设当前服务器突然炸裂无法开机,服务商重新提供了一台全新安装好的 Debian 13 (ARM64 或 x86) 空服务器,只需按照以下 7 个步骤依序敲击命令,即可 100% 满血复活!
步骤 1:基础环境准备与 SSH 密钥配置 (约 2 分钟)
登录全新机器的 root 终端,安装基础依赖:
# 1. 更新源并安装常用工具
apt update && apt upgrade -y
apt install -y git curl wget sudo tar htop jq net-tools ufw build-essential
# 2. 将你本地的 GitHub SSH 私钥 (~/.ssh/id_rsa) 上传并赋予权限
# (确保能够从 GitHub 拉取私有仓库)
chmod 600 ~/.ssh/id_rsa
ssh -T git@github.com # 出现 Hi yyanxiao! 表示 GitHub 鉴权通过步骤 2:克隆核心代码仓并解压最新备份 (约 3 分钟)
直接从 GitHub 将备份仓库克隆下来:
# 1. 克隆 HermesAgent 仓库
cd /root
git clone git@github.com:yyanxiao/HermesAgent.git
# 2. 找到最新的备份文件
cd /root/HermesAgent/backups
LATEST_HERMES_TAR=$(ls -t hermes_backup_*.tar.gz | head -n 1)
echo "正在恢复最新 Hermes 备份包: $LATEST_HERMES_TAR"
# 3. 解压到 /root 目录下(会自动还原出 /root/.hermes)
tar -xzf "$LATEST_HERMES_TAR" -C /root/
# 4. 验证核心配置文件是否存在
ls -la /root/.hermes/config.yaml
ls -la /root/.hermes/skills/步骤 3:安装 Docker 与 Docker Compose (约 3 分钟)
Hindsight 记忆库与相关应用依赖 Docker:
# 1. 安装官方 Docker 引擎
curl -fsSL https://get.docker.com | bash
# 2. 启动 Docker 并设置开机自启
systemctl enable --now docker
# 3. 创建全局代理网络(因为 hindsight 和 cf-tunnel 共用网络)
docker network create cf-gateway || true步骤 4:恢复 Hindsight 记忆中枢并导入数据库 (约 4 分钟)
克隆并启动 Hindsight 容器,将 dump 数据库导入:
# 1. 创建 hindsight-server 目录并下载 compose 文件
mkdir -p /root/hindsight-server
cd /root/hindsight-server
cat << 'EOF' > docker-compose.yml
services:
hindsight-db:
image: pgvector/pgvector:pg16
container_name: hindsight-db
restart: unless-stopped
expose:
- "5432"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: [REDACTED_DB_PASSWORD]
POSTGRES_DB: hindsight
volumes:
- pgdata:/var/lib/postgresql/data
networks:
- cf-gateway
hindsight-api:
image: ghcr.io/vectorize-io/hindsight:latest
container_name: hindsight-api
restart: unless-stopped
ports:
- "127.0.0.1:8888:8888"
expose:
- "9999"
environment:
HINDSIGHT_API_DATABASE_URL: postgresql://postgres:[REDACTED_DB_PASSWORD]@hindsight-db:5432/hindsight
HINDSIGHT_API_LLM_PROVIDER: openai
HINDSIGHT_API_LLM_BASE_URL: "https://xlxz321701.yinf.de/v1"
HINDSIGHT_API_LLM_MODEL: gemini-3.8-flash-high
HINDSIGHT_API_LLM_API_KEY: ${OPENAI_API_KEY}
HINDSIGHT_API_WORKER_ID: "hermes-memory-worker-1"
depends_on:
- hindsight-db
networks:
- cf-gateway
volumes:
pgdata:
networks:
cf-gateway:
external: true
EOF
# 2. 配置 .env 密钥(填入您的中转 API KEY)
echo "OPENAI_API_KEY=[REDACTED_API_KEY]" > /root/hindsight-server/.env
# 3. 启动容器
docker compose up -d
# 4. 等待 5 秒数据库就绪,导入最新的 Hindsight dump
sleep 5
LATEST_DUMP=$(ls -t /root/HermesAgent/backups/hindsight_*.dump | head -n 1)
echo "正在恢复数据库数据: $LATEST_DUMP"
docker cp "$LATEST_DUMP" hindsight-db:/tmp/restore.dump
docker exec -t hindsight-db pg_restore -U postgres -d hindsight --clean --if-exists /tmp/restore.dump || true
docker restart hindsight-api
# 5. 验证记忆库连通性
curl -s http://127.0.0.1:8888/health || echo "OK"步骤 5:安装 UV 与 Hermes Agent 核心主程序 (约 4 分钟)
# 1. 安装现代化 Python 包管理器 UV
curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH="/root/.local/bin:$PATH"
source ~/.bashrc
# 2. 克隆并安装 Hermes Agent 开源主库
git clone https://github.com/NousResearch/hermes-agent.git /usr/local/lib/hermes-agent
cd /usr/local/lib/hermes-agent
# 3. 初始化 Python 虚拟环境并安装核心依赖
uv venv /usr/local/lib/hermes-agent/venv --python 3.11
source /usr/local/lib/hermes-agent/venv/bin/activate
uv pip install -e .
# 4. 创建全局软链接
ln -sf /usr/local/lib/hermes-agent/venv/bin/hermes /usr/local/bin/hermes
# 5. 安装 Node.js 22 环境(供前端与 Droid CLI 使用)
curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt install -y nodejs步骤 6:配置 Systemd 用户守护进程 (飞书网关 7x24 小时开机自启)
# 1. 创建 Systemd 用户服务目录
mkdir -p /root/.config/systemd/user/
# 2. 写入守护服务配置文件
cat << 'EOF' > /root/.config/systemd/user/hermes-gateway.service
[Unit]
Description=Hermes Agent Gateway - Messaging Platform Integration
After=network-online.target
Wants=network-online.target
StartLimitIntervalSec=0
[Service]
Type=simple
ExecStart=/usr/local/lib/hermes-agent/venv/bin/python -m hermes_cli.main gateway run
WorkingDirectory=/root/.hermes
Environment="PATH=/usr/local/lib/hermes-agent/venv/bin:/root/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Environment="VIRTUAL_ENV=/usr/local/lib/hermes-agent/venv"
Environment="HERMES_HOME=/root/.hermes"
Environment="HERMES_SUPERVISED_CHILD=1"
Restart=always
RestartSec=5
KillMode=mixed
KillSignal=SIGTERM
TimeoutStopSec=70
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=default.target
EOF
# 3. 启用并启动服务
systemctl --user daemon-reload
systemctl --user enable --now hermes-gateway
# 4. 允许普通会话断开后 Systemd 用户服务持续后台运行 (Linger)
loginctl enable-linger root步骤 7:验证与收尾体检 (约 1 分钟)
# 1. 检查网关运行状态
systemctl --user status hermes-gateway
# 2. 检查 Hermes 环境完整性
hermes doctor
# 3. 检查 Cron 定时任务是否全部复原
hermes cron list当你在飞书客户端向机器人发送任意消息并得到回复时,恭喜你!整个系统已彻底完成 100% 满血复原!全部历史技能、记忆节点与定时任务完好如初!
相关链接
- VPS资产台账-英国Cardiff02 Cardiff 宿主机硬件与网络配置基线
- 定时任务调度与看门狗台账 全量 6 大定时任务调度规程
- 三位一体AI协作研发团队架构设计与SOP 多 Agent 协作与研发铁律
- Factory_AI_Droid部署实战与运维全景指南 Droid CLI 引擎配置与使用说明