送你一匹马————我来试试hermes agent

缘起

hermes刚火的时候,我并不在意,因为我觉得他不会对龙虾openclaw产生碾压性优势,与其朝三暮四,不如好好调教我的龙虾,让他学会更多的技能。

但是现在hermes越来越好,不应该再坐井观天了,应该试试,学习一下。

安装

对于学习和测试的环境,还是偏好于使用docker,好在hermes也天生官方支持docker安装的,看看项目源码:

GitHub仓库:github.com/NousResearch/hermes-agent

hermes架构

这里拉出来说明,是因为当你熟悉了龙虾之后,再遇到hermes,他有一些不一样的地方:

龙虾openclaw是一次安装具备了三样东西:

  1. gateway service

  2. web dashboard(指控制配置查看部分)

  3. webui(指直接web交互)

然而hermes并没有,hermes在官方推荐的docker部署方式中,可以选择单个实例同时运行gateway和dashboard,也可以分开2个实例分别运行,我选择了单个实例同时运行gateway和dashboard,另外hermes默认的dashboard并不具备webui的功能,只能选择其他的项目,这里是推荐的:

hermes-webui

docker部署

先上编排文件:

services:
  hermesagent:
    image: nousresearch/hermes-agent:latest
    container_name: hermesagent
    command: gateway run
    ports:
      - "127.0.0.1:8642:8642"
    volumes:
      - hermes-home:/home/hermes/.hermes
      - hermes-agent-src:/opt/hermes
    environment:
      - TZ=Asia/Shanghai      
      - HERMES_HOME=/home/hermes/.hermes
      - HERMES_UID=${UID:-10000}
      - HERMES_GID=${GID:-10000}
      - HERMES_DASHBOARD=1     #1
      - HERMES_HOST_LOCK=local      
    restart: unless-stopped


  hermeswebui:
    image: ghcr.io/nesquena/hermes-webui:latest  # 2
    container_name: hermeswebui
    depends_on:
      - hermesagent
    ports:
      - "127.0.0.1:8787:8787"
    volumes:
      - hermes-home:/home/hermeswebui/.hermes
      - hermes-agent-src:/home/hermeswebui/.hermes/hermes-agent
      - ./workspace:/workspace
    environment:
      - TZ=Asia/Shanghai      
      - HERMES_WEBUI_HOST=0.0.0.0
      - HERMES_WEBUI_PORT=8787
      - HERMES_WEBUI_STATE_DIR=/home/hermeswebui/.hermes/webui
      - WANTED_UID=${UID:-10000}
      - WANTED_GID=${GID:-10000}
      - HERMES_WEBUI_PASSWORD=CRoJ48aS7kPPI  # 3
    restart: unless-stopped


volumes:
  hermes-home:
  hermes-agent-src:

networks:
  default:
    external: true
    enable_ipv6: true
    name: netproxy

简单注释:

  1. 这个配置参数,是让单个实例同时启动dashboard,否则默认只有gateway

  2. 这个是webui

  3. 默认webui的密码

注意

这里有个特别注意的地方,就是hermes的dashboard 没有提供任何安全措施,也就是你无法给他加上鉴权,不能放于公网之上,只能通过网关加上简单的安全鉴权,例如我使用的是caddy,先上配置Caddyfile:

xxxx.bot.cd {
    header {
        Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
        X-Content-Type-Options "nosniff"
        X-Frame-Options "DENY"
        Referrer-Policy "strict-origin-when-cross-origin"
    }

    basicauth /* {
        yiqiu $2a$14$flsV0muvD0Lrdy5kS3cDdOK.kP6.CRoJ37aS9kPPIrTMI95qe7G4m
    }

        reverse_proxy hermesagent:9119

        log {
                output file /var/log/caddy/he_main_access.log {
                        roll_size 10MiB
                        roll_keep 100
                }
                format filter {
                        fields {
                                http>request>header>Referer rename referer
                                resp_headers delete
                        }
                        wrap json {
                                time_format "2006/01/02 15:04:05.000"
                        }
                }
                level info
        }
}

这里是使用了caddy的简单鉴权,caddy的密码生成:

caddy hash-password -p "your_password"

这不,昨天申请的域名就用上了,还没申请的抓紧:

为龙虾和马申请一个永久免费的二级域名

配置

hermes的dashiboard并不具备界面配置大模型的功能,只能在命令行配置:

#1、进入容器
docker exec -it hermesagent bash

#2、启动配置
uv run hermes setup

然后就会看到配置页面:

请添加图片描述

选择quick setup,然后选择免费的openrouter先试试.

请添加图片描述

如果你还是缺少token,建议先薅这俩羊毛:

来了!老黄NVIDIA免费为clawdbot续命

彻底解决openclaw的tokens焦虑

至此就可以打开hermes的dashboard了,还需要在界面修改一下当前使用的模型:

请添加图片描述

体验

想要在不使用任何接入的情况下(飞书、微信等等)使用,就得上webui了,好在前面的docker编排文件已经安排了,记得在caddy配置里面加上他的配置:

xxxx.bot.cd {
    reverse_proxy hermeswebui:8787

        log {
                output file /var/log/caddy/hermes_main_access.log {
                        roll_size 10MiB
                        roll_keep 100
                }
                format filter {
                        fields {
                                http>request>header>Referer rename referer
                                resp_headers delete
                        }
                        wrap json {
                                time_format "2006/01/02 15:04:05.000"
                        }
                }
                level info
        }
}

打开webui,打个招呼:

请添加图片描述

好了,至此,一个使用docker部署的完整hermes agent就部署完了!

小结

这只是完成了hermes的部署,怎么养好这匹马,有待后续!

欢迎关注:

送你一匹马——我来试试hermes agent

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐