Hermes Agent 多智能体集群部署完全指南
从零开始,在一台服务器上部署并管理多个AI智能体实例,让它们各司其职、互不干扰
📖 目录
- Hermes Agent 简介
- 为什么需要多智能体集群
- 环境准备
- 安装 Hermes Agent
- 核心配置与模型接入
- 多智能体集群部署
- 消息平台接入(Gateway配置)
- Systemd 服务管理
- Web管理面板部署(可选)
- 高级进阶
- 常见问题与排障
1. Hermes Agent 简介
Hermes Agent 是由 Nous Research 开源的自主 AI 智能体框架,其核心理念是 “与你共同成长的 Agent” 。
🎯 核心能力
| 能力 | 说明 |
|---|---|
| 自我进化 | 从交互中自动生成可复用的技能(Skill),越用越聪明 |
| 持久记忆 | 四层记忆体系,跨会话记住用户偏好和项目上下文 |
| 多平台覆盖 | 支持 CLI、Telegram、飞书、微信等 15+ 消息平台 |
| 灵活部署 | 最低 1 核 2G VPS 即可运行,支持 Docker、SSH 等后端 |
✨ 八大亮点
- 智能授权 — 自动识别高危指令,说明意图后再请求授权
- 会话感知 — 可感知历史对话,生成个性化的
SOUL.md - 多模型路由 — 为不同任务分配独立模型,省钱又高效
- 配置解耦 — 密钥与配置分离,YAML 格式友好
- 工具透明 — 终端清晰打印每次工具调用过程
- 多 Profile — 一句话完成多实例配置,沙箱与主力轻松分离 ⭐
- 自动技能沉淀 — 将操作总结为可复用技能
- 消息不丢失 — 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 :
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
sudo apt install git -y
# 验证安装
git --version3.3 国内网络加速(重要)
国内环境需要配置镜像加速 :
# 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/ --global3.4 阿里云服务器特殊配置(如适用)
如果你使用阿里云服务器,需要 :
- 安全组放行端口:默认需要放行 3000(API)、8642(Agent通信)、6060(WebUI)
- 防火墙配置:
sudo ufw allow 3000/tcp
sudo ufw allow 6060/tcp
sudo ufw reload4. 安装 Hermes Agent
4.1 方式一:一键脚本安装(新手首选)⭐
# 国内环境推荐(镜像加速)
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 部署(生产环境首选)
# 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-agent4.3 验证安装
# 刷新环境变量
source ~/.bashrc # bash 用户
source ~/.zshrc # zsh 用户
# 验证版本
hermes --version
# 预期输出:hermes v0.14.0
# 健康检查
hermes doctor
# 所有核心项显示 green 即为正常5. 核心配置与模型接入
5.1 运行配置向导
hermes setup向导会引导你:
- 选择模型提供商
- 配置 API Key
- 设置默认模型
- 配置工具权限
5.2 模型配置
方案 A:Kimi(国内用户首选)⭐
Kimi 是国内用户的最佳选择:国内直连、200万超长上下文、中文理解准确率行业领先 。
# 编辑环境变量文件
vim ~/.hermes/.env
# 添加 Kimi API Key
MOONSHOT_API_KEY=sk-your-kimi-api-key-here获取 API Key:访问 Moonshot 控制台 创建 。
# 编辑主配置文件
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:阿里云百炼(通义千问)
# .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(多模型切换)
# .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 验证模型配置
# 列出可用模型
hermes model list
# 测试对话
hermes -m "你好,请介绍一下自己"5.4 工具权限管理
Hermes Agent 内置 40+ 工具,按需开启 :
# 开启常用工具
hermes tools enable file shell browser
# 查看已开启工具
hermes tools list
# 禁用不需要的工具
hermes tools disable docker ssh6. 多智能体集群部署 ⭐
这是本教程的核心——在一台机器上运行多个独立的 Hermes 实例。
6.1 方案一:多 Profile(官方推荐)
自 v0.6.0 起,Hermes 原生支持 Profile 功能 。
创建多个 Profile
# 创建三个 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 配置独立模型
# 为 programmer profile 配置
hermes -p programmer setup
# 为 researcher profile 配置(可使用不同模型)
hermes -p researcher setup
# 为 designer profile 配置
hermes -p designer setup使用不同 Profile
# 切换到指定 profile
hermes profile use programmer
# 或单次命令指定 profile
hermes -p programmer -m "帮我写一个 Python 脚本"
hermes -p researcher -m "帮我研究最新的 AI 论文"Profile 目录结构
~/.hermes/
├── config.yaml # 全局共享配置
├── .env # 全局共享密钥
└── profiles/
├── programmer/ # 程序员实例
│ ├── memories/ # 独立记忆库
│ ├── skills/ # 独立技能库
│ └── .env # 可选:实例级密钥
├── researcher/ # 研究员实例
└── designer/ # 设计师实例6.2 方案二:多 Home 目录(完全隔离)
适用于对隔离性要求极高的场景。
# 创建独立的 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 setup6.3 方案三:Docker 多容器(生产级隔离)
# 启动多个容器实例
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:latest6.4 多实例管理建议
| 方案 | 隔离程度 | 资源占用 | 适用场景 |
|---|---|---|---|
| 多 Profile | 中等 | 低 | 个人多角色使用 |
| 多 Home 目录 | 较高 | 中等 | 开发/生产分离 |
| Docker 多容器 | 完全隔离 | 较高 | 多客户服务 |
7. 消息平台接入(Gateway 配置)
7.1 Gateway 是什么?
Gateway 是 Hermes 连接外部消息平台的“桥梁”,负责接收用户消息并返回 AI 回复 。
7.2 配置 Gateway
# 为特定 profile 配置 gateway
hermes -p programmer gateway setup配置向导会引导你:
- 选择平台(Telegram/飞书/企业微信/QQ/Discord)
- 输入 Bot Token 和凭证
- 设置访问权限
7.3 Telegram 配置示例
- 在 Telegram 搜索
@BotFather - 发送
/newbot创建机器人 - 获取 Token
- 运行配置命令并输入 Token
7.4 飞书配置示例
- 在飞书开放平台创建应用
- 获取 App ID 和 App Secret
- 配置回调地址
- 运行
hermes -p [profile] gateway setup选择飞书
7.5 多实例 Gateway 隔离
每个实例的 Gateway 必须完全隔离:
# 启动不同实例的 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 模板:
sudo nano /etc/systemd/system/hermes-gateway@.service填入以下内容:
[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.target8.2 启动多实例服务
# 重载 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}.service8.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:
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启动服务:
mkdir -p hermes_deploy/{config,data,logs}
docker-compose up -d9.3 访问 Web 面板
http://你的服务器IP:6060首次启动查看日志获取初始密码:
docker logs -f hermes-webui | grep -i auth10. 高级进阶
10.1 自定义技能开发
Hermes 可以将有价值操作自动沉淀为技能,也可手动编写 :
# ~/.hermes/skills/custom_skill.md
# 技能名称:代码审查助手
## 触发条件
用户请求"review代码"或"帮我审查"
## 执行步骤
1. 读取目标代码文件
2. 分析代码质量问题
3. 输出改进建议列表
## 示例
用户:帮我审查 app.py
助手:正在审查代码...10.2 记忆系统优化
在 config.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 性能调优
# config.yaml
server:
max_concurrent: 30 # 最大并发数
request_timeout: 300 # 请求超时(秒)
# 启用缓存
CACHE_ENABLED=true
# 调整日志级别(生产环境)
LOG_LEVEL=info10.4 多模型协同
# config.yaml
model_routing:
coding: openrouter/claude-3.5-sonnet
research: moonshot/kimi-latest
chat: qwen/qwen-plus11. 常见问题与排障
问题 1:安装失败/依赖下载慢
解决方案:确保已配置国内镜像源
# 检查 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
解决方案:
# 刷新环境变量
source ~/.bashrc
# 或手动添加 PATH
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc问题 3:模型调用失败/API Key 无效
解决方案 :
# 检查 .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 无法接收消息
排查步骤 :
# 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沙箱端口冲突
解决方案:每个使用不同端口
# 创建或编辑 ~/.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:内存不足导致服务崩溃
解决方案 :
# 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 管理面板部署 |
| 运维调优 | 技能开发、性能优化、故障排错 |
按照本教程,你将拥有一个生产级的多智能体集群,每个实例:
- ✅ 独立的配置和密钥
- ✅ 独立的记忆和技能库
- ✅ 独立的消息通道
- ✅ 自动重启和开机自启