以下是您要求的英文文章的中文翻译,已按照保留原文结构、技术术语不翻译、代码块保持原样等要求处理。
nesquena / hermes-webui
Hermes Web UI
Hermes Agent 是一个复杂的自主智能体,它运行在你的服务器上,通过终端或消息应用访问,能够记住所学内容,并且运行时间越长能力越强。Hermes WebUI 是 Hermes Agent 在浏览器中的一个轻量级、深色主题的 Web 应用界面。它与 CLI 体验完全一致——你在终端能做的所有事情,在这个 UI 中都能完成。无需构建步骤、无需框架、无需打包工具。仅需 Python 和原生 JavaScript。
布局:三栏式。左侧边栏用于会话和导航,中间用于聊天,右侧用于工作区文件浏览。模型、配置文件和 workspace 控件位于 composer 底部栏——在编写消息时始终可见。一个圆形上下文环可直观显示 token 用量。所有设置和会话工具都在 Hermes 控制中心(侧边栏底部的启动器)中。
- 支持浅色模式及完整配置文件
- 自定义设置,配置密码
- 工作区文件浏览器,支持内联预览
- 会话项目、标签和工具调用卡片
这让你能够通过便捷的 Web UI 获得与 Hermes CLI 几乎 1:1 一致的功能,并且可以通过 SSH 隧道从你的 Hermes 设置安全访问。只需一条命令即可启动,再一条命令即可通过 SSH 隧道在你的电脑上访问。Web UI 的每个部分都使用你现有的 Hermes agent 和现有模型,无需任何额外设置。
目录
- 为什么选择 Hermes —— 它是什么以及与其他工具的对比
- 快速开始 —— clone + bootstrap.py / start.sh / ctl.sh
- 功能 —— 聊天、会话、工作区、语音、配置文件、安全性、主题、面板、移动端
- 配置与访问 —— 自动发现、覆盖配置、远程/Tailscale/手机、手动启动
- Docker —— 单容器和多容器部署
- 运行测试
- 架构 —— 后端/前端布局、状态目录
- 文档 —— 完整文档索引
- 贡献者
为什么选择 Hermes
大多数 AI 工具每次会话都会重置。它们不知道你是谁、你之前做了什么、或者你的项目遵循什么约定。你每次都要重新解释自己。Hermes 能够在会话之间保留上下文,在你离线时运行定时任务,并且随着运行时间增长,对你的环境越来越了解。它使用你现有的 Hermes agent 设置和现有模型,无需额外配置即可启动。
它与其他 agent 工具的不同之处在于:
- 持久记忆 —— 用户配置文件、agent 笔记,以及一个可保存可重用流程的技能系统;Hermes 会学习你的环境,无需重新学习
- 自托管调度 —— cron 任务在你离线时触发,并将结果发送到 Telegram、Discord、Slack、Signal、电子邮件等
- 10+ 消息平台 —— 终端中可用的同一个 agent,在手机上也能访问
- 自我改进的技能 —— Hermes 会根据经验自动编写并保存自己的技能;无需浏览市场,无需安装插件
- 提供商无关 —— 支持 OpenAI、Anthropic、Google、DeepSeek、OpenRouter 等
- 编排其他 agent —— 可以启动 Claude Code 或 Codex 处理繁重的编码任务,并将结果带回自己的记忆
- 自托管 —— 你的对话、你的记忆、你的硬件
与同类工具的对比(格局正在快速变化——完整分析见 docs/why-hermes.md)
| 特性 | OpenClaw | Claude Code | Codex CLI | OpenCode | Hermes | |---|---|---|---|---|---| | 持久记忆(自动) | 是 | 部分† | 部分 | 部分 | 是 | | 定时任务(自托管) | 是 | 否‡ | 否 | 否 | 是 | | 消息应用访问 | 是(15+ 平台) | 部分(Telegram/Discord 预览) | 否 | 否 | 是(10+) | | Web UI(自托管) | 仅仪表盘 | 否 | 否 | 是 | 是 | | 自我改进技能 | 部分 | 否 | 否 | 否 | 是 | | Python / ML 生态 | 否(Node.js) | 否 | 否 | 否 | 是 | | 提供商无关 | 是 | 否(仅 Claude) | 是 | 是 | 是 | | 开源 | 是(MIT) | 否 | 是 | 是 | 是 |
† Claude Code 有 CLAUDE.md / MEMORY.md 项目上下文和滚动自动记忆,但没有完整的跨会话自动召回 ‡ Claude Code 有云管理调度(Anthropic 基础设施)和会话范围的 /loop;没有自托管 cron
最接近的竞争对手是 OpenClaw —— 两者都是始终在线、自托管、开源的 agent,具有记忆、cron 和消息功能。主要区别在于:Hermes 将自动编写和保存自己的技能作为核心行为(OpenClaw 的技能系统以社区市场为中心);Hermes 在更新中更稳定(OpenClaw 有记录的发布回归问题,ClawHub 曾发生涉及恶意技能的安全事件);并且 Hermes 原生运行在 Python 生态中。详见 docs/why-hermes.md 的完整对比。
快速开始
运行仓库的 bootstrap:
git clone https://github.com/nesquena/hermes-webui.git hermes-webui
cd hermes-webui
python3 bootstrap.py
或者继续使用 shell 启动器:
./start.sh
对于自托管 VM 或 homelab 安装,ctl.sh 封装了常见的守护进程生命周期命令,无需使用 fuser 或 pkill:
./ctl.sh start # 后台守护进程,PID 位于 ~/.hermes/webui.pid
./ctl.sh status # PID、运行时间、绑定主机/端口、日志路径、/health
./ctl.sh logs --lines 100 # 查看 ~/.hermes/webui.log 末尾 100 行
./ctl.sh restart
./ctl.sh stop
ctl.sh start 在守护进程包装器后面以前台/无浏览器模式运行 bootstrap,将日志写入 ~/.hermes/webui.log,并遵循 .env 以及内联覆盖配置,例如 HERMES_WEBUI_HOST=0.0.0.0 ./ctl.sh start。
高级功能:动态召回预填充与 Gateway 支持的聊天
两个可选的、自托管部署功能——将动态会话召回预填充附加到浏览器轮次(Joplin/Obsidian/Notion/llm-wiki 路由器),以及通过正在运行的 Hermes Gateway 路由浏览器聊天——在 docs/advanced-chat-setup.md 中有文档说明。大多数用户不需要这些功能。
bootstrap 将执行以下操作:
- 检测 Hermes Agent,如果缺失,则尝试官方安装程序(
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash)。 - 查找或创建包含 WebUI 依赖项的 Python 环境。
- 启动 Web 服务器并等待
/health。 - 打开浏览器,除非你传递了
--no-browser参数。 - 将你带入 WebUI 内的首次运行引导向导。
此 bootstrap 目前不支持原生 Windows。