Hermes Agent Railway 管理模板
通过 Railway 一键部署并集中配置、监管和备份 Hermes Agent。
按维度查看评分与理由
README 描述了仅暴露一个公共进程、Hermes UI 绑定回环地址、统一登录、用户配对审批、网关控制以及恢复前自动生成安全快照,因而最小暴露、确认机制、外部操作和回滚均有实质设计。但未说明细粒度权限、CSRF 防护、Cookie 的 Secure/SameSite 属性或各工具的出站数据边界。凭据与会话保存在持久卷中,完整备份明确为未加密,自动生成的管理员密码还会写入部署日志,因此敏感数据处理只能给薄弱分。Hermes 版本被固定,但 Python 依赖只有无上限的最低版本,也没有锁文件、哈希、漏洞扫描或更新验证。上游 Hermes、Nous Research 和 UI 灵感来源有明确署名,但模板自身的责任主体和许可证不清楚。
部署、配置、代理和监督模型的叙述总体连贯,并说明了网关崩溃后的退避重启。不过“完全通过消息渠道交互、没有聊天 UI”与前文所列原生 Hermes Chat UI 存在轻微表述张力。依赖 Railway、多个第三方模型和消息服务以及运行时安装的 Hermes;除固定 Hermes 引用外,未提供依赖锁定、镜像摘要、离线方案或服务不可用时的降级。日志面板、状态卡和反复失败后停止提供了基本可观察性,但没有具体错误消息、故障分类或排障示例。
目标受众和主要场景非常明确:面向希望在 Railway 上快速部署 Hermes 的用户,并提供从获取密钥、创建 Telegram Bot 到审批用户的完整新手路径,因此该项充分。文档也区分了向导覆盖范围、Hermes 原生 Keys 页面、支持的提供商/渠道/工具以及容器内更新限制。不过没有详细界定自主代理和各工具能够执行的操作、授权范围或风险边界。聊天触发、配对审批和浏览器管理动作清楚,但针对不同渠道的事件语义与误触发控制未展开。Railway 与本地 Docker 均有说明,持久卷、端口和环境变量也明确;生产域名、反向代理信任、资源需求及其他容器平台适配仍不足。
README 的功能、入门、变量、支持矩阵、架构、本地运行、升级和致谢组织清晰,安装步骤足以支持普通部署。路由、变量和数据目录命名稳定且具体,但功能面大量继承上游 Hermes,兼容性仅以升级时人工复查 extras 的提示处理。示例覆盖部署和 Telegram 流程,却没有 FAQ、系统化排障或完成的截图。文档坦率指出未加密备份、容器内更新无效和持久卷要求,但未形成完整限制清单。没有任何许可证文本或许可证声明,故 license 为 0。存在固定上游版本和升级方法,但没有模板自身的版本号、发行记录或变更日志。致谢清楚,然而未说明维护者、支持渠道、安全报告路径或维护承诺。
统一管理后台、原生 UI 代理、配对、日志、网关监督和备份恢复构成了可理解且具有实际用途的交付物;但源码实现、截图和运行证据均未提供,无法确认实际交互质量,因此未给满分。相对于手工编辑配置和分别暴露服务,该模板确实降低了部署与管理摩擦。成本收益说明只涉及免费模型示例和单容器便利性,没有量化 Railway 成本、资源消耗、第三方 API 费用或维护负担。
多数能力声明集中在 README,当前材料没有 Dockerfile、server.py、模板、测试或配置样例可逐项追踪,因此关于认证、代理、安全快照和监督重启的声明只能视为未由实现佐证的描述。requirements.txt 仅能交叉印证 Starlette、Uvicorn、HTTPX 和 WebSocket 技术栈,无法证实核心行为,跨来源佐证较弱。文档将架构、操作步骤、限制和推荐做法区分得较清楚,并明确标出未加密备份和更新按钮限制;但部分安全与可靠性表述仍是未经代码证明的确定性断言。
- 完整备份包含配置、凭据、聊天记录、记忆和技能且未加密;应将备份视为高敏感机密,并在离开受控存储前加密。
- 自动生成的管理员密码会打印到部署日志;需限制日志访问、在首次登录后轮换密码,并确认历史日志的保留范围。
- 材料未说明 CSRF 防护、Cookie 的 Secure/SameSite 设置、登录限速或会话撤销细节,不应仅凭“密码保护”假定互联网暴露是安全的。
- requirements.txt 使用无上限最低版本且没有锁文件或哈希,重建结果可能随时间变化;部署前应锁定并扫描完整依赖树。
- 本次仅依据 README 和 requirements.txt 静态评估,未看到或执行 Dockerfile、server.py、测试及实际部署。
这个 Agent 能做什么,适合哪些场景?
这是一个面向 Railway 的 Hermes Agent 部署模板,在同一容器内运行 Starlette/Uvicorn 管理服务器、原生 Hermes Dashboard 和 Hermes Gateway。公开入口由 server.py 统一提供,包含登录、设置向导、状态与日志接口,并将原生 Hermes UI 反向代理到同一套登录保护之后。管理员可以在网页中配置模型提供商、消息渠道和工具集成,无需直接编辑配置文件。Gateway 作为受监管的子进程运行,崩溃或被 OOM 终止后会按退避策略自动重启。配置、凭据、会话、配对状态和其他 Hermes 数据保存在 /data/.hermes/,可通过持久卷跨重新部署保留,也可打包备份和恢复。它适合希望自托管 Hermes、但更愿意通过浏览器完成部署后运维的用户。
server.py 使用 Starlette 和 Uvicorn 监听 0.0.0.0:$PORT,提供 /login、/logout、/health、/setup 与 /setup/api/*,并把 / 及其他路径反向代理到仅监听 127.0.0.1:9119 的 hermes dashboard。设置向导收集模型提供商密钥、模型名称、消息渠道令牌和工具配置,然后启动 hermes gateway。Gateway 连接 Telegram、Discord、Slack、WhatsApp、Email、Mattermost 或 Matrix,接收消息并调用所配置的模型服务;新用户可在管理界面中批准、拒绝或撤销权限。管理服务器采集 Gateway 输出到环形缓冲区,向日志面板持续推送,并显示运行状态、持续时间、模型及待处理配对请求。它还可以启动、停止或重启 Gateway,在进程异常退出时自动恢复,并将配置、凭据、聊天记录、记忆和技能导出为 ZIP;恢复前会自动创建安全快照。
- 希望在 Railway 上快速运行 Hermes Agent、又不想手工维护配置文件的个人用户。
- 需要让 Hermes 同时接入 Telegram、Discord、Slack 等消息渠道的小型团队管理员。
- 需要通过浏览器观察 Gateway 状态、实时日志和崩溃恢复情况的部署维护者。
- 需要审批机器人新用户并能随时撤销访问权限的私有社区运营者。
- 希望把配置、聊天记录、记忆和技能迁移到新 Railway 项目的 Hermes 用户。
- 希望在本地 Docker 环境中验证配置,再决定是否部署到 Railway 的开发者。
这个 Agent 有哪些优点和局限?
- 设置向导覆盖常用模型提供商、七类消息渠道和多种搜索、抓取、语音、图像及记忆集成,日常配置无需直接编辑文件。
- 管理界面与原生 Hermes Dashboard 共用一个 Cookie 登录,且原生 Dashboard 仅绑定回环地址,不直接暴露。
- Gateway 由 server.py 监管,异常退出或 OOM 后可自动按退避策略重启。
- 备份范围包含配置、凭据、聊天记录、记忆和技能,恢复前还会自动生成安全快照。
- 既提供 Railway 部署路径,也给出可复制的本地 Docker 构建与运行命令。
- 备份 ZIP 不加密,其中可能包含配置、凭据、历史记录和记忆,需要自行安全存储。
- 持久化依赖正确挂载 /data;缺少持久卷时,重新部署后的配置保留没有保障。
- Gateway 与管理服务器位于同一容器,README 说明 Railway 不会仅因 Gateway 停止而重启整个服务,因此恢复依赖内置监管逻辑。
- Hermes 不能通过容器内的 Update 按钮持久升级,必须更改 HERMES_REF 或 Dockerfile 并重新部署。
- 跨 Hermes 版本升级时需要重新核对 Dockerfile 安装 extras 与上游 pyproject.toml,存在维护成本。
- 仓库未声明许可证,采用前无法从所给材料确认再分发或修改条款。
如何安装或部署这个 Agent?
Railway 部署:先准备受支持模型提供商的 API 密钥;如使用 Telegram,还需通过 @BotFather 创建机器人并取得 Bot Token。点击仓库提供的 Railway 部署按钮,设置 ADMIN_PASSWORD,并挂载到 /data 的持久卷;PORT 由 Railway 自动设置。部署完成后打开应用 URL,以 admin 和所设密码登录。也可在本地执行:docker build -t hermes-agent .;随后执行 docker run --rm -it -p 8080:8080 -e PORT=8080 -e ADMIN_PASSWORD=changeme -v hermes-data:/data hermes-agent。然后访问 http://localhost:8080,并使用 admin / changeme 登录。
如何使用这个 Agent?
登录后打开 /setup,在 LLM Provider 中选择提供商并填写 API 密钥和模型名称;例如可选择 OpenRouter。勾选需要的消息渠道并填写相应凭据,例如 Telegram Bot Token,然后点击 Save & Start。向已配置的机器人发送消息;首次联系的用户会出现在管理界面的 Users 区域,管理员点击 Approve 后即可使用。运行期间可从浏览器查看状态和实时日志,并启动、停止或重启 Gateway。需要迁移时下载完整 ZIP 快照,在另一套部署中执行恢复。升级 Hermes 时应设置 Railway 服务变量 HERMES_REF 并重新部署,或修改 Dockerfile 中的 ARG HERMES_REF;容器内的 Hermes Update 按钮不会完成持久升级。