hermes agent在aws部署有五种路径:ec2一键脚本、ecs fargate容器化、lambda事件驱动、ec2 userdata自动化、ssm远程调试,分别适配验证、生产、轻量、集群和安全运维场景。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您计划将 Hermes Agent 部署至 AWS 云环境,但尚未完成服务初始化或执行失败,则可能是由于执行环境未适配 AWS 实例类型、IAM 权限缺失或网络策略限制。以下是针对 AWS 平台的多种部署路径:
一、使用 EC2 实例 + 一键安装脚本部署
该方法适用于快速验证 Hermes Agent 在标准 Linux 环境下的运行能力,依赖官方维护的 install.sh 脚本自动配置运行时与依赖。
1、启动一台 Amazon Linux 2023 或 Ubuntu 22.04 LTS 的 EC2 实例,确保安全组开放 端口 8000(默认 API 端口)和 22(SSH)。
2、通过 SSH 连入实例,执行以下命令拉取并运行安装脚本:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
3、安装完成后,加载环境变量并启动服务:
source ~/.bashrc && hermes
4、确认服务已监听本地端口:运行 curl http://localhost:8000/health,返回 {"status":"healthy"} 即表示基础服务启动成功。
二、使用 AWS ECS(Fargate)容器化部署
该方式实现无服务器化运行,避免手动管理底层 OS,适用于需弹性扩缩与高可用保障的生产场景。
1、在本地构建 Hermes Agent Docker 镜像,基于官方 Dockerfile.fargate(位于 tools/environments/docker.py 同级目录)。
2、将镜像推送至 Amazon ECR 仓库,并记录完整 URI(如 123456789012.dkr.ecr.us-east-1.amazonaws.com/hermes-agent:latest)。
3、在 ECS 控制台创建 Fargate 任务定义,设置以下关键参数:
– 网络模式为 awsvpc;
– 容器端口映射为 8000:8000;
– 添加环境变量 OPENAI_API_KEY,值从 AWS Secrets Manager 引用。
4、创建 ECS 服务,选择 Application Load Balancer 并配置健康检查路径为 /health,目标组协议设为 HTTP。
三、使用 AWS Lambda + API Gateway 事件驱动部署
该方案适用于轻量级、低频调用场景,按实际执行时间计费,但需适配 Hermes Agent 的长期会话与记忆持久化需求。
1、将 Hermes Agent 主程序封装为 Lambda 处理函数,使用 /tmp 目录作为临时向量数据库存储路径(仅支持单次请求生命周期内的 memory.type: "ephemeral")。
2、修改 config.yaml 中 memory 配置为:
memory:
type: "ephemeral"
persistence: false
3、在 Lambda 控制台上传部署包(含 requirements.txt 所有依赖),设置超时时间为 15 分钟,内存为 3008 MB(满足 Ollama 模型推理最低要求)。
4、绑定 API Gateway(HTTP API 类型),启用 CORS,并将根路径 POST / 映射至 Lambda 函数。
四、使用 EC2 + UserData 自动化初始化部署
该方法用于批量部署多实例集群,所有配置由启动时 UserData 脚本完成,无需人工介入。
1、准备 UserData 脚本内容(base64 编码前):
#!/bin/bash
apt-get update && apt-get install -y curl git python3-pip
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
echo "OPENAI_API_KEY=sk-xxx" >> /home/ubuntu/.env
su - ubuntu -c "source ~/.bashrc && nohup hermes > /var/log/hermes.log 2>&1 &"
2、在启动 EC2 实例时,将上述脚本粘贴至 UserData 字段,并确保 IAM 角色具备 ec2:DescribeInstances 权限(用于内部服务发现)。
3、实例启动后约 3 分钟内,检查 /var/log/hermes.log 是否包含 "Server running on http://0.0.0.0:8000" 日志行。
五、使用 AWS Systems Manager Session Manager 远程调试部署
当服务无法访问且无公网 IP 时,可通过 SSM Agent 建立加密隧道进行诊断,规避开放 SSH 端口的安全风险。
1、为 EC2 实例附加 IAM 角色,策略中包含 ssm:StartSession 和 ssmmessages:CreateControlChannel 权限。
2、在 AWS 控制台打开 Systems Manager → Session Manager → Start session,选择目标实例。
3、连接后执行诊断命令:
systemctl status hermes.service
journalctl -u hermes.service -n 50 --no-pager
netstat -tuln | grep :8000
4、若发现进程未运行,手动以 systemd 方式启动:
sudo systemctl enable --now hermes.service











