好的,这是您要求的英文文章的中文翻译,已按照规范处理格式、保留原文结构和术语。
nesquena / hermes-webui
Hermes Web UI Hermes Agent 是一个复杂的自主智能体,它驻留在您的服务器上,可通过终端或消息应用访问。它会记住所学内容,并且运行时间越长,能力就越强。Hermes WebUI 是浏览器中为 Hermes Agent 提供的轻量级、深色主题的 Web 应用界面。它与 CLI 体验完全一致——您在终端中能做的所有事情,在此 UI 中同样可以完成。无需构建步骤,无需框架,无需打包工具。仅需 Python 和原生 JS。布局:三面板。左侧边栏用于会话和导航,中央用于聊天,右侧用于工作区文件浏览。模型、配置文件和 workspace 控件位于 composer 页脚——在撰写消息时始终可见。圆形上下文环可让您一目了然地查看 Token 使用情况。所有设置和会话工具都在 Hermes 控制中心(侧边栏底部的启动器)中。支持完整配置文件设置的浅色模式,自定义您的设置,配置密码。工作区文件浏览器,支持内联预览。会话项目、标签和工具调用卡片。这为您提供了与 Hermes CLI 几乎 1:1 一致的功能,通过一个便捷的 Web UI 实现,您可以通过 SSH 隧道从您的 Hermes 设置安全地访问它。只需一条命令即可启动,再一条命令即可通过 SSH 隧道在您的计算机上访问。Web UI 的每个部分都使用您现有的 Hermes 智能体和现有模型,无需任何额外设置。
为什么选择 Hermes
大多数 AI 工具在每个会话后都会重置。它们不知道您是谁,您之前做了什么,或者您的项目遵循什么约定。您每次都需要重新解释自己。Hermes 能跨会话保留上下文,在您离线时运行定时任务,并且运行时间越长,它对您环境的了解就越深入。它使用您现有的 Hermes 智能体设置和现有模型,无需额外配置即可启动。
它与其他智能体工具的不同之处在于:
- 持久记忆 — 用户配置文件、智能体笔记以及保存可重用流程的技能系统;Hermes 会学习您的环境,无需重新学习
- 自托管调度 — 在您离线时触发的 cron 任务,并将结果发送到 Telegram、Discord、Slack、Signal、电子邮件等平台
- 10+ 消息平台 — 终端中可用的同一个智能体,在手机上也能访问
- 自我改进的技能 — Hermes 会根据经验自动编写并保存自己的技能;无需浏览市场,无需安装插件
- 提供商无关 — 支持 OpenAI、Anthropic、Google、DeepSeek、OpenRouter 等
- 编排其他智能体 — 可以生成 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——两者都是始终在线、自托管、开源的智能体,具有记忆、cron 和消息功能。主要区别在于:Hermes 将自动编写和保存自己的技能作为核心行为(OpenClaw 的技能系统侧重于社区市场);Hermes 在更新中更稳定(OpenClaw 有记录的发布回归问题,且 ClawHub 曾发生过涉及恶意技能的安全事件);并且 Hermes 在 Python 生态系统中原生运行。完整的并排比较请参见 docs/why-hermes.md。
快速开始
运行仓库引导程序:
git clone https://github.com/nesquena/hermes-webui.git hermes-webui
cd hermes-webui
python3 bootstrap.py
或者继续使用 shell 启动器:
./start.sh
对于自托管的 VM 或家庭实验室安装,ctl.sh 封装了常见的守护进程生命周期命令,无需使用 fuser 或 pkill:
./ctl.sh start # 后台守护进程,PID 位于 ~/.hermes/webui.pid
./ctl.sh status # PID、运行时间、绑定的主机/端口、日志路径、/health
./ctl.sh logs --lines 100 # 查看 ~/.hermes/webui.log 的尾部
./ctl.sh restart
./ctl.sh stop
ctl.sh start 在守护进程包装器后面,以前台/无浏览器模式运行引导程序,将日志写入 ~/.hermes/webui.log,并遵循 .env 文件以及内联覆盖变量,例如 HERMES_WEBUI_HOST=0.0.0.0 ./ctl.sh start。
可选的会话回忆预填充
WebUI 可以将临时的预填充消息附加到新的浏览器发起的智能体轮次中。当部署已经有一个用于 Joplin、Obsidian、Notion、llm-wiki 或其他第三方笔记源的本地回忆或路由脚本,并且希望浏览器聊天知道持久化上下文的位置时,这很有用。建议使用紧凑的路由器风格预填充(例如,“Joplin 拥有持久的项目上下文;在回答依赖细节的问题之前,请使用可用的笔记/搜索工具”),而不是将整个笔记库转储到每个新的浏览器会话中。预填充应引导智能体进行检索;笔记/搜索工具应按需提供具体事实。通过 prefill_messages_file 或 HERMES_PREFILL_MESSAGES_FILE 仍然支持静态 JSON。对于动态回忆,请使用特定于 WebUI 的脚本钩子显式选择加入:
webui_prefill_messages_script:
- python3
- /path/to/notes_recall.py
webui_prefill_messages_script_timeout: 5
或者:
HERMES_WEBUI_PREFILL_MESSAGES_SCRIPT="python3 /path/to/notes_recall.py" \
HERMES_WEBUI_PREFILL_MESSAGES_SCRIPT_TIMEOUT=5 \
./ctl.sh restart
该脚本可以打印 OpenAI 风格的 JSON 消息列表、包含 messages 列表的 JSON 对象或纯文本;纯文本将