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。
  • 飞书双工通信网关 (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 服务

  1. hindsight_memory (HTTP 传输模式):
    • 地址:http://127.0.0.1:8888/mcp
    • 作用:系统绝对的核心长期记忆数据库。
  2. 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. 备份了哪些具体内容?

每次备份生成 两个独立核心文件:

  1. 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/(状态机数据与部分凭据)
  2. 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% 满血复原!全部历史技能、记忆节点与定时任务完好如初!


相关链接