← 返回信息流
GitHub 热榜GitHub Trending · 日·4 天前

Hermes WebUI:Hermes Agent 的 Web 与移动端最佳交互界面

原标题:nesquena/hermes-webui
Python9,592 stars+320 今日

速览

该项目是 Hermes Agent 的官方 Web 用户界面,支持通过浏览器或移动设备直接交互。它简化了 Hermes 的使用流程,让用户无需配置复杂环境即可体验 AI 代理功能。

AI 深度解读

这是什么

nesquena/hermes-webui 是一个基于 Python 和原生 JavaScript 构建的轻量级 Web 界面,专为 Hermes Agent 设计。Hermes Agent 是一个运行在服务器端的复杂自主智能体(Autonomous Agent),它通过终端或即时通讯应用与用户交互,具备持久化记忆能力,并随着运行时间的增长而变得更加强大。

该 WebUI 旨在提供与命令行界面(CLI)完全对等的功能体验,但通过浏览器提供更为直观的图形化操作。其核心设计理念是“零构建步骤、零框架、零打包器”,仅依赖 Python 和原生 JS 运行,使得部署和维护极其简单。界面采用深色主题,布局分为三栏:左侧为会话导航,中间为聊天窗口,右侧为工作区文件浏览。所有设置和会话工具均集成在底部的 Composer Footer 或侧边栏底部的 Hermes Control Center 中。

解决的问题

大多数 AI 工具存在“会话重置”的痛点:每次新会话开始时,AI 都不记得你是谁、你之前做了什么工作,也不了解项目的具体规范。这导致用户不得不反复向 AI 解释背景信息,效率低下。

Hermes WebUI 结合 Hermes Agent 的核心优势,解决了以下问题:

  1. 上下文断裂:通过持久化记忆,Hermes 能够跨会话保留上下文,无需用户重复输入背景信息。
  2. 离线任务缺失:传统 AI 工具通常只在用户在线时响应,而 Hermes 支持在用户离线时运行定时任务(Cron jobs),并在完成后通过 Telegram、Discord、Slack 等渠道推送结果。
  3. 环境适应成本高:Hermes 能够自动学习用户的环境和项目约定,并通过自我改进的技能系统(Self-improving skills)自动保存可复用的操作流程,避免了每次都需要重新配置或安装插件的麻烦。
  4. 访问便利性:通过 SSH 隧道即可安全地从任何地方访问服务器上的 Agent,无需复杂的本地环境配置。

核心功能

  • 持久化记忆与技能系统

    • 保存用户画像、Agent 笔记和技能库。
    • Hermes 会自动从经验中学习并编写、保存新的技能(Skills),无需浏览市场或手动安装插件。
    • 技能系统允许保存可复用的程序,Agent 会根据经验自我优化。
  • 多平台消息集成

    • 支持连接 10+ 种消息平台(包括 Telegram、Discord、Slack、Signal、Email 等)。
    • 同一个 Agent 既可以在终端使用,也可以通过手机上的消息应用随时调用。
  • 自托管定时任务(Self-hosted Scheduling)

    • 支持在服务器端运行 Cron 任务,即使用户离线也能执行。
    • 任务结果可自动分发至指定的消息平台。
  • 模型无关性(Provider-agnostic)

    • 支持 OpenAI、Anthropic、Google、DeepSeek、OpenRouter 等多种模型提供商。
    • 可以编排其他 Agent(如 Claude Code 或 Codex)处理重型编码任务,并将结果回传至自身记忆库。
  • WebUI 高级配置与集成

    • 动态预填充(Dynamic Prefill):支持通过脚本挂钩(Script Hook)动态注入上下文。例如,连接 Joplin、Obsidian、Notion 等笔记工具,在浏览器聊天开始时自动注入检索指令或关键上下文,而非全量导入笔记。
    • Gateway 路由支持:高级用户可将浏览器聊天流量路由至本地运行的 Hermes Gateway API Server,保持与消息面一致的运行时和工具路径。
    • 健康检查与诊断:提供 /api/health/agent 端点,允许操作员诊断 Gateway 模式、Base URL 和 API Key 配置状态,且不暴露敏感密钥。

亮点 / 与同类相比

  • vs. Claude Code

    • Claude Code 虽然支持 CLAUDE.md / MEMORY.md 和项目滚动自动记忆,但缺乏完整的跨会话自动回忆能力。
    • Claude Code 的调度依赖于 Anthropic 的云端基础设施,且会话范围有限制;Hermes 提供完全自托管的 Cron 调度。
  • vs. OpenClaw

    • 技能机制:Hermes 的核心行为是自动编写和保存技能,而 OpenClaw 的技能系统侧重于社区市场浏览。
    • 稳定性与安全:Hermes 在 Python 生态中原生运行,跨版本更新更稳定;OpenClaw 曾记录过版本回归问题,且其 ClawHub 市场曾发生过涉及恶意技能的安全事件。
    • 技术栈:Hermes 基于 Python,对于熟悉 Python 生态的用户更加友好。
  • 技术亮点

    • 极简架构:无构建步骤,无框架依赖,纯 Python + Vanilla JS,易于理解和二次开发。
    • 资源感知:界面中的圆形上下文环(Context Ring)实时显示 Token 使用情况。
    • 安全隔离:动态脚本输出有大小限制(256 KiB),解析后的上下文也有字符数限制(默认 12,000 字符),防止上下文溢出;浏览器端仅接收状态事件,不直接接收预填充的消息体。

适合谁用 / 上手

适合人群

  • 希望拥有完全数据主权、偏好自托管 AI 解决方案的个人开发者或小型团队。
  • 需要跨会话保持上下文、自动化日常任务(如监控、报告生成)的高级用户。
  • 熟悉 Python 生态,希望在不引入复杂前端构建流程的情况下扩展 AI 应用功能的开发者。
  • 需要连接多种消息平台并统一管理 Agent 行为的用户。

上手指南

  1. 克隆仓库

    git clone https://github.com/nesquena/hermes-webui.git hermes-webui
    cd hermes-webui
    
  2. 初始化与启动

    • 方式一(推荐):运行 Bootstrap 脚本,自动检测并安装 Hermes Agent(如果缺失):
      python3 bootstrap.py
      
    • 方式二:使用现有的 Shell 启动器:
      ./start.sh
      
  3. 守护进程管理(适用于 VM 或 Homelab): 使用 ctl.sh 脚本管理生命周期,无需手动处理 fuserpkill

    ./ctl.sh start      # 后台启动守护进程
    ./ctl.sh status     # 查看 PID、运行时间、绑定端口、日志路径
    ./ctl.sh logs --lines 100 # 查看最近 100 行日志
    ./ctl.sh restart    # 重启服务
    ./ctl.sh stop       # 停止服务
    
  4. 安全访问: 建议通过 SSH 隧道将本地端口映射到服务器上的 WebUI 端口,以安全地通过浏览器访问。

  5. 高级配置(可选)

    • 配置 .env 文件或环境变量(如 HERMES_WEBUI_HOST=0.0.0.0)以自定义绑定地址。
    • 如需集成笔记工具,可配置 webui_prefill_messages_script 或环境变量 HERMES_WEBUI_PREFILL_MESSAGES_SCRIPT 来动态注入上下文。
    • 如需使用 Gateway 路由,设置 HERMES_WEBUI_CHAT_BACKEND=gateway 及相关 URL 和 Key。
查看原文 →github.com