以Ubuntu 22.04为例,从连接服务器开始,到Hermes Agent安装、模型配置、再到用上MiniMax M2.7,跑通一个能用的状态。
官方安装文档:https://hermes-agent.nousresearch.com/docs/getting-started/installation
01 · 准备工作:登录服务器确认环境
开始之前,确保几件事到位。
1.1 有一台装了Ubuntu 22.04的云服务器
这个不用多说,腾讯云、阿里云、AWS、Google Cloud哪家都行,选Ubuntu 22.04 LTS版本。内存最低2GB够用,4GB更宽裕。Hermes Agent本身不占多少资源,主要是跑模型调用的时候会吃内存,如果是2GB机器同时跑其他服务可能会有点紧张。
用这个命令确认系统版本:
lsb_release -a
看到Description: Ubuntu 22.04 LTS就没问题。如果显示的是20.04也可以用,流程基本一样,只是22.04更推荐。
1.2 用SSH连上服务器
云服务器装好之后需要从本地终端连上去。打开你电脑的终端(Windows可以用PowerShell或者WSL,macOS和Linux直接用自带终端),执行:
ssh root@你的服务器IP
第一次连接会提示确认指纹,输入yes回车,然后输入密码(输入时屏幕不显示字符是正常的,正常现象)。连接成功后,终端左上角会从你本地的用户名变成类似root@VM-xxx:~#这样的提示符,说明已经在服务器上了。
如果你用的是密钥登录而不是密码,云厂商控制台一般已经配好了,跳过密码这一步直接连上。
1.3 更新系统自带的软件源
新机器第一次用,先跑一下更新,确保系统中已安装的工具是新版本,也顺便把软件包列表刷新一下:
apt update && apt upgrade -y
这个过程会有一些输出,正常情况是滚动一堆包名,最后回到命令行提示符。-y参数是自动确认所有提示,不用一直按回车。
1.4 确认git已经安装
后面的安装脚本需要调用git,检查一下有没有:
git --version
如果提示command not found,安装一个:
apt install -y git
装完再执行git --version,看到类似git version 2.34.1这样的版本号就说明好了。
02 · 一键安装Hermes Agent
Hermes Agent的官方提供了一套安装脚本,把所有依赖的检测和安装都封装进去了。脚本会自动处理Python 3.11、Node.js v22、ripgrep、ffmpeg这些组件,不需要你手动去配环境。
2.1 执行官方安装脚本
在服务器终端里整行复制执行:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
说明一下这行命令:curl把安装脚本从GitHub拉下来,-fsSL是curl的参数,表示失败不输出错误、用follow重定向、silent模式,| bash把脚本内容直接传给bash执行。这个组合是官方文档里推荐的方式。
脚本跑起来之后,中间会显示各种依赖被安装的输出,大概一两分钟,不要主动中断。中间可能出现一些WARNING,可以忽略,只要最后没有出现红色的ERROR就行。
2.2 让hermes命令在当前终端生效
脚本安装完成后会提示让你执行source ~/.bashrc,这是因为安装脚本把Hermes的可执行文件路径写入了.bashrc,但当前这个终端会话还没有重新加载这个文件。在当前终端执行:
source ~/.bashrc
如果不确定有没有写进去,可以查一下.bashrc最后几行:
tail -5 ~/.bashrc
正常应该看到类似这样的内容:
export PATH="$HOME/.local/bin:$PATH"
如果没有,手动加上:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc
2.3 确认安装成功
安装完之后,用这个命令确认一切正常:
hermes version
看到版本号就说明命令已经生效了。
再跑一次诊断:
hermes doctor
这个命令会逐项检查各个组件——Python环境、Node.js、模型provider配置等。每一项会显示✓或者✗。全部✓就说明装好了,如果有✗,一般会在下方给出具体的修复建议。
2.4 如果端口被占用
有的机器可能已经有其他服务占用了3000端口(Hermes Agent默认用3000),启动时会报端口冲突。如果遇到这个情况,可以在启动时指定别的端口:
hermes --port 8080
或者修改配置文件指定端口,后面讲配置文件的时候会提到。
03 · 理解Hermes Agent的配置体系
装好之后,需要理解它的配置文件在哪里、怎么组织的,然后再配置模型。这一步搞清楚,后面配置任何provider都不再是问题。
3.1 配置文件在哪里
整个Hermes Agent的配置在~/.hermes/这个目录下。用这个命令看一下里面的结构:
ls -la ~/.hermes/
你会看到config.yaml这个文件,这是主配置文件。另外还有一个.env文件用来存放API密钥。分开的好处是:config.yaml可以提交到代码仓库共享,.env不在版本控制里,不会不小心把密钥泄露出去。
3.2 config.yaml的结构
打开~/.hermes/config.yaml看一下内容:
cat ~/.hermes/config.yaml
初始状态可能是一个空文件或者只有示例内容。不管它,我们直接写进正确的内容。文件格式是YAML,如果你不熟悉YAML,记住三点:缩进用空格(不是Tab)、键值对用冒号、列表用短横线。
config.yaml里和模型相关的部分是providers,每个provider有自己的名称、API Key和使用的模型名称。比如配MiniMax就是这样:
providers:
minimax:
api_key: "eyJh..."
model:
provider: minimax
name: MiniMax-M2.7
model部分指定了默认使用哪个provider和哪个模型。后面如果接入了多个provider,可以在这里切换默认选择。
3.3 .env文件的用法
API Key建议不写在config.yaml里,而是写到.env文件中,然后在config.yaml里用环境变量引用。这样更安全,密钥不会明文出现在配置文件里。
在.env文件里加一行:
echo 'MINIMAX_API_KEY="你的API密钥"' >> ~/.hermes/.env
然后config.yaml里这样写:
providers:
minimax:
api_key: ${MINIMAX_API_KEY}
model: MiniMax-M2.7
这样config.yaml本身不包含任何密钥内容,可以安全地共享。
04 · 配置MiniMax作为默认模型
Hermes Agent装好之后默认没有配置任何模型,需要自己接入一个provider才真正能用。MiniMax的M2.7是这个价位里性价比很突出的选择,上下文20万token,响应速度快,支持多模态(图片、语音、视频),用来跑自动化任务很合适。
4.1 MiniMax Token Plan是什么
MiniMax的Token Plan是订阅制的,按请求量阶梯计费,分了几个档位:
| 档位 | 月费 | M2.7每5小时请求量 | 图片生成 | 语音转文字 |
|---|---|---|---|---|
| Starter | $10/月 | 1,500次 | — | — |
| Plus | $20/月 | 4,500次 | 50张/天 | 4,000字/天 |
| Max | $50/月 | 15,000次 | 120张/天 | 11,000字/天 |
Plus档每个月$20,折合一天大约几毛钱的量,拿来跑定时任务、做内容整理、自动化脚本完全够了。还有年付折扣,将近半价。高速档位(Highspeed)更贵,响应更快,适合高频调用场景。
如果你还没注册,用这个邀请链接注册,双方都有优惠:
👉 MiniMax Token Plan - 邀请链接: https://platform.minimaxi.com/subscribe/token-plan?code=KXANjaKZ00&source=link
订阅完成后会自动获得API访问权限。
4.2 创建一个MiniMax API Key
有账户之后,在控制台创建一个API Key,这个Key就是Hermes Agent连接MiniMax的凭证:
打开 https://platform.minimaxi.com 登录后进入「账户设置」→「API Keys」 点「创建Key」,给Key起个名字方便识别(比如 hermes-server)点创建后会显示Key内容,只显示这一次,关掉页面就找不回来了
把Key完整复制下来,存到服务器上。直接写到.env里:
echo 'MINIMAX_API_KEY="你复制的Key内容"' >> ~/.hermes/.env
4.3 写入config.yaml
现在把config.yaml写好。用nano打开:
nano ~/.hermes/config.yaml
如果文件是空的,直接写入以下内容;如果有内容,追加或者替换providers和model部分:
providers:
minimax:
api_key: ${MINIMAX_API_KEY}
model: MiniMax-M2.7
model:
provider: minimax
name: MiniMax-M2.7
保存并退出:按Ctrl+X,屏幕最下方会问Save modifier buffer?,按Y确认,再按回车。
4.4 也可以用交互式命令配置
如果你不想手动改文件,也可以用hermes自带的交互式命令:
hermes model
终端会一步步提示你选择provider、输入API Key、选择具体模型,用方向键导航,回车确认,比手动改文件不容易出错。
05 · 验证能不能跑起来
配置完之后测试一下,确保整个链路是通的。
5.1 简单对话测试
在服务器终端执行:
hermes chat -q "你好,介绍一下你自己"
-q参数是直接跟一个查询字符串,不需要进入交互模式。如果正常,会收到MiniMax M2.7的回复,内容大概是介绍自己是MiniMax的AI助手什么的。这说明三件事:Hermes Agent能启动、模型能连通、返回内容正常。
如果报Connection error或者401 Unauthorized,先检查API Key是否复制正确、账户订阅是否生效(登录控制台看一下账户状态),然后检查.env文件里的Key内容和config.yaml里的引用是否对应。
5.2 查看当前配置状态
hermes status
这个命令会打印当前配置、已加载的技能列表、最近对话等。用来快速确认状态,排查问题的时候很有用。
5.3 退出与重启
在交互模式下,输入exit或者按Ctrl+C退出。如果修改了配置文件,不需要重启服务,下次对话自动加载新配置。
06 · 让它在后台持续运行
如果只是用hermes chat在前台跑,关掉终端连接就断了。对于需要持续待机的场景(比如定时任务、微信接入),需要让Hermes Agent在后台运行。
6.1 用nohup在后台跑
最简单的方案:
nohup hermes serve > ~/hermes.log 2>&1 &
echo $!
这行命令让Hermes Agent以后台服务的方式运行,日志输出到~/hermes.log。echo $!会输出进程ID,如果需要停止这个进程,用这个ID:
kill 刚才的进程ID
查看是否在跑:
ps aux | grep hermes
6.2 用systemd管理(适合长期运行)
如果希望服务器重启后自动启动,可以用systemd创建一个服务。先创建一个service文件:
nano /etc/systemd/system/hermes.service
写入以下内容:
[Unit]
Description=Hermes Agent
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/root
ExecStart=/root/.local/bin/hermes serve
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
然后启用并启动:
systemctl daemon-reload
systemctl enable hermes
systemctl start hermes
查看状态:
systemctl status hermes
看到active (running)就说明在跑了。服务器重启之后会自动启动,不需要人工干预。
07 · 常见的几个坑
这一节是踩坑记录,如果安装或者配置过程中不顺利,对照着找原因。
坑一:安装脚本跑一半断了
多半是网络问题,GitHub在大陆访问偶尔不稳定。可以多试几次,也可以在脚本前加代理:
export https_proxy=http://你的代理地址:端口
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
坑二:执行hermes提示command not found
安装完成后需要让shell重新加载环境变量。如果.bashrc里没有正确写入PATH,手动加:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc
然后再试hermes version。
坑三:配置好了但调用报401
这个报错表示API Key认证失败。最常见的原因是:Key复制不完整、账户欠费、或者Key对应的账户没有订阅Token Plan。登录MiniMax控制台确认账户状态,再核对Key是否完整。
坑四:端口被占用
hermes serve --port 8080
这样指定其他端口启动。或者查看是谁占用了3000端口:
lsof -i :3000
坑五:内存不够用(2GB机器常见)
用free -h看一下:
free -h
如果available长期低于200MB,把其他占用内存的服务停掉,或者升级到4GB。2GB跑Hermes Agent本身够用,但如果同时还跑着数据库之类的就紧张了。
08 · 到这里能做什么
跑通之后,Hermes Agent就可以作为一个24小时待机的智能中枢了。几个典型的用法:
定时任务:配合cron,可以每天早上自动搜集行业资讯、生成工作日志摘要、整理昨天未完成的事项推送到微信。
即时查询:任何时候SSH连上服务器,直接问它一个问题,它会结合上下文给出回答,不会像本地窗口一样占着屏幕。
技能扩展:Hermes Agent支持skill机制,可以安装现成的技能包来实现各种自动化工作流,不需要自己写代码。
整个安装过程,核心就三步:一行脚本装好、写入MiniMax API Key、验证能跑通。没有想象的那么复杂。
如果安装过程中遇到不在上面的问题,说一下具体情况,我们可以一起排查。
夜雨聆风