Hermes 控制台
为 Hermes AI 智能体栈提供自托管的密码门禁式 Web 控制面板与运维控制面。
按维度查看评分与理由
README 声称具备 CSP、CSRF、速率限制、RBAC、路径遍历防护等安全特性,但未提供具体实现代码或配置证据;权限模型(20 权限/3 角色)仅以文字描述,无法验证最小权限是否真正落实。敏感数据处理(密码、会话密钥)仅提及 bcrypt 和随机字符串,缺乏密钥管理、日志脱敏等细节。依赖安全方面,package.json 列出多个依赖但无审计报告或版本锁定策略。外部效应(MCP 控制、文件编辑、终端)缺乏确认机制或回滚说明。来源归属仅指向 GitHub 仓库,发布者身份未经验证。整体证据薄弱,仅能给予 1 分。
README 与 package.json 版本号不一致(3.6.1 vs 3.6.2),存在自洽性问题。依赖可用性方面,未提供锁文件或依赖解析策略,且 postinstall 脚本重建 better-sqlite3 可能因环境差异失败。失败消息处理未在文档中说明,测试文件仅覆盖前端工具函数和模态框,未涉及错误处理路径。因此可靠性证据不足,仅得 1 分。
README 描述了面向 Hermes 代理栈的多种使用场景(聊天、文件管理、MCP 控制等),但未明确说明适用边界或限制条件。触发精度方面,未定义代理触发条件或输入验证规则。环境适配仅提及 Node.js 20+ 和 Hermes CLI,缺乏对操作系统、资源要求或网络配置的详细说明。因此适应性证据有限,仅得 1 分。
信息架构通过 README 的表格和文档链接有所体现,但文档内容未在本次审查中提供,无法验证完整性。安装说明提供了快速启动步骤,但生产部署细节依赖外部文档。命名稳定性方面,版本号不一致暗示命名或版本管理可能不稳定。示例和 FAQ 在 README 中有所包含,但缺乏深度。已知限制未明确列出。许可证为 MIT,内容完整,给予 2 分。版本变更日志未提供,维护责任未明确(发布者未验证)。整体惯例得分较低。
输出可用性方面,README 展示了丰富的功能界面和截图,但未提供实际输出示例或用户反馈。边际价值在于为 Hermes 代理提供统一管理界面,但缺乏与替代方案的对比或量化收益。成本效益未讨论资源消耗或部署成本。因此有效性证据不足,仅得 1 分。
README 中的声明(如安全特性、性能提升)缺乏可追溯的代码引用或测试证据。交叉来源验证方面,仅有的测试文件覆盖范围有限,无法 corroborate 主要功能声明。事实与推断分离方面,文档混合了事实描述和营销语言,难以区分。因此可验证性得分较低,仅得 1 分。
- 发布者身份未经验证,无法确认维护责任和更新路径。
- 版本号在 README 和 package.json 中不一致,可能影响依赖管理和部署。
- 安全特性仅停留在文档声明,缺乏实现代码或配置证据,实际防护效果未知。
- 依赖项未提供锁文件或审计报告,存在供应链风险。
- 测试覆盖范围有限,主要集中在前端工具函数,未验证核心后端功能。
这个 Agent 能做什么,适合哪些场景?
Hermes Control Interface(HCI)是 Hermes AI agent 栈的自托管 Web 控制台,版本 3.6.1,采用 MIT 许可。后端为单体 Express 服务(server.js,约 6000+ 行),前端是 Vanilla JS + Vite 的 11 页单页应用,通过 WebSocket 与 xterm.js 实现浏览器终端和实时对话流,用 Chart.js 绘制用量图表、better-sqlite3 读取 kanban.db。它把智能体配置、网关生命周期、文件浏览与编辑、cron 任务、MCP 服务器控制、token 用量分析和 Office v3 三面板蜂群监控集中在同一个密码门禁之后,并内置 CSP、CSRF、全局限流、WebSocket RBAC 和 20 项权限 / 3 种角色(admin、viewer、custom)的访问控制。部署边界很明确:HCI 必须与 Hermes Agent 安装在同一台机器上,且依赖 PATH 中的 hermes CLI,默认监听端口 10274。它不替代 Hermes 本身,而是作为本地运维与可观测层存在。
HCI 读取 ~/.hermes 状态目录(可通过 HERMES_CONTROL_HOME 覆盖)下的 config.yaml、日志与 skills,解析 kanban.db 获取任务流水线,并在浏览器里暴露 30+ 条 REST 路由:GET /api/office/kanban 返回看板任务与依赖链接,GET /api/office/kanban/:id 返回任务详情、运行历史、事件与评论,GET /api/office/kanban/:id/workspace-file 读取工作区代码与日志文件,POST /api/office/kanban/:id/action 执行 done/start/reopen 等快捷操作,GET /api/office/agent-states 输出智能体健康网格。它调用 hermes CLI 获取智能体状态、启停网关、管理 profile 与 skills,通过 WebSocket 网关 API 转发实时聊天流与工具调用卡片(含可折叠 JSON 视图、停止按钮、会话恢复与从消息分叉)。MCP 页面作为控制平面提供列表、启动、停止、重启、日志 tail 与配置编辑,共 11 条 REST 路由。Monitor 页展示网关日志与 CPU/RAM 指标,Usage 页做 token 趋势、成本预测与预算告警,Maintenance 页负责备份、恢复、HCI 自更新与系统诊断。
- 个人开发者在一台 VPS 上同时跑多个 Hermes profile,希望通过一个浏览器页面切 profile 聊天、看会话、管 cron,而不必反复 SSH。
- 小型多智能体团队(如社群运营、内容团队)需要用 createUser('cx-team','password','custom',['jorah']) 这类 allowed_profiles 限制每位成员只能看到并操作被授权的智能体。
- 需要随时启停与排障 MCP 服务器的运维人员,用 MCP 页面在线看日志 tail、改配置文件、重启进程,无需登录服务器。
- 关注 token 成本的项目负责人,用 Usage 页的每日趋势、成本预测与预算告警评估智能体使用开销。
- 跑蜂群流水线的团队,用 Office v3 的三面板(智能体健康、8 状态看板、实时事件流)跟踪 triage 到 done 的任务进度与依赖关系。
- 希望把控制台装成 PWA 的移动场景用户,在手机主屏一键打开离线缓存的仪表盘查看系统健康。
这个 Agent 有哪些优点和局限?
- 把浏览器终端(xterm.js)、文件浏览编辑、聊天、cron、MCP 控制、日志与 token 分析收进单个密码门禁的 11 页 SPA,减少多工具切换。
- Office v3 采用零子进程的智能体状态获取(约 100ms 对比 3000ms),直接读 config.yaml 与 kanban.db。
- 安全面较完整:无 unsafe-eval 的 CSP、所有变更端点的 CSRF、全局与聊天限流、WebSocket RBAC、路径穿越与 XSS 防护。
- 提供 allowed_profiles 的 profile 级访问隔离与 requireProfileAccess 中间件,多智能体团队可按人授权。
- 支持 PWA 安装与 service worker 离线缓存,并带新版本自动更新。
- 强绑定 Hermes Agent:必须与 Hermes 装在同一台机器且 hermes CLI 在 PATH 中,无法独立或跨主机部署。
- server.js 是约 6000+ 行的单体文件,二次开发与审计的认知成本高。
- 凭据以环境变量明文配置在 .env 中,README 未说明密钥轮换或外部密钥管理方案。
- 仓库未提供 Docker 镜像或容器化部署路径,生产化依赖自行搭建 nginx 与 systemd。
- 未给出并发规模、权限边界之外的租户隔离或安全审计日志的公开证据,企业级合规需自行评估。
如何安装或部署这个 Agent?
前提:Node.js 20+,同一台机器上已安装 Hermes Agent 且 hermes CLI 在 PATH 中。
git clone https://github.com/xaspx/hermes-control-interface.git
cd hermes-control-interface
cp .env.example .env # 设置 HERMES_CONTROL_PASSWORD 与 HERMES_CONTROL_SECRET
npm install && npm run build
node server.js # → http://localhost:10274环境变量:HERMES_CONTROL_PASSWORD(登录密码,bcrypt 哈希)、HERMES_CONTROL_SECRET(会话密钥,随机字符串)、PORT(默认 10274)、HERMES_CONTROL_HOME(默认 ~/.hermes)、HERMES_PROJECTS_ROOT(默认仓库上级目录)。生产环境的 nginx、systemd、Cloudflare 配置见 docs/INSTALL.md。
如何使用这个 Agent?
启动 node server.js 后访问 http://localhost:10274,用 HERMES_CONTROL_PASSWORD 登录。左侧导航进入各页面:Chat 走 WebSocket 实时流式对话并支持多 profile 切换与工具调用卡片;Workspace 将 Hermes 限定在某个项目目录内浏览、编辑文件并对话;Agents 做 profile CRUD 与网关生命周期管理;Office 查看智能体健康、看板与实时事件流;Monitor 看网关日志与 CPU/RAM;Usage 看 token 趋势与预算告警;MCP 启停服务器并 tail 日志;Maintenance 做备份、恢复与自更新。命令行更新:git pull upstream main && npm install && npm run build,然后执行 systemctl restart <你的 HCI 服务名>。