模型 / 数据集
EKKOLearnAI/hermes-studio avatar
EKKOLearnAI/hermes-studio

hermes-studio 实测评估:一个把五个 Agent 运行时塞进同一块画布的 Web 控制台

Web dashboard for Hermes Agent — multi-platform AI chat, session management, scheduled jobs, usage analytics

11,091 个 Star1,351 个 ForkTypeScriptNOASSERTION

秒懂

它是什么?
hermes-studio 把自己定位成 Hermes Agent 的 Web 仪表盘,实际是一个能协调 Hermes、Ekko、Claude Code、Codex 与 Pi 五种运行时的本地优先工作台。它用一套会话数据库和统一 API 前缀来管理多平台渠道,但边界划分和安装方式里藏着不少需要先想清楚的取舍。
适合谁用?
适合已经以 Hermes 为主 Agent、同时想在同一界面里跑 Claude Code 或 Codex 做编码任务,并且愿意接受本地 SQLite 会话库与 Hermes 自身 state.db 分离这一事实的团队。不适合那些只想要一个纯聊天前端、不想理解 Agent 家族边界的人,因为 hermes-studio 明确说自己不是第六个 Agent,而是共享平台,任何跨运行时操作都需要你先弄清楚能力归谁所有。
能商用吗?
请先确认。这个仓库使用的许可证不在我们自动归类的范围内,商用前请阅读仓库里的 LICENSE 文件。
还在维护吗?
在维护。仓库最近一次提交在 1 天前。
用什么语言写的?
主要是 TypeScript(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决的痛点是 Agent 碎片化,而不是聊天本身

聊天界面到处都是,hermes-studio 真正想解决的问题是另一个:当你的日常工作流里同时存在 Hermes、Ekko、Claude Code、Codex 和 Pi 时,每个运行时都有自己的会话、配置、记忆和渠道接入方式,你被迫在多个终端和网页之间来回切换。这个项目的回应是做一个本地优先的工作台,把五种运行时的会话、工具调用轨迹、生成文件预览和调度任务收进同一块画布。注意它的自我定位,README 反复强调它不是第六个 Agent,而是共享产品平台。这个区分很重要,它意味着你不应该期待它对 Hermes 的记忆或技能做深度管理,那些能力仍然归 Hermes 自己所有,Studio 只负责展示和协调。目标用户是已经选定 Hermes 作为主力、但编码任务想交给 Claude Code 或 Codex 的开发者,以及需要把 Telegram、Discord、Slack 等多平台消息统一接入同一套 Agent 后端的团队。

API 前缀划分是你理解这个项目的第一把钥匙

看仓库结构最容易误解的地方是它如何处理 Agent 之间的边界。README 给了一个硬性规则:Studio 拥有的 HTTP API 走 /api/studio/*,Hermes 拥有的控制面 API 走 /api/hermes/*。这不是随意的命名习惯,而是架构承诺。会话、文件上传、语音、主题、设备发现这些跨运行时共用的能力归 Studio,而 profiles、providers、memory、skills、plugins、jobs、Kanban 这些 Hermes 自己的状态管理仍然由 Hermes 模块负责。这意味着当你修改一个 Hermes profile 时,请求打到的是 Hermes 的 API,而不是 Studio 自己存一份副本。这种设计降低了重复实现的风险,但也把问题推给了调用方,你必须清楚某个操作到底属于哪个命名空间。对于只想聊天的用户这是负担,对于要扩展的开发人员这反而是清晰的契约。

自建 SQLite 会话库是有意为之的隔离

会话管理是另一个值得注意的设计决定。Studio 没有直接读写 Hermes 的 state.db,而是建了一个本地 SQLite 会话数据库,专门存 Studio 自己的会话。Hermes 的 state.db 在这里变成了只读来源,只用于 Hermes 历史 API 的查询。这个隔离带来的直接后果是搜索功能有盲区:README 明确写了 Ctrl+K 搜索只覆盖 Studio 本地会话库,只读的 Hermes 历史会话不在搜索结果里。如果你习惯用全局搜索翻旧对话,这个限制会很快让你碰壁。但隔离也有好处,Studio 的会话可以按来源分组,Telegram、Discord、Slack 各自折叠成手风琴式列表,活动会话置顶并显示 spinner,排序依据是最新消息时间。这些交互细节都建立在 Studio 自己掌控数据的前提上,如果直接依赖 Hermes 的库,改动权限和频率都会受制于人。

十个平台渠道的配置落盘位置值得记住

渠道接入是 README 里信息密度最高的部分。Telegram、Discord、Slack、WhatsApp、Matrix、飞书、钉钉、QQBot、微信、企业微信,十个平台在一页里统一配置。凭据写入 ~/.hermes/.env,行为设置写入 ~/.hermes/config.yaml,这个落盘位置意味着渠道配置与 Hermes 共享同一份环境文件,而不是 Studio 单独维护。微信的接入方式是扫码登录,浏览器里扫完自动保存凭据,这与 QQBot 需要 App ID 和 Secret 的流程完全不同。每个平台支持的细节差异也很大,Discord 有自动线程和频道允许忽略列表,Matrix 有 DM 提及线程,Slack 要单独处理 bot 消息。如果你只接 Telegram 和 Discord,这个统一页面确实省事。但如果你要接十个平台,每个平台的提及控制、反应机制和行为开关都不一样,配置页的统一只做到了入口统一,没有做到语义统一。

启动方式有三种,但 README 没有交代它们的差异

安装入口有三个:桌面应用、npm 全局包和 Docker 镜像。README 给出的 npm 命令是 npm install -g hermes-web-ui && hermes-web-ui start,桌面版从 GitHub Releases 下载,Docker 镜像没有给出具体 compose 文件或运行命令。这里有一个明显的空白,三种分发方式在会话存储、文件下载路径解析和渠道连接上是否完全等价,材料里没有说明。尤其是文件下载功能,README 提到要按解析路径跨 local、Docker、SSH 和 Singularity 后端下载,这说明 Studio 意识到运行环境会影响路径解析。但如果你用 Docker 跑 Studio,挂载卷的方式会直接决定 ~/.hermes/.env 和 SQLite 库能否被正确读写,这个坑在 README 里没有预警。桌面应用和 npm CLI 包在 Windows、macOS、Linux 上的行为差异也没有任何说明。

实时聊天走 Socket.IO,但调度与工作流的细节被截断了

聊天流式传输的实现路径是明确的,README 说实时聊天通过 Socket.IO 的 /chat-run 事件完成,Studio 通过 runtime adapters 把每次运行分发给 Hermes、Ekko、Claude Code、Codex 或 Pi。这个 adapter 模式是理解扩展性的关键,新增一个运行时理论上只需要写一个 adapter。工具调用的参数和结果可以展开查看,生成的文件支持内联预览,HTML、PDF、DOCX、PPTX、XLSX、CSV、图片、Markdown 和源码文件都在列。但材料在视觉工作流部分被截断了,只提到 Vue Flow 画布覆盖五种运行时,后面关于节点类型、连线规则、审批门槛如何映射到实际 Agent 调用的内容全部缺失。定时任务部分只给了 cron 的增删改查和立即执行能力,没有说明任务定义是存到 Hermes 的 jobs 模块还是 Studio 自己管理。这两块恰好是自动化最核心的部分,信息不全意味着你在评估时不能假设它们开箱即用。

Usage 统计的价值取决于你信不信它的估算

用量分析页提供输入与输出 token 拆分、会话数与日均值、预估成本、缓存命中率、模型分布图和 30 天趋势。这里最需要警惕的词是预估成本。成本数字依赖模型单价表,而模型单价表是否随新模型更新、是否区分不同 provider 的加价,README 没有交代。缓存命中率同样是个容易被误读的指标,它反映的是 provider 侧的 prompt caching,不是 Studio 自己的效率。如果你是重度用户,这个页面能帮你快速看出哪个模型在烧钱。但如果你拿它做财务决策,最好只把它当趋势参考,别当账单。模型选择器是 profile 感知的,只显示当前登录账户通过授权 Hermes profiles 能发现的模型,这个设计比硬编码模型列表更合理,因为不同 profile 的 provider 权限可能差异很大。

许可证不明是采用前必须自己查清的障碍

仓库的许可证字段是 NOASSERTION,npm 徽章指向的 LICENSE 文件在 README 里被截断了,没法确认是 MIT、Apache 还是其他条款。这对个人用户可能无所谓,但对公司来说是个实际阻碍。你无法从材料里得知能否把 hermes-studio 嵌入自己的商业产品,也不知道修改后是否需要开源。另一个维护层面的信号是版本节奏,v1.0.2 发布于 2026-09-09,而 v0.7.18 和 v0.7.17 分别在其前三天和五天,说明项目正处于快速迭代期。快速迭代意味着 API 可能不稳定,尤其是 /api/hermes/* 这类控制面接口如果随 Hermes 版本变动,你的自定义集成就要跟着改。如果你打算基于它做二次开发,先锁定一个版本,别追最新。

编辑结论

适合已经以 Hermes 为主 Agent、同时想在同一界面里跑 Claude Code 或 Codex 做编码任务,并且愿意接受本地 SQLite 会话库与 Hermes 自身 state.db 分离这一事实的团队。不适合那些只想要一个纯聊天前端、不想理解 Agent 家族边界的人,因为 hermes-studio 明确说自己不是第六个 Agent,而是共享平台,任何跨运行时操作都需要你先弄清楚能力归谁所有。采用前要验证三件事:第一,你的 Hermes 版本是否与 v1.0.2 要求的 API 路径兼容,尤其是 /api/hermes/* 控制面接口;第二,Docker 镜像与 npm CLI 包在会话存储和文件下载路径解析上是否行为一致,因为 README 提到文件解析要跨 local、Docker、SSH 与 Singularity 后端;第三,你需要的平台渠道是否在十个支持列表内,WeChat 的扫码登录与 QQBot 的 App ID 配置方式完全不同。这个项目边界清晰,但边界本身就是要你付出的学习成本。

官方来源

  1. EKKOLearnAI/hermes-studio on GitHub
  2. Issues
  3. Project website
  4. README
  5. Releases
社区笔记

社区笔记