从零开始,在一台服务器上部署并管理多个AI智能体实例,让它们各司其职、互不干扰

Hermes Agent 多智能体集群部署完全指南

从零开始,在一台服务器上部署并管理多个AI智能体实例,让它们各司其职、互不干扰


📖 目录

  1. Hermes Agent 简介
  2. 为什么需要多智能体集群
  3. 环境准备
  4. 安装 Hermes Agent
  5. 核心配置与模型接入
  6. 多智能体集群部署
  7. 消息平台接入(Gateway配置)
  8. Systemd 服务管理
  9. Web管理面板部署(可选)
  10. 高级进阶
  11. 常见问题与排障

1. Hermes Agent 简介

Hermes Agent 是由 Nous Research 开源的自主 AI 智能体框架,其核心理念是 “与你共同成长的 Agent”

🎯 核心能力

能力 说明
自我进化 从交互中自动生成可复用的技能(Skill),越用越聪明
持久记忆 四层记忆体系,跨会话记住用户偏好和项目上下文
多平台覆盖 支持 CLI、Telegram、飞书、微信等 15+ 消息平台
灵活部署 最低 1 核 2G VPS 即可运行,支持 Docker、SSH 等后端

✨ 八大亮点

  1. 智能授权 — 自动识别高危指令,说明意图后再请求授权
  2. 会话感知 — 可感知历史对话,生成个性化的 SOUL.md
  3. 多模型路由 — 为不同任务分配独立模型,省钱又高效
  4. 配置解耦 — 密钥与配置分离,YAML 格式友好
  5. 工具透明 — 终端清晰打印每次工具调用过程
  6. 多 Profile — 一句话完成多实例配置,沙箱与主力轻松分离 ⭐
  7. 自动技能沉淀 — 将操作总结为可复用技能
  8. 消息不丢失 — 20 个退出触发点,增量写入

2. 为什么需要多智能体集群

在一台服务器上运行多个 Hermes 实例,可以实现:

场景 说明
开发/生产分离 测试环境与正式环境互不干扰
角色分工 程序员助手、研究员、设计师各司其职
多客户服务 为不同客户配置独立的 Bot 账号
A/B 测试 同时运行不同配置版本进行对比

3. 环境准备

3.1 硬件要求

配置 最低要求 推荐配置
CPU 1 核 2 核+
内存 2 GB 4 GB+(多实例建议 8GB+)
存储 10 GB 20 GB SSD
系统 Ubuntu 20.04+ / macOS 12+ / WSL2 Ubuntu 22.04

3.2 安装前置软件

Hermes 的安装脚本会自动处理 Python、Node.js 等依赖,你只需提前安装 Git

bash
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
sudo apt install git -y

# 验证安装
git --version

3.3 国内网络加速(重要)

国内环境需要配置镜像加速 :

bash
# 1. Git 镜像加速
git config --global url."https://mirror.ghproxy.com/https://github.com".insteadOf "https://github.com"

# 2. pip 阿里云镜像
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

# 3. npm 腾讯云镜像
npm config set registry https://mirrors.cloud.tencent.com/npm/ --global

3.4 阿里云服务器特殊配置(如适用)

如果你使用阿里云服务器,需要 :

  1. 安全组放行端口:默认需要放行 3000(API)、8642(Agent通信)、6060(WebUI)
  2. 防火墙配置
bash
sudo ufw allow 3000/tcp
sudo ufw allow 6060/tcp
sudo ufw reload

4. 安装 Hermes Agent

4.1 方式一:一键脚本安装(新手首选)⭐

bash
# 国内环境推荐(镜像加速)
curl -fsSL https://hermes.xaapi.ai/install.sh | bash

# 官方原版(国外环境)
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

安装过程约 10-15 分钟,脚本会自动完成:

  • 检测并安装 Python 3.11、Node.js v22
  • 创建虚拟环境
  • 安装所有依赖
  • 配置 PATH 环境变量

4.2 方式二:Docker 部署(生产环境首选)

bash
# 1. 安装 Docker
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker

# 2. 拉取官方镜像
docker pull nousresearch/hermes-agent:latest

# 3. 创建配置目录并启动
mkdir -p ~/.hermes/docker-config
docker run -d \
  --name hermes-agent \
  -v ~/.hermes/docker-config:/root/.hermes \
  -p 8080:8080 \
  nousresearch/hermes-agent:latest

# 4. 验证运行状态
docker ps | grep hermes-agent

4.3 验证安装

bash
# 刷新环境变量
source ~/.bashrc  # bash 用户
source ~/.zshrc   # zsh 用户

# 验证版本
hermes --version
# 预期输出:hermes v0.14.0

# 健康检查
hermes doctor
# 所有核心项显示 green 即为正常

5. 核心配置与模型接入

5.1 运行配置向导

bash
hermes setup

向导会引导你:

  1. 选择模型提供商
  2. 配置 API Key
  3. 设置默认模型
  4. 配置工具权限

5.2 模型配置

方案 A:Kimi(国内用户首选)⭐

Kimi 是国内用户的最佳选择:国内直连、200万超长上下文、中文理解准确率行业领先 。

bash
# 编辑环境变量文件
vim ~/.hermes/.env

# 添加 Kimi API Key
MOONSHOT_API_KEY=sk-your-kimi-api-key-here

获取 API Key:访问 Moonshot 控制台 创建 。

bash
# 编辑主配置文件
vim ~/.hermes/config.yaml

# 设置默认模型
default_model: moonshot/kimi-latest
model_providers:
  moonshot:
    api_key: "${MOONSHOT_API_KEY}"
    base_url: "https://api.moonshot.cn/v1"
    timeout: 60

方案 B:阿里云百炼(通义千问)

bash
# .env 文件
DASHSCOPE_API_KEY=sk-your-dashscope-key

# config.yaml
default_model: qwen/qwen-plus
model_providers:
  qwen:
    api_key: "${DASHSCOPE_API_KEY}"
    base_url: "https://dashscope.aliyuncs.com/compatible-mode/v1"

方案 C:OpenRouter(多模型切换)

bash
# .env 文件
OPENROUTER_API_KEY=sk-your-openrouter-key

# config.yaml
default_model: openrouter/claude-3-haiku
model_providers:
  openrouter:
    api_key: "${OPENROUTER_API_KEY}"
    base_url: "https://openrouter.ai/api/v1"

5.3 验证模型配置

bash
# 列出可用模型
hermes model list

# 测试对话
hermes -m "你好,请介绍一下自己"

5.4 工具权限管理

Hermes Agent 内置 40+ 工具,按需开启 :

bash
# 开启常用工具
hermes tools enable file shell browser

# 查看已开启工具
hermes tools list

# 禁用不需要的工具
hermes tools disable docker ssh

6. 多智能体集群部署 ⭐

这是本教程的核心——在一台机器上运行多个独立的 Hermes 实例。

6.1 方案一:多 Profile(官方推荐)

自 v0.6.0 起,Hermes 原生支持 Profile 功能 。

创建多个 Profile

bash
# 创建三个 profile,分别用于不同角色
hermes profile create programmer --clone
hermes profile create researcher --clone
hermes profile create designer --clone

# 创建结果,以 'programmer' 为例
Profile 'programmer' created at /root/.hermes/profiles/programmer
Cloned config, .env, SOUL.md, and skills from default.
0 bundled skills synced.
Wrapper created: /root/.local/bin/programmer

Next steps:
  programmer setup              Configure API keys and model
  programmer chat               Start chatting
  programmer gateway start      Start the messaging gateway

  Edit ~/.hermes/profiles/programmer/.env for different API keys
  Edit ~/.hermes/profiles/programmer/SOUL.md for different personality

# 查看所有 profile
hermes profile list

为每个 Profile 配置独立模型

bash
# 为 programmer profile 配置
hermes -p programmer setup

# 为 researcher profile 配置(可使用不同模型)
hermes -p researcher setup

# 为 designer profile 配置
hermes -p designer setup

使用不同 Profile

bash
# 切换到指定 profile
hermes profile use programmer

# 或单次命令指定 profile
hermes -p programmer -m "帮我写一个 Python 脚本"
hermes -p researcher -m "帮我研究最新的 AI 论文"

Profile 目录结构

text
~/.hermes/
├── config.yaml              # 全局共享配置
├── .env                     # 全局共享密钥
└── profiles/
    ├── programmer/          # 程序员实例
    │   ├── memories/        # 独立记忆库
    │   ├── skills/          # 独立技能库
    │   └── .env             # 可选:实例级密钥
    ├── researcher/          # 研究员实例
    └── designer/            # 设计师实例

6.2 方案二:多 Home 目录(完全隔离)

适用于对隔离性要求极高的场景。

bash
# 创建独立的 home 目录
mkdir -p ~/.hermes-instance-{programmer,researcher,designer}

# 为每个实例初始化配置
export HERMES_HOME=~/.hermes-instance-programmer
hermes setup

export HERMES_HOME=~/.hermes-instance-researcher
hermes setup

export HERMES_HOME=~/.hermes-instance-designer
hermes setup

6.3 方案三:Docker 多容器(生产级隔离)

bash
# 启动多个容器实例
docker run -d \
  --name hermes-programmer \
  -v ~/.hermes-programmer:/root/.hermes \
  -p 8081:8080 \
  nousresearch/hermes-agent:latest

docker run -d \
  --name hermes-researcher \
  -v ~/.hermes-researcher:/root/.hermes \
  -p 8082:8080 \
  nousresearch/hermes-agent:latest

docker run -d \
  --name hermes-designer \
  -v ~/.hermes-designer:/root/.hermes \
  -p 8083:8080 \
  nousresearch/hermes-agent:latest

6.4 多实例管理建议

方案 隔离程度 资源占用 适用场景
多 Profile 中等 个人多角色使用
多 Home 目录 较高 中等 开发/生产分离
Docker 多容器 完全隔离 较高 多客户服务

7. 消息平台接入(Gateway 配置)

7.1 Gateway 是什么?

Gateway 是 Hermes 连接外部消息平台的“桥梁”,负责接收用户消息并返回 AI 回复 。

7.2 配置 Gateway

bash
# 为特定 profile 配置 gateway
hermes -p programmer gateway setup

配置向导会引导你:

  1. 选择平台(Telegram/飞书/企业微信/QQ/Discord)
  2. 输入 Bot Token 和凭证
  3. 设置访问权限

7.3 Telegram 配置示例

  1. 在 Telegram 搜索 @BotFather
  2. 发送 /newbot 创建机器人
  3. 获取 Token
  4. 运行配置命令并输入 Token

7.4 飞书配置示例

  1. 在飞书开放平台创建应用
  2. 获取 App ID 和 App Secret
  3. 配置回调地址
  4. 运行 hermes -p [profile] gateway setup 选择飞书

7.5 多实例 Gateway 隔离

每个实例的 Gateway 必须完全隔离

bash
# 启动不同实例的 gateway
hermes -p programmer gateway run   # 终端1
hermes -p researcher gateway run   # 终端2
hermes -p designer gateway run     # 终端3

⚠️ 关键原则:一个 Bot Token 只能用于一个 Gateway 实例,否则消息会串线!


8. Systemd 服务管理

8.1 创建模板服务

为了让多个 Gateway 实例开机自启且易于管理,使用 Systemd 模板:

bash
sudo nano /etc/systemd/system/hermes-gateway@.service

填入以下内容:

ini
[Unit]
Description=Hermes Gateway Instance %i
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=root
WorkingDirectory=/home/hermes
Environment="PATH=/root/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
ExecStart=/root/.local/bin/hermes -p %i gateway run
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=hermes-gateway-%i

# 可选资源限制
MemoryMax=2G
CPUQuota=200%

[Install]
WantedBy=multi-user.target

8.2 启动多实例服务

bash
# 重载 systemd 配置
sudo systemctl daemon-reload

# 启动所有实例
sudo systemctl enable --now hermes-gateway@programmer.service
sudo systemctl enable --now hermes-gateway@researcher.service
sudo systemctl enable --now hermes-gateway@designer.service

# 批量启动
sudo systemctl enable --now hermes-gateway@{programmer,researcher,designer}.service

8.3 管理命令

操作 命令
查看所有实例状态 sudo systemctl status 'hermes-gateway@*'
重启所有实例 sudo systemctl restart 'hermes-gateway@*'
停止所有实例 sudo systemctl stop 'hermes-gateway@*'
查看特定实例日志 journalctl -u hermes-gateway@programmer.service -f
查看所有实例日志 journalctl -u 'hermes-gateway@*' -f

9. Web 管理面板部署(可选)

9.1 为什么需要 Web 面板

官方 CLI 功能有限,第三方 Hermes-Web-UI 提供:

  • 可视化多 Agent 管理
  • 实时状态监控
  • 配置文件在线编辑
  • 中文界面支持

9.2 Docker Compose 部署

创建 docker-compose.yml

yaml
version: '3.8'
services:
  hermes-agent:
    image: nousresearch/hermes-agent:latest
    container_name: hermes-agent
    volumes:
      - ./config:/home/agent/.hermes
      - ./data:/opt/hermes
    environment:
      - HERMES_HOME=/home/agent/.hermes
    stdin_open: true
    tty: true
    restart: unless-stopped

  hermes-webui:
    image: lingganwu/hermes-web-ui
    container_name: hermes-webui
    ports:
      - "6060:6060"
    depends_on:
      - hermes-agent
    volumes:
      - ./config:/home/agent/.hermes
      - ./data/webui:/app/dist/data
    environment:
      - PORT=6060
      - UPSTREAM=http://hermes-agent:8642
      - HERMES_HOME=/home/agent/.hermes
    restart: unless-stopped

启动服务:

bash
mkdir -p hermes_deploy/{config,data,logs}
docker-compose up -d

9.3 访问 Web 面板

text
http://你的服务器IP:6060

首次启动查看日志获取初始密码:

bash
docker logs -f hermes-webui | grep -i auth

10. 高级进阶

10.1 自定义技能开发

Hermes 可以将有价值操作自动沉淀为技能,也可手动编写 :

python
# ~/.hermes/skills/custom_skill.md

# 技能名称:代码审查助手
## 触发条件
用户请求"review代码""帮我审查"

## 执行步骤
1. 读取目标代码文件
2. 分析代码质量问题
3. 输出改进建议列表

## 示例
用户:帮我审查 app.py
助手:正在审查代码...

10.2 记忆系统优化

config.yaml 中调整记忆参数 :

yaml
memory:
  short_term:
    capacity: 10      # 保留最近10轮对话
    decay_rate: 0.8
  long_term:
    user_profile_path: "./data/profile.json"
    skill_graph_path: "./data/skill_graph.db"

10.3 性能调优

yaml
# config.yaml
server:
  max_concurrent: 30      # 最大并发数
  request_timeout: 300    # 请求超时(秒)

# 启用缓存
CACHE_ENABLED=true

# 调整日志级别(生产环境)
LOG_LEVEL=info

10.4 多模型协同

yaml
# config.yaml
model_routing:
  coding: openrouter/claude-3.5-sonnet
  research: moonshot/kimi-latest
  chat: qwen/qwen-plus

11. 常见问题与排障

问题 1:安装失败/依赖下载慢

解决方案:确保已配置国内镜像源

bash
# 检查 Git 镜像配置
git config --global --get-regexp url

# 如果仍有问题,手动克隆
git clone https://mirror.ghproxy.com/https://github.com/NousResearch/hermes-agent.git
cd hermes-agent
bash scripts/install.sh

问题 2:hermes: command not found

解决方案

bash
# 刷新环境变量
source ~/.bashrc

# 或手动添加 PATH
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

问题 3:模型调用失败/API Key 无效

解决方案

bash
# 检查 .env 文件
cat ~/.hermes/.env

# 验证 API Key(以 Kimi 为例)
curl -X POST https://api.moonshot.cn/v1/chat/completions \
  -H "Authorization: Bearer $MOONSHOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"moonshot-v1-8k","messages":[{"role":"user","content":"hi"}]}'

问题 4:Gateway 无法接收消息

排查步骤

bash
# 1. 检查 Gateway 状态
hermes -p [profile] gateway status

# 2. 查看日志
journalctl -u hermes-gateway@[profile].service -f

# 3. 验证 Bot Token(以 Telegram 为例)
curl "https://api.telegram.org/bot<YOUR_TOKEN>/getMe"

问题 5:多个docker沙箱端口冲突

解决方案:每个使用不同端口

bash
# 创建或编辑 ~/.hermes/profiles/programmer/.env
echo 'TERMINAL_DOCKER_EXTRA_ARGS=["-p", "20980:8080", "-p", "20173:5173"]' >> ~/.hermes/profiles/programmer/.env

# 查看确认
cat ~/.hermes/profiles/programmer/.env

问题 6:内存不足导致服务崩溃

解决方案

bash
# 1. 配置 swap 交换分区
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 2. 在 systemd 服务中限制内存
# 见第 8 节配置文件中的 MemoryMax=2G

📚 参考资源


🎯 总结

本教程涵盖了从零开始在一台服务器上部署和管理多个 Hermes Agent 实例的完整流程:

阶段 核心内容
环境准备 Git、镜像加速、服务器配置
安装部署 一键脚本 / Docker 两种方式
模型配置 Kimi/通义千问/OpenRouter 接入
多实例部署 Profile 方案(官方推荐)⭐
平台接入 Telegram/飞书 Gateway 配置
服务管理 Systemd 模板实现开机自启
可视化 Web 管理面板部署
运维调优 技能开发、性能优化、故障排错

按照本教程,你将拥有一个生产级的多智能体集群,每个实例:

  • ✅ 独立的配置和密钥
  • ✅ 独立的记忆和技能库
  • ✅ 独立的消息通道
  • ✅ 自动重启和开机自启