必须使用 HERMES_HOME 环境变量硬隔离配置目录,或通过 Docker 容器、独立系统用户实现完全隔离;因 v0.19.1 与 v0.18.2 的数据库 schema 和 ABI 不兼容,共用 ~/.hermes 会导致启动失败、SQL 报错或记忆损坏。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在同一台设备上同时安装并运行 Hermes Agent v0.18.2 和 v0.19.1 两个版本,且确保它们互不干扰、配置独立、模型与记忆数据完全隔离,就必须打破默认的全局 ~/.hermes 目录共享机制。v0.19.1 是尚未发布的预发布版本(截至 2026 年 8 月 4 日,官方稳定版仍为 v0.18.2),其代码结构、状态数据库 schema 和插件 ABI 可能已变更,直接共用配置目录会导致启动失败、SQL 报错或记忆损坏。
用 HERMES_HOME 环境变量硬隔离两套配置根目录
这是最轻量、最可控的方式,无需新建系统用户,也无需 Docker,适用于开发调试与版本对比场景。
第一步:为 v0.18.2 创建专属配置目录并初始化
执行 mkdir -p ~/hermes-v0.18.2 && cp -r ~/.hermes/* ~/hermes-v0.18.2/ 2>/dev/null || true。这一步必须在你当前已成功运行 v0.18.2 的环境下操作,否则 ~/.hermes 为空或不完整。
第二步:为 v0.19.1 准备空白配置目录
执行 mkdir -p ~/hermes-v0.19.1。注意:不要复制旧配置进去——v0.19.1 的 state.db 表结构已重写,强行复用 v0.18.2 的数据库会触发 【schema migration 失败导致 agent 启动即退出】。
第三步:分别安装两个版本的可执行体
安装 v0.18.2:用官方稳定脚本 curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/install.sh | bash,它会把 v0.18.2 安装到 ~/.hermes/venv/ 下;
安装 v0.19.1:必须从源码构建,先克隆预发布分支 git clone --branch v0.19.1-rc https://github.com/NousResearch/hermes-agent.git ~/hermes-v0.19.1-src,再进入目录执行 uv venv venv --python 3.11 && source venv/bin/activate && uv pip install -e ".[all]"。
第四步:启动时严格绑定各自环境
v0.18.2 实例:执行 HERMES_HOME="$HOME/hermes-v0.18.2" ~/.hermes/venv/bin/python -m hermes --name=v18;
v0.19.1 实例:执行 HERMES_HOME="$HOME/hermes-v0.19.1" ~/hermes-v0.19.1-src/venv/bin/python -m hermes --name=v19。两个实例将各自读写独立的 SOUL.md、MEMORY.md 和 SQLite 文件,端口默认均为 8000,需手动指定不同端口避免冲突。
用 Docker 容器彻底隔绝运行时环境
当你需要验证 v0.19.1 在生产级网络策略、资源限制或特定 Python 版本下的行为时,Docker 是唯一能保证 100% 隔离的方案。容器之间无文件系统、进程空间、端口或环境变量泄漏风险。
方法一:基于官方镜像定制双标签
拉取基础镜像并打两个版本标签:docker pull ghcr.io/nousresearch/hermes-agent:latest → 重命名为 hermes:v0.18.2;再从 v0.19.1-rc 分支构建新镜像:cd ~/hermes-v0.19.1-src && docker build -t hermes:v0.19.1 .。
方法二:用 docker-compose 启动双实例
创建 docker-compose.yml,定义两个 service:
service agent-v18 使用 image hermes:v0.18.2,挂载卷 ./v18-config:/root/.hermes,暴露端口 8001:8000;
service agent-v19 使用 image hermes:v0.19.1,挂载卷 ./v19-config:/root/.hermes,暴露端口 8002:8000。
执行 docker-compose up -d 启动后,两个实例完全独立:v0.18.2 的日志写入 ./v18-config/logs/,v0.19.1 的 auth.json 存于 ./v19-config/auth.json,彼此不可见。
用独立系统用户实现最高强度隔离
此方式适用于对安全性要求极高的场景,比如你在同一台机器上为不同客户部署 v0.18.2 生产环境和 v0.19.1 测试沙箱,必须杜绝任何内核级资源共享可能。
① 创建专用用户:sudo adduser --disabled-password --gecos "" hermes-v18 和 sudo adduser --disabled-password --gecos "" hermes-v19。
② 为 hermes-v18 用户部署稳定版:sudo -u hermes-v18 bash -c 'curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/install.sh | bash'。
③ 为 hermes-v19 用户部署预发布版:sudo -u hermes-v19 bash -c 'git clone --branch v0.19.1-rc https://github.com/NousResearch/hermes-agent.git ~/hermes-agent && cd ~/hermes-agent && uv venv venv --python 3.11 && source venv/bin/activate && uv pip install -e ".[all]"'。
④ 启动命令必须显式指定用户与路径:sudo -u hermes-v18 HERMES_HOME="/home/hermes-v18/.hermes" /home/hermes-v18/.hermes/venv/bin/python -m hermes --port=8001;sudo -u hermes-v19 HERMES_HOME="/home/hermes-v19/.hermes" /home/hermes-v19/hermes-agent/venv/bin/python -m hermes --port=8002。
注意:两个用户的 home 目录权限被 Linux 内核强制隔离,hermes-v19 无法读取 hermes-v18 的 ~/.hermes/auth.json,反之亦然——这是文件系统级硬隔离,比环境变量或容器更底层。


















