Hermes Agent Docker 部署踩坑实录:从「能跑」到「为什么我最终放弃容器化」

最近折腾了一段时间 Hermes Agent。 最开始我的想法非常简单: «Hermes 不就是一个 AI Agent 吗?Docker 隔离一下环境,岂不是既干净又方便升级?» 于是我选择了 Docker 部署。 结果一路从"这东西跑起来真简单",折腾到了"我已经把 Docker 部署所有坑都踩完了"。 最后得出的结论反而是: Hermes 可以很好地运行在 Docker 里,但如果你的目标是让它长期作为一台机器上的自动化 Agent 使用,原生部署反而更加合理。 这篇文章记录一下整个过程。 一、为什么一开始选择 Docker 我平时本身就大量使用 Docker。 数据库、Home Assistant、各种 Web 服务基本都是容器化部署,因此看到 Hermes 官方提供 Docker 镜像之后,第一反应就是: services: hermes: image: nousresearch/hermes-agent:latest container_name: hermes restart: unless-stopped command: gateway run ports: - "9119:9119" # Dashboard(默认 127.0.0.1,按需暴露) volumes: - ./data:/opt/data environment: HERMES_DASHBOARD: "1" 然后: ...

2026-08-07 · 4 分钟

Hermes Dashboard 修改密码:配置热更新技巧

修改 Hermes Dashboard 的登录密码,不需要重启整个容器——改配置 + kill 进程即可,QQ 会话不断线。 背景 Hermes Agent 的 Dashboard(Web 管理界面)默认带 basic auth 登录。Dashboard 页面本身没有"改密码"功能,需要改配置文件。但很多人以为要重启容器才能生效——其实有更轻的方式。 方法 1. 改配置文件 编辑 Hermes 配置(config.yaml),找到 dashboard 的 basic_auth 配置: dashboard: basic_auth: username: admin password_hash: "<scrypt 哈希>" # 或明文 password: "xxx" 两种密码写法: password_hash:scrypt 哈希(推荐,不存明文) password:明文密码(简单但安全性低) 生成 password_hash(交互式输入,避免密码出现在命令行历史里): # 容器部署的,先进入容器内再执行: docker exec -it <容器名> bash # 然后在容器内: python3 -c " from plugins.dashboard_auth.basic import hash_password import getpass pw = getpass.getpass('输入新密码: ') print(hash_password(pw)) " 用 getpass 交互输入——密码不会显示在终端、不会进 shell history。 (如果容器里找不到 plugins 模块,说明需要在 Hermes 的虚拟环境里执行:/opt/hermes/.venv/bin/python3) ...

2026-08-07 · 1 分钟