部署hermesagent的全过程,踩N遍坑终于成功
最近发现了一个挺好用的AI agent——hermesagent,是Nous Research做的自改进型AI,能自己学技能、记对话,还能跨平台用,Telegram、Discord都能连,用起来很方便。
我部署的时候踩了好几个坑,查了不少资料才搞定,今天把自己的部署过程记下来,算是个记录,也给有需要的人做个参考。
我选的是docker部署,这种方式不用纠结各种环境依赖,跟着敲命令就行,全程复制粘贴,相对省心一些。
第一步:拉取源码
首先得把hermesagent的源码从github上拉下来,我用的是Linux终端,Windows的话得用WSL2,原生Windows不支持。直接复制下面这行命令,粘贴到终端回车就好:
git clone https://github.com/NousResearch/hermes-agent.git
等了一会儿源码就拉取完成了,之后进入源码目录,命令是cd hermes-agent,后面所有操作都在这个目录里进行。
第二步:配置.env文件
源码拉下来后,里面有个.env.example文件,是配置模板,我需要复制一份,创建一个真正能用的.env文件,用来配置AI模型的参数。
操作很简单,还是在hermes-agent目录下,敲命令复制模板创建.env文件,然后编辑它,重点配置LLM PROVIDER这个参数,就是我要用的AI模型提供商,比如OpenAI、Kimi、Hugging Face都可以,按自己的需求填就行。
我刚开始犯了个错,直接用了.env.example,结果配置不生效,白忙活了半天,后来才知道必须复制一份改成.env才行。
第三步:构建docker镜像(踩坑最多的一步)
这一步是核心,也是我踩坑最多的地方,折腾了快一个小时才搞定,把遇到的问题和解决方法都记下来。
构建镜像的命令分两种,首次构建和重新构建不一样,我第一次部署用的是首次构建的命令:
首次构建,复制这行:
docker build -t hermesagent:latest .
后来因为改了配置,需要重新构建,就用了这个清除缓存的命令,避免干扰:
docker build --no-cache -t hermesagent:latest .
构建成功后,终端会提示一下信息
# 出现以下提示,则代表构建成功
exporting to image
successfully built
successfully tagged hermesagent:latest
我遇到的3个坑,以及解决方法
这三个坑浪费了我不少时间,记录下来,避免再踩,也给大家提个醒。
1. apt-get报错(安装依赖失败)
我当时终端提示apt-get update和apt-get install失败,查了一下才知道是国外镜像源的问题,国内访问太慢,后来把Dockerfile里的镜像源换成了阿里云的,就解决了,复制下面这段代码,替换掉原来的apt-get相关命令就行:
# 替换为阿里云镜像源(解决 apt 失败问题) # 切换为 Debian 国内源(阿里云) RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources && \ sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources && \ # 更新并安装依赖 apt-get update && \ apt-get install -y --no-install-recommends \ build-essential \ nodejs \ npm \ python3 \ ripgrep \ ffmpeg \ gcc \ python3-dev \ libffi-dev \ procps \ git && \ rm -rf /var/lib/apt/lists/*
2. Playwright安装报错
构建的时候,卡在Playwright安装那里报错,我当时没多想,先跳过了,反正前期用不上,等镜像构建成功后,再单独安装的。
先进入容器:
docker run -it --entrypoint sh hermesagent:latest
进入容器后,执行下面这行命令,用南京大学的镜像源安装,速度快还不报错,虽然南京大学的playwright镜像网页目前解析失败,但这个命令我亲测有效:
PLAYWRIGHT_DOWNLOAD_HOST=https://mirror.nju.edu.cn/playwright npx playwright install
3. 提示failed to build(构建失败)
我还遇到过一次构建失败的情况,查了之后发现是npm依赖安装出了问题,找到Dockerfile里“安装npm依赖”的那一行,把原来的命令改成下面这个,再重新构建就好了:
# 原来的(错误) RUN npm install --prefer-offline --no-audit --no-warn deprecated # 改成这个(修复) RUN npm install --prefer-offline --no-audit --no-warn deprecated typescript
第四步:启动容器和服务(终于大功告成)
镜像构建成功后,就可以启动容器,运行hermesagent服务了,我试了两种方式,大家可以根据自己的需求选。
方式一:分步启动(我刚开始用的这种)
1. 启动容器,映射8000端口,这样外部能访问网页面板,命令:
docker run -it --name hermes-gateway -p 8000:8000 -v ./data:/opt/data --entrypoint bash hermesagent:latest
2. 激活虚拟环境,命令:
. .venv/bin/activate
3. 启动网页面板,这里要注意,一定要加--host 0.0.0.0,不然外部访问不了,命令:
hermes dashboard --insecure --host 0.0.0.0 --port 8000
启动成功后,打开浏览器,输入http://我的服务器IP:8000,就能看到hermesagent的网页面板了,那一刻感觉终于搞定了。
方式二:同一容器后台运行(现在一直在用)
后来觉得每次启动太麻烦,就用了后台运行的方式,能一直运行,还能同时启动网关和面板:
docker run -d --name hermes-all -p 9119:9119 -p 8642:8642 -v ./data:/opt/data --entrypoint bash hermesagent:latest -c "cd /opt/hermes && source .venv/bin/activate && (hermes gateway run &) && sleep 2 && hermes dashboard --insecure --host 0.0.0.0 --port 9119"
后台运行用的是-d参数,想停止的话,用docker stop hermes-all就可以了。
总结一下
整个部署过程其实不算难,核心就是4步:拉源码→配.env→构建镜像→启动服务,主要是构建镜像的时候踩了几个坑,解决了之后就很顺利了。
部署完成后,用起来确实不错,能切换各种AI模型,还能通过Telegram、Discord远程控制,自改进、记对话的功能也很实用。
如果有人也在部署这个,遇到什么问题,也可以交流一下,毕竟踩过的坑,能帮别人少走点弯路也好。
部分内容来源网络,如有侵犯到您的权益请联系leeke98@foxmail.com进行下架处理

浙公网安备 33010602011771号