Hermes Agent: 部署模式
最后更新:2026-08-31
部署模式决定了 Hermes Agent 在哪里运行——本地笔记本、Docker 容器、云服务器、还是集群。选对模式,稳定又省钱。
💡 提示:Hermes 支持四种部署模式:本地单机、Docker 容器、云服务器、集群模式。个人用户推荐本地模式,团队推荐 Docker 或云服务器。
📋 前置知识:第2课 安装、第3课 配置文件
1. 你将学到
| 编号 | 内容 |
|---|---|
| ❶ | 四种部署模式对比 |
| ❷ | 本地模式配置 |
| ❸ | Docker 部署 |
| ❹ | 云服务器部署 |
| ❺ | 集群模式与扩展 |
2. 故事
(1) 痛点:部署方式选错
Bob 在本地跑了 Hermes,但电脑关机 Agent 就离线。团队需要 24/7 在线的 Agent。
(2) 解法:按场景选部署
BASH
# Alice 的选择:
# 开发调试 → 本地模式(省钱方便)
# 团队使用 → Docker 部署在服务器(24/7在线)
# 高并发场景 → 集群模式(水平扩展)
3. 四种部署模式对比
| 维度 | 本地模式 | Docker | 云服务器 | 集群模式 |
|---|---|---|---|---|
| 适用 | 个人开发 | 团队/小企业 | 中型企业 | 大规模 |
| 在线时间 | 开机时 | 24/7 | 24/7 | 24/7 |
| 扩展性 | ❌ | ✅ 垂直 | ✅ 垂直 | ✅ 水平 |
| 数据安全 | ✅ 本地 | ✅ 本地 | ⚠️ 云端 | ⚠️ 分布式 |
| 成本 | 免费 | 服务器费 | 云费用 | 高 |
| 运维难度 | ⭐ | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
4. 本地模式
(1) 标准本地安装
BASH
# 安装
pip install hermes-agent[all]
# 启动
hermes serve --host 0.0.0.0 --port 8080
# 后台运行(Linux/macOS)
nohup hermes serve &
# 使用 systemd(Linux)
cat > /etc/systemd/system/hermes.service << EOF
[Unit]
Description=Hermes Agent
After=network.target
[Service]
Type=simple
User=alice
WorkingDirectory=/home/alice
ExecStart=/usr/local/bin/hermes serve
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
systemctl enable hermes
systemctl start hermes
(2) 本地模式配置
YAML
# ~/.hermes/config.yaml
deployment:
mode: "local"
host: "0.0.0.0"
port: 8080
# 本地模型支持(离线运行)
local_model:
enabled: true
provider: "ollama"
fallback_to_cloud: true
5. Docker 部署
(1) 单容器部署
BASH
# 拉取镜像
docker pull nousresearch/hermes-agent:latest
# 运行
docker run -d \
--name hermes \
-p 8080:8080 \
-v ~/.hermes:/root/.hermes \
-e OPENAI_API_KEY="${OPENAI_API_KEY}" \
--restart unless-stopped \
nousresearch/hermes-agent:latest
(2) Docker Compose(推荐)
YAML
# docker-compose.yml
version: "3.8"
services:
hermes:
image: nousresearch/hermes-agent:latest
container_name: hermes-agent
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./data:/root/.hermes
- ./projects:/root/projects
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- HERMES_MODEL_DEFAULT=gpt-4o
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
# Ollama 本地模型
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: unless-stopped
ports:
- "11434:11434"
volumes:
- ./ollama-data:/root/.ollama
deploy:
resources:
reservations:
devices:
- capabilities: ["gpu"]
# Web UI
web-ui:
image: nousresearch/hermes-web:latest
container_name: hermes-web
restart: unless-stopped
ports:
- "3000:3000"
environment:
- HERMES_API_URL=http://hermes:8080
6. 云服务器部署
(1) AWS 部署
BASH
# 使用 AWS EC2
# 1. 启动 EC2 实例(推荐 t3.medium)
# 2. 安装 Docker
# 3. 运行 Hermes
ssh ec2-user@your-instance
# 安装 Docker
sudo yum install -y docker
sudo systemctl start docker
# 运行 Hermes
docker run -d \
-p 8080:8080 \
-v /data/hermes:/root/.hermes \
-e OPENAI_API_KEY="sk-..." \
--restart unless-stopped \
nousresearch/hermes-agent:latest
(2) 安全配置
YAML
# 云部署安全加固
security:
# API 认证
api:
auth_enabled: true
auth_type: "jwt" # jwt / api_key / oauth
jwt_secret: "${JWT_SECRET}"
rate_limit: 100 # RPM
# TLS
tls:
enabled: true
cert: "/etc/ssl/hermes.crt"
key: "/etc/ssl/hermes.key"
# 网络隔离
network:
allowed_origins:
- "https://your-domain.com"
blocked_ips: []
7. 集群模式
(1) 架构图
graph TB
LB[负载均衡器] --> W1[Worker 1]
LB --> W2[Worker 2]
LB --> W3[Worker 3]
W1 --> Redis[(Redis<br/>共享记忆)]
W2 --> Redis
W3 --> Redis
W1 --> DB[(PostgreSQL<br/>持久存储)]
W2 --> DB
W3 --> DB
W1 --> MQ[RabbitMQ<br/>任务队列]
W2 --> MQ
W3 --> MQ
(2) 集群配置
YAML
# docker-compose.cluster.yml
version: "3.8"
services:
hermes-master:
image: nousresearch/hermes-agent:latest
environment:
- HERMES_ROLE=master
- HERMES_WORKERS=3
- REDIS_URL=redis://redis:6379
- DATABASE_URL=postgresql://hermes:pass@postgres:5432/hermes
depends_on:
- redis
- postgres
hermes-worker:
image: nousresearch/hermes-agent:latest
environment:
- HERMES_ROLE=worker
- REDIS_URL=redis://redis:6379
deploy:
replicas: 3
depends_on:
- redis
redis:
image: redis:7-alpine
volumes:
- redis-data:/data
postgres:
image: postgres:16-alpine
environment:
- POSTGRES_DB=hermes
- POSTGRES_USER=hermes
- POSTGRES_PASSWORD=pass
volumes:
- pg-data:/var/lib/postgresql/data
❓ 常见问题
Q 个人用户选哪种模式?
A 本地模式。简单、免费、隐私最好。需要 24/7 在线时再考虑 Docker。
Q Docker 和直接安装哪个好?
A Docker 隔离性好、易于迁移和升级。直接安装更轻量、延迟更低。按需选择。
Q 云部署数据安全吗?
A API Key 加密存储、TLS 传输加密、可选加密磁盘。但数据毕竟在云端,合规要求高的场景建议本地部署。
Q 集群模式什么时候需要?
A 并发用户 >50、每分钟请求 >100、需要高可用时。小团队不需要。
Q 如何监控部署状态?
A
hermes status 查看运行状态,/health API 健康检查,Docker 用 docker ps。Q 如何平滑升级?
A Docker 方式最简单——拉新镜像重启。本地安装用
pip install --upgrade。集群模式滚动升级。📖 小节
- 四种模式:本地(个人)→ Docker(团队)→ 云服务器(企业)→ 集群(大规模)
- 本地模式零成本、最隐私,适合开发和测试
- Docker Compose 一键部署,含 Ollama 和 Web UI
- 云服务器需要安全加固:认证、TLS、网络隔离
- 集群模式用 Redis + PostgreSQL 实现共享记忆和高可用
📝 作业
- 基础题(难度⭐):在本地模式启动 Hermes,连接 Telegram 平台,验证 24 小时稳定运行。
- 进阶题(难度⭐⭐):使用 Docker Compose 部署 Hermes + Ollama,实现本地离线推理。
- 挑战题(难度⭐⭐⭐):在云服务器上部署 Hermes,配置 TLS 和 JWT 认证,实现安全的远程访问。