Hermes WebUI 路线图全解:从 CLI 功能对齐到可靠性加固与全平台分发
2026/9/13 6:27:52 网站建设 项目流程

Hermes WebUI 路线图全解:从 CLI 功能对齐到可靠性加固与全平台分发

【免费下载链接】hermes-webuiHermes WebUI: The best way to use Hermes Agent from the web or from your phone!项目地址: https://gitcode.com/GitHub_Trending/he/hermes-webui

本文以仓库根目录的 ROADMAP.md 为主体,完整梳理 Hermes WebUI 的生态版图:当前功能状态快照、分层架构、功能对齐清单(聊天/会话/工作区/定时任务/安全/国际化等 20 余个维度)、原生客户端矩阵、自治维护框架与前瞻工作计划。结合仓库源码(测试隔离机制、Docker 构建、MCP 服务、国际化实现)逐层印证,帮助读者掌握该项目的真实完成度边界、刻意不做的设计决策,以及"单一服务器 + 多端壳"的全平台落地思路。

定位与读法:版本数据"活"而不"钉"

ROADMAP.md 开篇明确了一个工程约定:版本号、测试数量、发布历史都是"实时派生"的,不写死在文件里——因为每个发布版本都会漂移。仓库给出的权威获取方式是:

  • 版本与历史:git tag --sort=-v:refname | head加 CHANGELOG.md;
  • 测试数量:pytest tests/ --collect-only -q

ARCHITECTURE.md 中留有周期性快照(当前发布构建v0.51.792、约 11,500 个测试、CI 在 Python 3.11/3.12/3.13 上各跑 3 个并行分片),但文档自己也标注这只是"周期性快照,权威来源是最新 git tag 与pytest --collect-only"。这种"路线图钉住方向、数字交给命令"的写法,避免了文档与代码脱节这一常见腐化源。

路线图总结的阶段性判断是:最初的"CLI 对齐 + Claude 对齐"愿景已经完成,工作重心从"追平功能"转向"加固可靠性 + 拓宽分发"。下面所有章节都围绕这一主线展开。

当前状态快照(Status Snapshot)

路线图用一张状态表概括了 12 个产品面的完成度,全部标记为 ✅ Complete:

产品面状态
Hermes CLI 对齐每个 CLI 工作流都有 Web 等价实现
流式输出 + 工具透明度实时工具卡片、推理卡片、审批提示、澄清(clarify)、取消、转向(steer)
多提供商模型支持任何在config.yaml中配置的提供商都会出现在选择器中 + 自定义端点实时发现
会话 + 项目 + 搜索CRUD、内容搜索、项目、标签、归档、分叉、导入、批量操作、CLI 桥接
移动端 + Docker + 认证汉堡导航、侧滑面板、PWA 安装、密码认证、GHCR 镜像
辅助面板工作区树 + 编辑 + 终端、cron CRUD、技能 CRUD、记忆写入、MCP 服务器 UI
视觉打磨Light / Dark / System × 21 皮肤、Mermaid、KaTeX、语法高亮、Transparent Stream
国际化15 种语言 + 键对齐守卫 + CJK/RTL/IME 处理
网关集成实时外部会话(Telegram、Discord、Slack、微信、Signal、SMS)+ 跨渠道交接
扩展系统选择性加载器、能力面(主题/TTS/导航/sidecar)、一键画廊、审核库仓库
原生客户端macOS(Swift)、Windows+Linux+macOS(Rust/Tauri)、Android、iOS——各自独立仓库
自治维护自运行 triage/review/release 流水线;已泛化为公开的 StewardOS 框架

剩余缺口与前向工作集中在"Forward Work"部分(见 前瞻工作),不再重复罗列。

架构分层:无构建步骤的薄服务端 + 原生 JS

路线图把整个系统拆成 8 个层,每一层都有对应文件与状态说明:

文件说明
Python 服务端server.py+api/模块覆盖api/业务逻辑(配置、会话、流式、profile、路由、引导、工作区、更新、上传、扩展)的薄 HTTP 壳 + 认证中间件
HTML 模板static/index.html直接从磁盘服务
CSSstatic/style.css主题 + 皮肤、移动响应式、KaTeX、表格样式
JavaScriptstatic/{ui,sessions,messages,workspace,panels,boot,commands,icons,i18n,login,onboarding,extension_settings}.js作为静态文件服务的原生 JS 模块——无 bundler
Service Workerstatic/sw.js离线壳缓存、版本钉死的资源
DockerDockerfiledocker-compose.ymlpython:3.12-slim、多架构(amd64+arm64)、HEALTHCHECK
CI/CD.github/workflows/每个 PR 跑 ruff lint + 分片 pytest + Playwright 浏览器测试 + Docker smoke;tag push 时自动发布 + GHCR 推送
测试隔离tests/_pytest_port.py按 worktree 派生端口 + 状态目录,互不冲突

路线图特别注明:逐文件行数每个版本都在变,当前模块地图以 ARCHITECTURE.md 为准,精确规模用git ls-files查询。

源码层面的印证

服务端确实是"薄壳 + 业务模块"结构。server.py 基于 Python 标准库http.serverThreadingHTTPServer),入口只做信号处理(如SIGPIPE忽略,防止客户端断连杀死进程)、测试模式网络隔离、路由分发;具体业务被拆到 api/ 下的 70 余个模块(会话生命周期、流式、配置、工作区、扩展、MCP 桥接等)。这种拆分正是 Sprint 9–10 "server.py →api/modules"重构的成果(见 冲刺历史)。

测试隔离机制是一个值得细看的实现细节。tests/_pytest_port.py 不再让每个测试文件硬编码http://127.0.0.1:8788,而是:

  • 测试端口由仓库根目录的 MD5 派生:20000 + (hash % 10000),不同 worktree 天然拿到不同端口;
  • 测试状态目录为webui-test-<md5前8位>,锚定在系统临时目录下的hermes-webui-tests/而非~/.hermes
  • 模块级"纵深防御":若状态目录被解析到生产目录~/.hermes之内(且临时根本身不在生产目录下),直接抛RuntimeError拒绝运行——"测试永远不能触碰生产文件"。

这与 ARCHITECTURE.md 提到的默认状态目录~/.hermes/webui形成生产/测试硬隔离。

Docker 层比路线图表格更"厚"。Dockerfile 基于python:3.12-slim,但额外从官方 amalgamation 源码编译了定制 SQLite(带 SHA-256 校验与-DSQLITE_SECURE_DELETE),因为基础镜像的 SQLite 版本存在 WAL 重置损坏缺陷;EXPOSE 8787声明服务端口,HEALTHCHECK配置为--interval=30s --timeout=8s --start-period=10s --retries=3,与状态快照中"HEALTHCHECK"一一对应。多容器编排则对应仓库根目录的 docker-compose.yml、docker-compose.two-container.yml、docker-compose.three-container.yml(two-container 即 webui + agent 的组合,对应功能清单里的"Two-container Docker compose")。

CI 工作流清单可逐一核对:.github/workflows/ 下有tests.yml(分片 pytest + lint)、browser-smoke.ymlconversation-lifecycle.yml(Playwright 浏览器测试)、docker-smoke.ymlrelease.yml(tag 触发自动发布)、docs-ci.ymlnative-windows-startup.yml,与路线图"CI/CD"行的描述完全吻合。

子路径挂载(reverse proxy at/hermes/)在 HTML 里就能看到实现。static/index.html 头部内联脚本在页面加载前动态写入<base href>,从location.pathname中剥离/session/<id>路由前缀再拼出基础路径,保证所有静态资源引用保持相对路径、在反代子路径下正确解析——这正是"Subpath mount support"清单项的底层机制。

功能对齐清单(Feature Parity Checklist)

这是路线图最核心的部分:按 20 余个维度逐项打勾,声明 WebUI 相对 CLI 与 Claude 式交互的对齐程度。以下完整继承原文档条目,并在关键处补充仓库证据。

聊天与流式(Chat and Streaming)

  • 发送消息、SSE 流式响应;
  • 会话作用域模型选择器(每会话可选模型);
  • 按提供商分组、可搜索的模型选择器(composer 与 Preferences 默认模型处均为同一组件);
  • 多提供商 API 支持——OpenAI、Anthropic、Google、OpenRouter、xAI、GLM、DeepSeek、Mistral、MiniMax、Kimi、OpenCode、Nous Portal、自定义 OpenAI 兼容端点;
  • 自定义端点模型实时发现(Ollama、LM Studio、vLLM 经/v1/models);
  • 从 Settings 直接添加自托管提供商(Ollama / LM Studio)——无需编辑config.yaml
  • OpenRouter 模型名自由输入(自动补全 + 自定义输入);
  • 工具进度以内联实时工具卡片展示;
  • 危险命令审批卡片(Allow once / session / always、Deny);
  • 审批轮询 + SSE 推送审批事件;
  • Clarify 对话框——agent 可提出阻塞式澄清问题;
  • 工具视图中展示子 agent 委托卡片;
  • INFLIGHT 守卫:请求中途切换会话不丢响应;
  • 页面加载时从 localStorage 恢复会话;
  • 流式中途刷新页面时显示重连横幅;
  • SSE 自动重连(扩展退避阶梯 + 全会话轮询兜底);
  • 每消息/每会话的 token 与成本估算;
  • 上下文用量指示(composer 底栏的紧凑圆环徽章);
  • 自动压缩处理 +/compact命令;
  • "上下文压缩耗尽"的一键恢复(聚焦续写);
  • rAF 节流的 token 渲染(平滑、无 DOM 抖动);
  • composer 底栏的取消/停止按钮;
  • 推理力度选择器(low / medium / high / xhigh)+/reasoning命令;
  • 纯文本流式 + 崩溃恢复——部分消息刷新后从 localStorage 恢复;
  • 忙碌回合的默认消息模式:Queue / Interrupt / Steer(新安装默认 Steer);
  • 带附件转向(steer)进行中的回合(文件上传并限定到所属会话);
  • Transparent Stream 模式——按时间线的工作日志、逐词淡入(遵循 reduced-motion 偏好)。

会话控制(Conversation Controls)

  • 复制消息到剪贴板(气泡悬停图标);
  • 编辑最后一条用户消息并重新生成;
  • 重新生成最后一条回复;
  • 清空对话(带截断水印,被清历史无法"复活");
  • 从任意消息点分叉会话(压缩过的会话按回合边界对齐);
  • 纯文本流与工具调用流均可恢复。

会话管理(Sessions)

  • 创建会话(+ 按钮或 Cmd/Ctrl+K);
  • 侧边栏点击加载会话;
  • 删除会话(悬停垃圾桶、toast 可撤销、有回退);
  • 首条用户消息自动命名 + 自适应标题刷新(可配置节奏);
  • 通过辅助路由(auxiliary route)生成 LLM 标题(可配置模型);
  • 内联重命名(双击、Enter 保存、Escape 取消);
  • 标题搜索(实时过滤)与内容搜索(跨全会话全文检索);
  • 日期分组头(Today / Yesterday / Earlier)可折叠;
  • 置顶/星标、复制会话;
  • 会话 JSON 导入/导出(完整消息 + 元数据)、Markdown 转录下载;
  • 标签(#tag提取 + 过滤芯片)、归档(默认隐藏,"Show N archived"开关);
  • 项目/文件夹(芯片过滤栏、"Unassigned"过滤);
  • 每会话 profile 追踪、每会话工具集覆盖(/toolsets);
  • 批量选择模式(多选、批量删除/移动/归档);
  • CLI 会话桥接——从state.db读取 CLI/agent 会话、实时呈现运行中会话、可导入为 WebUI 会话;
  • 只读 cron(定时任务)会话可分叉为可编辑聊天;
  • 侧边栏分组稳定(分叉/压缩/子 agent 簇在刷新时不重排);
  • 跨设备最近使用重排序(后台标签页中重新激活的会话也会升到顶部)。

工作区与文件(Workspace and Files)

  • 添加工作区带路径校验(目录必须存在、跟随符号链接);移除/重命名工作区;
  • 顶栏下拉快速切换;侧边栏实时显示工作区(名 + 路径);新会话继承最近使用的工作区;
  • 目录树浏览(类型图标)、展开/折叠 + 懒加载(#22);子目录面包屑导航;
  • 文本/代码只读预览;Markdown 预览(渲染 + 表格 + Mermaid + KaTeX);
  • 图片内联预览(PNG、JPG、GIF、SVG、WEBP、AVIF);PDF / SVG / 音频 / 视频 / Excalidraw / CSV / JSON / YAML 预览;
  • 内联编辑文件(Edit 按钮、Enter 保存、Escape 取消);当前目录下创建/重命名/删除文件与文件夹;
  • 拖放 / 点击 / 剪贴板粘贴上传;压缩包上传(zip / tar)并解压;
  • 复制绝对 + 相对文件路径;Prism.js 语法高亮代码预览;
  • 目录导航时文件预览自动关闭;右面板可拖拽调整宽度;
  • 内嵌工作区终端(/api/terminal/{start,input,output})——对应 static/terminal.js 前端模块;
  • 工作区头部显示 Git 分支 + 脏状态徽章。

定时任务(Cron Jobs)

  • 任务侧边栏标签列出全部 cron 任务;查看任务详情(prompt、计划、上次运行、输出);
  • 运行 / 暂停 / 恢复 / 删除;从 UI 创建任务(名称、计划、prompt、投递目标);
  • 内联编辑(与创建表单完全对齐,含技能选择);
  • 免 cron 语法的计划构建器(频率预设 + 时间/星期选择器 + 内联表达式预览);
  • 每个任务可展开的运行历史查看器;完成提醒(toast + 徽章);带实时监视模式的运行状态追踪。

技能、记忆、Profile(Skills / Memory / Profiles)

技能:按类别分组列出;按名称/描述/类别搜索过滤;查看完整SKILL.md内容;查看技能关联文件;创建/编辑/删除技能;/skills斜杠命令。

记忆:个人笔记(MEMORY.md)与用户档案(USER.md)以 Markdown 渲染;每节显示最后修改时间戳;内联添加/编辑记忆条目。

Profile

  • 多 profile 支持——创建、切换、删除(#28);
  • 顶栏 profile 选择器带网关状态点;
  • Profile 管理面板(完整 CRUD);
  • 无感切换(不重启服务器,刷新模型/技能/记忆/cron/工作区并强制配置重载);
  • Profile 本地工作区存储;
  • 首运行引导向导带提供商配置(OpenRouter / Anthropic / OpenAI / Custom);
  • Codex 与 Claude 的站内 OAuth;
  • 并发 per-profile 隔离(上下文级 home 覆盖,使并行 worker 互不干扰)。

配置与通知(Configuration / Notifications)

配置:设置面板(默认模型、默认工作区、发送键、主题、皮肤、语音、字号);设置项可搜索;发送键偏好(Enter 或 Ctrl+Enter);密码认证(默认关闭);每会话工具集覆盖;config.yaml配置人格(personality);推理力度持久化。

通知:cron 任务完成提醒;后台 agent 错误横幅;审批等待徽章;提供商/模型不匹配 toast 警告。

斜杠命令(Slash Commands)

  • 命令注册表 + 自动补全下拉;
  • 内置命令:/help/clear/model/workspace/new/usage/theme/compact/queue/interrupt/steer/goal/btw/reasoning/skills/toolsets
  • 未识别命令透传。

安全(Security)

安全是清单最长的一块之一,逐项如下:

  • 密码认证使用 HMAC 签名 HTTP-only Cookie(24h TTL);
  • 安全响应头(X-Content-Type-Options、X-Frame-Options、Referrer-Policy);
  • CSRF 防护(scheme 感知、为反向代理做端口归一化);
  • CORS preflight 只回显白名单来源——绝不使用通配符
  • PBKDF2 密码哈希;认证端点限流;会话 ID 校验;
  • SSRF 防护(/api/models/livecfg_base_urlcustom_providers[]);
  • 环境变量变更围绕 ENV_LOCK;所有渲染 HTML 做 XSS 净化;
  • HMAC 签名密钥随机(每安装独立);技能路径穿越防护;
  • Cookie 安全标志(HttpOnly、SameSite、HTTPS 时加 Secure);
  • 错误消息净化(响应中不暴露堆栈);POST body 大小限制(20MB);
  • 上传路径穿越防护;API 响应凭据脱敏;profile 切换时.env密钥隔离;
  • ?next=登录参数开放重定向防护(有界解码、折叠登录循环链);
  • 自动安装门控(HERMES_WEBUI_AUTO_INSTALL=1显式开启)。

视觉 / UX

  • 3 种基础模式——Light、Dark、System(自动同步);
  • 21 个皮肤叠加在基础模式之上:default、ares、catppuccin、charizard、codex、geist-contrast、github、graphite、hepburn、mono、neon、neon-paint、neon-soft、nous、poseidon、sienna、sisyphus、slate、terracotta、verdigris、zeus;
  • 双轴外观模型(基础模式 + 皮肤),方便社区贡献主题;
  • Mermaid 图渲染(fit / 全屏工具栏);KaTeX 公式渲染(含 fence-before-math 修复);Prism.js 语法高亮(语言感知、YAML 换行保留);
  • Markdown 图片语法alt与内联MEDIA:token 渲染为<img>;纯 URL 自动链接;
  • 表格单元格内联 Markdown(粗体、斜体、代码、链接);代码块复制按钮;
  • 工具卡片展开/折叠;可折叠思考/推理卡片(Claude 扩展思考、o3 推理 token);
  • 消息时间戳(弱化显示、悬停完整日期);
  • 聊天头部(模型、图标、TPS 徽章、时间戳)随字号偏好缩放;
  • 空 composer 隐藏发送按钮(图标圆 + pop-in 动画);
  • 可插拔 Lucide SVG 图标(避免 emoji 渲染不一致);
  • Composer 中心化控制(v0.50.0 UI 改版);Hermes Control Center 模态框(集中操作);
  • 工作区面板状态机(默认关闭,浏览/预览时打开);三栏桌面布局在缩放时保持可读的对话区;
  • PWA manifest + service worker(离线壳);Favicon(SVG + PNG + ICO);品牌化引导向导。

21 皮肤在源码中可数清。static/boot.js 中的_SKINS数组恰好列出 21 项(Default、Ares、Mono、Graphite、GitHub、Codex、Terracotta、Slate、Poseidon、Sisyphus、Charizard、Sienna、Catppuccin、Hepburn、Nous、Neon、Neon Soft、Neon Paint、Geist Contrast、Zeus、Verdigris),每项携带三色调色板;_VALID_SKINS白名单负责校验。static/index.html 首屏内联脚本内置同一份皮肤白名单 + 旧主题名映射表(如 solarized → poseidon、nord → slate),在 CSS 加载前就完成主题/皮肤的防闪烁恢复——这就是"双轴外观模型"的运行时形态。

语音、移动端、国际化(Voice / Mobile / i18n)

语音:Web Speech API 语音输入(按住说话听写);免提语音模式(回合制对话,Settings → Preferences 选择性开启);响应 TTS 播放(可配置音色、语速、音调)。

移动端:汉堡侧边栏(滑入覆盖);底部导航栏(5 标签 iOS 风格);Files 侧滑面板(右栏转为 slide-over);44px 最小触控目标;composer 上的容器查询;Android Chrome 兼容修复;PWA 安装(manifest + 图标 + Android 支持);流式滚动加固(离屏高度保持、原生滚动锚定、iOS/Android 不跳顶);移动抽屉承载仪表盘链接与扩展导航动作。

国际化

  • 15 种语言——英语、意大利语、日语、俄语、西班牙语、德语、中文(zh + zh-Hant)、葡萄牙语、韩语、法语、捷克语、土耳其语、波兰语、越南语;
  • 非英语语言近乎全量翻译覆盖——新近加入的键留有少量英文回退尾巴(捷克语约 2%,土耳其语最多约 15%),由周期性翻译回填;
  • 键对齐(key-parity)测试保证每个语言包拥有全部键;
  • RTL 与 CJK 输入(IME 组合修复)。

从源码结构看,语言包全部集中在 static/i18n.js 的单一LOCALES对象中(enzhzh-Hant等各为独立键空间),这种"单文件全量语言包 + 键对齐测试"的结构正是 key-parity 守卫能成立的前提。

网关集成(Gateway Integration)

  • 侧边栏实时网关会话(Telegram、Discord、Slack、微信/Weixin、Signal、SMS),经 SSE + DB 轮询;
  • 跨渠道交接坞(handoff dock)——composer 停靠的浮层,摘要进行中的外部会话;
  • 10+ 轮次时生成转录摘要卡片;
  • 侧边栏按会话身份去重键(同平台不同聊天保持独立);
  • 网关会话同步对外部会话跳过复制/删除选项;
  • LLM Gateway 路由元数据展示——助手回合与会话元数据显示实际服务的模型/提供商、故障转移路径、模型切换警告(#732);
  • 设置中的网关状态卡片(#1457);网关审批运行 API 可选开启(已文档化)。

MCP 集成

  • MCP 服务器管理 UI(System Settings → MCP Servers);
  • MCP 服务器条目的添加/编辑/删除。

此外,仓库根目录还有一个常被忽视的实现细节:mcp_server.py 让Hermes WebUI 自身反向暴露为 MCP 服务器——通过 stdio 把项目管理与会话管理暴露为任何 MCP 兼容 agent 可调用工具,pip install "mcp>=1.28,<2"python3 mcp_server.py即启动,支持--profile指定 profile,并在config.yamlmcp_servers段注册。这与前瞻工作中"Native MCP server expose(#733)"候选项直接相关,可视为该方向的先行落地。

扩展系统(Extension System)

  • 选择性扩展加载器——服务本地静态资源、向应用壳注入同源 CSS/JS;
  • 从应用内画廊(Settings → Extensions)一键安装到 WebUI 管理的状态目录(不重启、不依赖环境变量);
  • 清单契约(extensions.json)用于捆绑/多扩展安装;
  • 能力面——注册自定义主题(皮肤)、注册自定义 TTS 引擎、添加导航动作、声明回环 sidecar、在 iframe 标签中嵌入外部 Web 应用;
  • 每扩展设置 schema + 自有存储;
  • 经同意的扩展 sidecar 代理路径(不开放任意后端路由注册);
  • 状态 + 诊断端点;
  • 信任模型已文档化——扩展运行在完整会话权限下;只安装审核过的/自研的
  • 带 CI 安全门的审核、带版本号的库仓库(hermes-webui 组织下的 hermes-webui-extensions 仓库,"进注册表 == 已审核");
  • 核心仓库捆绑零扩展——纯客户端扩展迁移到库仓库,不合并进核心。

分发(Distribution)

  • Docker 支持(多架构 amd64 + arm64、HEALTHCHECK、UID/GID 自动检测);
  • Two-container Docker compose(webui + agent);
  • GHCR 在 tag push 时自动发布;
  • 子路径挂载支持(反向代理部署在/hermes/下);
  • PWA 可从任意浏览器安装;
  • 原生 macOS 应用——Intel + Apple Silicon 通用、签名 + 公证 DMG、Sparkle 2 自动更新;
  • 原生 Windows + Linux + macOS 桌面应用——Rust/Tauri、每平台安装器;
  • 原生 Android 应用——可上架 Play 的 APK/AAB 发布;
  • 原生 iOS 应用——iPhone 客户端(经 Tailscale 连接)。

原生客户端矩阵:一服务器、全客户端

路线图的定位是"Web 应用是引擎,一组原生壳包裹它",让 Hermes 在每个平台都以真实应用形态运行。每个客户端各在自己的仓库,独立版本与发布节奏——没有任何一个是 WebUI 源码的 fork

客户端平台技术栈仓库
Hermes for MacmacOS(Intel + Apple Silicon)Swift + WKWebView、SSH 隧道、Sparkle 2 自动更新、签名 + 公证 DMGhermes-webui/hermes-swift-mac
Hermes DesktopWindows + Linux + macOSRust / Tauri(WebView2 / WebKitGTK)、每平台安装器hermes-webui/hermes-desktop-rust
Hermes for AndroidAndroid原生 Android、可上架 Play 的发布hermes-webui/hermes-android
Hermes for iOSiOS(iPhone)原生 Swift、经 Tailscale 连接(QR / 主机名配对)hermes-webui/hermes-swift-ios

"一台机器跑 WebUI,浏览器、桌面、手机都能到达"——各仓库的 Releases 页承载实时版本与发布说明,因此本表刻意不携带版本号(各仓库版本独立漂移)。这也解释了 前瞻工作 中"不做完整 SwiftUI/native 重写前端"的决策:WebView 壳已经拿到约 95% 的原生收益,维护成本却低一个量级。

自治项目维护(Autonomous Project Maintenance)

路线图披露了一个少见的维护模式:Hermes WebUI 由自治 agent 系统维护——入站 issue 与 PR 被自动 triage、深度评审(多模型门 + 完整测试套件 + 浏览器 QA)、发布、带署名关闭,几乎不需要人工引导。该系统的去项目化提炼已作为公开框架发布为StewardOS(nesquena/steward-os),包含角色、自治带(autonomy bands)、安全脊柱、issue/PR/质量门生命周期与可复用技能,且 harness 无关(不绑定特定 agent 运行时)。

路线图给出的因果链是:StewardOS 是泛化,WebUI 自身的操作规程是源头——这就是贡献者 PR 能获得当日深度评审、发布节奏达到每日多次的原因。这也解释了 CHANGELOG.md 中单版本包含大量带贡献者署名的修复条目的来源。

前瞻工作(Forward Work)

原始 forward-work 清单的大部分已经发布。剩下的分为"正在主动考虑的功能请求"与"明确推迟的概念"。Issue 状态会漂移,权威查询方式是gh issue list(对应当前仓库)。

候选项(正在主动考虑的功能请求)

主题追踪理由
轻量应用内 Canvas 编辑#1255用于 prompt 草稿 / 共享笔记的文本画布
Provider / Model 真源对齐#1240调和 WebUI vs CLI vs Gateway 的提供商解析
内置 SearXNG Web 搜索#1037轻量搜索工具,带开/关切换
退役LMSTUDIO_API_KEY旧环境变量#1502别名保留一个小版本周期后移除
原生 MCP server 暴露#733把 Hermes WebUI 作为 MCP server 供 agent 直接集成
Teams / agents 管理面板#719可编辑名称、角色、指派
WebUI profile ↔ Hermes 运行时模型对齐#749WebUI profile 与运行时模型之间的设计对齐
添加 agent / 替换模型模态框#698面向 agent + 模型管理的专用模态框

积压(推迟,列出以便可见)

  • Insights / 监控套件——数据标签页 / 实时集成(#722)、监控仪表盘概念(#721);
  • 代码执行内联单元格——聊天内的 Jupyter 风格单元格渲染;
  • 共享 / 公开会话 URL——需要带访问控制的托管后端(自托管场景超范围)。

明确不做(Intentionally Not Planned)

  • 前端完整 SwiftUI/native 重写——WebView 壳已拿到约 95% 的原生收益,维护成本却低得多;
  • 桌面应用上架 App Store——沙盒会破坏本地服务器模型;
  • 实时多人协作——整个项目基于单用户假设;
  • 多租户 / 白标托管——项目定位是单用户/多 profile,不是多租户;
  • Anthropic / Claude 专有功能(Projects AI 记忆、Claude artifacts 同步)——不可复现。

路线图还留了一条修正记录:插件/扩展市场曾经属于"明确不做"——这个缺口现在由扩展系统 + 审核库仓库补上了,在不引入重型依赖系统的前提下覆盖了定制化面。

冲刺历史(Sprint History)

逐版本细节在 CHANGELOG.md;下表是主要冲刺主题的高层编年史,单条 PR/修复细节保留在 CHANGELOG 中以保证本文件可读性:

范围主题亮点
Sprints 1–6基础 + 工作区server/static 拆分、JS 模块拆分、工作区 CRUD、文件编辑器、消息队列 + INFLIGHT、隔离测试环境
Sprint 7Wave 2 核心Cron / 技能 / 记忆 CRUD、会话内容搜索、健康端点、git 初始化
Sprint 8日常驱动完成线编辑 + 重新生成、重新生成最后回复、清空对话、Prism.js、队列 + INFLIGHT 打磨
Sprints 9–10代码库健康 + 运维打磨app.js→ 6 个模块、server.py →api/模块、工具卡片 UX、后台任务取消、回归测试
Sprint 11多提供商模型 + 流式动态模型下拉、平滑滚动钉住、路由抽取到api/routes.py
Sprint 12设置 + 可靠性 + 会话 QoL设置面板、SSE 自动重连、会话置顶、JSON 导入
Sprint 13提醒 + 打磨Cron 提醒、后台错误横幅、会话复制、浏览器标签标题
Sprint 14视觉打磨 + 工作区操作Mermaid、消息时间戳、文件重命名、文件夹创建、会话标签、归档
Sprint 15会话项目 + 代码复制项目/文件夹、代码复制按钮、工具卡片展开/折叠
Sprint 16侧边栏视觉打磨SVG 图标、操作下拉、置顶指示、项目边框、安全 HTML 渲染
Sprint 17工作区打磨 + 斜杠命令面包屑导航、斜杠命令自动补全、发送键设置(#26)
Sprint 18思考展示 + 工作区树文件预览自动关闭、思考/推理卡片、可展开目录树(#22)
Sprint 19认证 + 安全加固密码认证、登录页、安全头、body 限制(#23)
Sprint 20语音输入 + 发送按钮Web Speech API 语音、发送按钮打磨
Sprint 21移动响应式 + Docker汉堡侧边栏、移动导航、slide-over 文件、Docker 支持(#21、#7)
Sprint 22多 profile 支持Profile 选择器、管理面板、无感切换、每会话追踪(#28)
Sprint 23agent 透明度Token / 成本展示、子 agent 卡片、cron 中的技能选择器、profile 本地存储
Sprint 24Web 打磨rAF 流式、git 检测、可折叠日期分组、上下文圆环(#80–#83)
Sprint 25macOS 桌面应用原生 Swift + WKWebView 壳、通用 DMG、Sparkle 2 自动更新
Sprint 26可插拔主题Light / Slate / Solarized / Monokai / Nord、设置未保存变更守卫、/theme
Sprint 27主题打磨30+ 硬编码颜色 → CSS 变量、亮色主题最终打磨
Sprint 28安全加固环境变量竞态修复、随机签名密钥、上传穿越、PBKDF2
Sprints 29–32模型路由 + 自定义端点 + 推理按提供商前缀的模型路由、自定义端点 URL 修复、OLED 主题、顶层推理、message_count 同步
Sprint 33审批卡片 + Lucide 图标审批提示浮出、emoji → SVG、登录 CSP 修复、更新诊断
Sprint 34v0.50.0 UI 改版Composer 中心化控制、Control Center 模态框、工作区状态机、可折叠日期分组、rAF 节流、上下文圆环
Sprints 35–37引导 + i18n首运行向导、提供商配置、西班牙语语言包、Docker 双容器、移动端 Profile 按钮
Sprints 38–40会话 + UI 打磨五 bug 清理、侧边栏时间戳、测试端口隔离
Sprints 41–42渲染器加固 + KaTeX + 交接上下文圆环实时用量、renderMd 链接/图片/代码暂存链、MEDIA: 图片渲染、网关交接基础
Sprints 43+持续贡献者冲刺自定义提供商、更多语言包、IME 修复、模型切换 toast、审批队列多槽位、profile 打磨、字号 CSS、贡献者波次
Ongoing生态扩张 + 可靠性扩展系统 + 库、Rust/Android/iOS 原生客户端、StewardOS、网关平台扩张(Signal/SMS/WeChat)、Transparent Stream、移动滚动加固、会话加载性能、测试隔离 flake 消除

版本约定(Versioning Conventions)

路线图定义了明确的语义化版本规则:

  • Patchv0.51.X)——小批量、贡献者 PR 发布、热修复;
  • Minorv0.X.0)——冲刺完成、新功能面、架构里程碑;
  • Majorv1.0.0)——在功能面稳定且所有客户端的可靠性达到稳态时宣布。

逐版本细节与贡献者署名在 CHANGELOG.md。

小结

ROADMAP.md 的信息量集中体现在三点:状态快照回答"现在做到哪了"(12 个产品面全绿,重心已转向可靠性与分发);功能对齐清单回答"具体包含什么"(20 余个维度逐项可核对);前瞻工作回答"边界在哪里"(8 个候选项、3 个推迟项、5 条明确的"不做")。配合 ARCHITECTURE.md 的模块地图与 CHANGELOG.md 的版本细节,以及 tests/_pytest_port.py、Dockerfile、static/boot.js、mcp_server.py 等可直接核对的源码证据,构成了一份少见的"承诺—实现—证据"三层自洽的项目规划文档。对读者而言,它既是 Hermes WebUI 能力边界的事实清单,也是"薄 Python 服务端 + 原生 JS + 多端壳 + 自治维护"这套架构取舍的完整陈述。

【免费下载链接】hermes-webuiHermes WebUI: The best way to use Hermes Agent from the web or from your phone!项目地址: https://gitcode.com/GitHub_Trending/he/hermes-webui

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询