Py学习  »  Git

GitHub 26万Star的AI Agent,终于有Web可视界面了!

Java基基 • 12 小时前 • 15 次点击  

👉 这是一个或许对你有用的社群

🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料: 

👉这是一个或许对你有用的开源项目

国产Star破10w的开源项目,前端包括管理后台、微信小程序,后端支持单体、微服务架构

RBAC权限、数据权限、SaaS多租户、商城、支付、审批工作流、大屏报表、ERP、CRM、WMS、MES、HRM、EAM、OA、FMS、PMS、AI大模型、AI工作流、AI Agent、IoT物联网、IM实时聊天等功能:

  • 多模块:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • 微服务:https://gitee.com/zhijiantianya/yudao-cloud
  • 视频教程:https://doc.iocoder.cn
【国内首批】支持 JDK25 + SpringBoot4、JDK17/21+SpringBoot3、JDK8/11+Spring Boot2三版本 

QUOTE

把长期运行的 Agent,放进浏览器里管理。

在终端里用 Hermes Agent,大概是这种感觉。功能确实强,记忆、定时任务、多平台通知都有,但全靠敲命令,配个模型都要翻文档。

hermes-web-ui 就是来解决这件事的。社区给 Hermes Agent 做了一套 Web 界面,把终端里的操作搬进浏览器。

— Hermes Agent 仓库首页,Star 与简介

Hermes Agent 本体是 Nous Research 开源的,MIT 协议,Python 写的,现在二十六万多 Star。

终端能做的,浏览器里都能做,而且不用记命令。 这句话听着像宣传语,但它确实是这套界面的设计目标。做这个界面的人在 README 里写得很直白,要求在 CLI 上能做到的事,UI 上都要等价做到,做不到就算 bug。

本文看点

01

它不是聊天工具,是住在服务器上的账号

02

三栏加控制中心,终端能做的这里都能做

03

聊天这块做得比想象细

01

AGENT

它不是聊天工具,是住在服务器上的账号

先把这个 Agent 到底是什么说清楚,不然界面的价值看不出来。

普通 AI 聊天工具是无状态的,关掉窗口就忘了。Hermes Agent 住在你自己的服务器上,有记忆,会自己学。

它维护两个文件。MEMORY.md 记录环境、约定和学到的东西,USER.md 记录你的偏好和说话风格。每次会话开始,这两个文件都会注入到系统提示里。历史会话存在本地 SQLite 里,不是云端。

遇到复杂任务,大概五个工具调用以上那种,它会把这回的解法整理成一个技能文件存下来。下次碰到类似问题直接调,不用从头再摸索一遍。

模型不绑死。OpenAI、Anthropic、Google、DeepSeek、OpenRouter 都能切,本地跑 Ollama 也行,一条命令换。

定时任务是内置的,不用碰 crontab。跟它说一句「每天早上九点给我发一条 Hacker News 摘要」,它自己就配好了。任务之间还能带上下文,昨天的结果今天能直接引用。

还能通过 Telegram、Discord、Slack、WhatsApp、Signal 等十几个平台找到它,手机上发条消息,效果跟在终端里一样。

ruoyi-vue-pro

基于 Spring Boot + MyBatis Plus + Vue & Element & Ant Design 实现的后台管理系统 + 用户小程序,RBAC权限、数据权限、SaaS多租户、商城、支付、审批工作流、大屏报表、ERP、CRM、WMS、MES、HRM、EAM、OA、FMS、PMS、AI大模型、AI工作流、AI Agent、IoT物联网、IM实时聊天等功能

项目地址:https://github.com/YunaiV/ruoyi-vue-pro

视频教程:https://doc.iocoder.cn/video/


02

INTERFACE

三栏加控制中心,终端能做的这里都能做

界面是三栏布局。左边是会话列表和导航,中间聊天区,右边是工作区的文件浏览器。

— 三栏界面,中间是对话,右侧是文件

模型、Profile、工作区这三个切换控件放在输入框底部,写消息的时候一直可见,不用切页面去改。

侧边栏底部有个「控制中心」入口,会话管理、设置、工具面板都收在里面。

技术上有个细节值得说。没有构建步骤,没有打包工具,没有前端框架。后端 Python,前端原生 JavaScript,改一行刷新就生效。想启动也是一条命令,不用先 npm install 半小时。

好处不只是启动快。这套东西是给你自己改的,看得懂就能动,不像某些套壳界面,想加个按钮要先学一遍框架。

yudao-cloud

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element & Ant Design 实现的后台管理系统 + 用户小程序,RBAC权限、数据权限、SaaS多租户、商城、支付、审批工作流、大屏报表、ERP、CRM、WMS、MES、HRM、EAM、OA、FMS、PMS、AI大模型、AI工作流、AI Agent、IoT物联网、IM聊天等功能

项目地址:https://github.com/YunaiV/yudao-cloud

视频教程:https://doc.iocoder.cn/video/


03

CHAT

聊天这块做得比想象细

响应是流式的,token 一个一个出来。

— 工具调用以卡片展开,子 Agent 单独显示

消息发出去之后可以编辑,从那条重新生成;上一条回复能一键重试;任务跑到一半可以取消。这几样是日常真正会用到的,缺一个都别扭。

工具调用以卡片形式展示,每张卡片显示工具名、参数、结果摘要,能展开能折叠。跑一个任务下来,它调过什么、拿到什么,全在时间线上,不用翻日志猜。如果它调用了子 Agent,子 Agent 的活动会单独显示,带缩进和不同图标,一眼能看出层级。

Mermaid 图能在聊天里直接渲染,流程图、时序图、甘特图都行。跟它讨论架构时,让它画个时序图,出来就能看,不用自己复制去别的工具渲染。

模型的思考过程会以可折叠的金色卡片展示,默认收起,想看得深点开,不打断主线阅读。

碰到危险命令,比如 rm -rf 这种,界面会弹确认卡,四个选项,允许一次、本次会话允许、始终允许、拒绝。

输入框底部有一个圆形进度环,实时显示当前 token 用量、成本和模型上限。这个设计比在设置页里翻用量直观得多。


04

MANAGEMENT

会话、文件、任务、技能、记忆都能管

会话管理做得比 CLI 完整。CLI 里翻历史靠上下键和 grep,这边像正常的即时通讯软件。可以创建、重命名、复制、删除,搜索能按标题也能按消息内容。每条会话右边有菜单,能置顶、归档、移进项目组。置顶的会在顶部显示金色标记。

会话可以归入「项目」,项目是带颜色的分组。标题里加 #tag 就变成彩色标签,点一下按标签过滤。侧边栏按今天、昨天、更早分三段折叠,翻旧会话不用一直往下滚。

搜索是全文的,标题和消息内容都能命中。找一个三个月前问过的命令,搜关键词就能翻出来。

命令行里开的会话也会出现在侧边栏,带一个金色 cli 标记,点进去能把完整历史导进来继续聊。每条对话可以导出成 Markdown 或 JSON,也能从 JSON 导入。

右边的文件树,单击折叠展开,双击进子目录。文本、代码、Markdown、图片都能直接预览,文件能编辑、新建、删除、改名,目录也能建。检测到 Git 仓库时顶部会显示分支状态,改完文件顺手就能看 diff。

附件是另一回事。拖进去的文件会存到工作区之外,刷新页面还在,不会因为换会话丢掉。

— 定时任务面板,能看到每次运行的历史

Tasks 面板能查看、新建、编辑、运行、暂停、删除定时任务,每个任务的运行历史都在,跑失败的那次也能点进去看输出。任务跑完界面会弹 Toast,侧边栏的 Tasks 标签出现未读角标;后台出错时,就算你没在看那个会话,顶部也会横一条提示。

Skills 面板列出已安装的技能,按类别分组,能搜索能预览,也能在界面里直接新建或编辑。前面说的「复杂任务自动存成技能」,就落在这个面板里,攒一段时间会发现常用的那几样都在,还能按类别折叠。

— 技能面板,装了什么一眼看完

Memory 面板可以在浏览器里直接改 MEMORY.md 和 USER.md,不用 SSH 上去改文件。

Profile 是一整套独立配置,包含模型、API Key、技能、记忆、定时任务。支持创建、切换、删除,新建时能克隆现有配置。本地模型单独一套 Profile,切过去就是本地的。

主题内置七套,Dark、Light、Slate、Solarized Dark、Monokai、Nord、OLED,设置面板能切,也可以直接敲 /theme。偏好会按浏览器记住,换设备再设一次。

OLED 那套是纯黑底,晚上看不刺眼;Solarized 和 Nord 偏冷,长时间盯屏幕舒服些。这类东西不影响功能,但决定你愿不愿意一直开着。

语音输入在输入框旁边,点一下开始录,文字实时出现在框里,静默两秒自动停。转录是追加不是覆盖,可以先打字再说一句。底层用的是浏览器自带的语音识别,不需要额外配服务。

手机适配是认真做过的那种。宽度小于 640px 时侧边栏变成从左侧滑入的抽屉,文件面板从右边滑入,所有点击区域不小于 44px,聊天区高度按整屏算,不会被手机底部导航挡住。


05

INSTALL

一条命令起来,Docker 和隧道都给了

前提是先装好 Hermes Agent 本体,Windows 原生不支持,得用 WSL2。官方给了一个安装脚本,跑完就装好了。

···bash

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | sh

然后拉 Web UI 并启动,四步搞定。

···bash

git clone https://github.com/nesquena/hermes-webui.git hermes-web-ui

cd hermes-web-ui

cp .env.example .env

python3 bootstrap.py

跑起来之后可以用 ctl 脚本管理,查状态、看日志、停止都在这里。

···bash

./ctl.sh status

./ctl.sh logs

./ctl.sh stop

./ctl.sh restart

tail -f ~/.hermes/webui.log

ss -tlnp | grep 8787

要注意 ctl 只认自己启动的进程,直接用 bootstrap 起的那种它停不掉,得手动 kill。

起来之后浏览器访问本机的 8787 端口就能用。bootstrap.py 会自动检测 Hermes Agent,找不到就尝试自动装,然后拉起 Web 服务并打开浏览器。第一次启动有引导向导,带你配好模型提供商。

想用容器也可以,镜像在 GHCR,amd64 和 arm64 都有。

···bash

docker pull ghcr.io/nesquena/hermes-webui:latest

docker compose up -d

docker compose ps

docker compose logs -f

更推荐用 Docker Compose,把 Agent 和 Web UI 分成两个容器,通过共享卷通信。两个容器共享 ~/.hermes 目录,配置、会话、技能、记忆全在这里面,Web UI 启动时会自动装 Agent 的 Python 依赖,后续重启直接复用。第一次起会慢一点,别以为卡住了。

服务默认只绑本机回环地址,只有同一台机器能访问。跑在 VPS 上就用 SSH 隧道把 8787 端口转发到本地,转发命令启动脚本检测到 SSH 环境时会自动打印出来,复制粘贴即可。

手机上想用,配合 Tailscale 最省事。服务端和手机都装 Tailscale,启动时放开监听。

···bash

HERMES_WEBUI_HOST=0.0.0.0 ./ctl.sh start

这样手机直接访问内网地址就行,比配一个 Telegram Bot 省心。Tailscale 打的是私有网络,端口不用暴露到公网,安全上少操一份心。


06

SECURITY

安全、结构,和它适合谁

密码保护默认关闭,方便本地用。开启方式有两种,设置环境变量 HERMES_WEBUI_PASSWORD,或者在设置面板里打开。认证基于 HMAC 签名的 HTTP-only Cookie,登录状态靠签名校验,不是明文存密码。

它默认只绑本机,这个默认值挺稳妥。真要开放到公网,先想清楚谁能访问,再把密码和 HTTPS 一起加上。

现在也支持 Passkey 和 OIDC 登录。注册过 Passkey 之后可以使用免密登录,也可以保留密码作为恢复手段;OIDC 配好 issuer、client_id 和 claim 规则就能接企业账号,四个参数没配全不会启用,启动时会打一条警告。

响应都带安全头,CDN 资源加了 SRI 哈希校验。

代码量不大,分层清楚,想改的话门槛不高。

···text

server.py HTTP 路由 + 认证中间件 约 154 行

api/auth.py 密码认证,签名 Cookie 约 201 行

config.py 配置发现、模型检测

docs/ 安装与接入文档

运行状态都在 ~/.hermes/webui-mvp/ 里,会话、工作区、设置、项目都在,路径可以用环境变量覆盖。

它不是给所有人的。偶尔问 AI 几个问题,用聊天网站就够了。它的价值在长期高频使用,比如服务器上跑着一堆自动化任务、需要随时看状态、或者人在外面不想开 SSH 的时候。

还有一种场景挺典型。Agent 在后台跑着长任务,手机上看一眼进度,顺手批一个危险命令的确认,再回一句让它继续。以前这套流程得开电脑、连终端、翻日志。

仓库在 https://github.com/nesquena/hermes-webui ,Hermes Agent 在 https://github.com/NousResearch/hermes-agent ,两个都是 MIT 协议。

END




欢迎加入我的知识星球,全面提升技术能力。

👉 加入方式,“长按”或“扫描”下方二维码噢:

星球的内容包括:项目实战、面试招聘、源码解析、学习路线。

文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*)

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/203235