> 原文链接:Web Dashboard
sidebar_position: 15 title: "Web Dashboard" description: "Browser-based dashboard for managing configuration, API keys, sessions, logs, analytics, cron jobs, and skills"
Web Dashboard(Web 仪表盘)
Web 仪表盘是一个基于浏览器的 UI,用于管理 Hermes Agent 安装。你可以通过整洁的 Web 界面配置设置、管理 API 密钥和监控会话,而无需编辑 YAML 文件或运行 CLI 命令。
快速开始
hermes dashboard
这会启动一个本地 Web 服务器并在浏览器中打开 http://127.0.0.1:9119。仪表盘完全在你的机器上运行——不会将数据发送到 localhost 以外。
选项
| 标志 | 默认值 | 描述 |
|---|---|---|
--port | 9119 | Web 服务器运行的端口 |
--host | 127.0.0.1 | 绑定地址 |
--no-open | — | 不自动打开浏览器 |
# 自定义端口
hermes dashboard --port 8080
# 绑定到所有接口(在共享网络上谨慎使用)
hermes dashboard --host 0.0.0.0
# 启动但不打开浏览器
hermes dashboard --no-open
前置条件
Web 仪表盘需要 FastAPI 和 Uvicorn。使用以下命令安装:
pip install hermes-agent[web]
如果你使用 pip install hermes-agent[all] 安装,Web 依赖项已经包含在内。
当你在未安装依赖项的情况下运行 hermes dashboard 时,它会告诉你需要安装什么。如果前端尚未构建且 npm 可用,它会在首次启动时自动构建。
页面
状态
首页显示安装的实时概览:
- Agent 版本和发布日期
- Gateway 状态 — 运行中/已停止、PID、已连接的平台及其状态
- 活跃会话 — 最近 5 分钟内活跃的会话数量
- 最近会话 — 20 个最近会话的列表,包含模型、消息数量、Token 使用量和对话预览
状态页面每 5 秒自动刷新。
配置
基于表单的 config.yaml 编辑器。所有 150+ 个配置字段从 DEFAULT_CONFIG 自动发现,并组织到选项卡分类中:
- model — 默认模型、Provider、基础 URL、推理设置
- terminal — 后端(local/docker/ssh/modal)、超时、Shell 偏好
- display — 皮肤、工具进度、恢复显示、旋转器设置
- agent — 最大迭代次数、Gateway 超时、服务层级
- delegation — 子 Agent 限制、推理强度
- memory — Provider 选择、上下文注入设置
- approvals — 危险命令审批模式(ask/yolo/deny)
- 以及更多 — config.yaml 的每个部分都有对应的表单字段
具有已知有效值(终端后端、皮肤、审批模式等)的字段呈现为下拉菜单。布尔值呈现为开关。其他所有字段为文本输入。
操作:
- 保存 — 立即将更改写入
config.yaml - 重置为默认值 — 将所有字段恢复为默认值(在点击保存之前不会保存)
- 导出 — 将当前配置下载为 JSON
- 导入 — 上传 JSON 配置文件以替换当前值
:::tip 提示
配置更改在下次 Agent 会话或 Gateway 重启时生效。Web 仪表盘编辑的 config.yaml 文件与 hermes config set 和 Gateway 读取的是同一个文件。
:::
API 密钥
管理存储 API 密钥和凭据的 .env 文件。密钥按类别分组:
- LLM Provider — OpenRouter、Anthropic、OpenAI、DeepSeek 等
- 工具 API 密钥 — Browserbase、Firecrawl、Tavily、ElevenLabs 等
- 消息平台 — Telegram、Discord、Slack Bot Token 等
- Agent 设置 — 非秘密环境变量,如
API_SERVER_ENABLED
每个密钥显示:
- 当前是否已设置(带有脱敏预览值)
- 用途说明
- 指向 Provider 注册/密钥页面的链接
- 用于设置或更新值的输入字段
- 删除按钮
高级/很少使用的密钥默认隐藏在切换开关后面。
会话
浏览和检查所有 Agent 会话。每行显示会话标题、来源平台图标(CLI、Telegram、Discord、Slack、Cron)、模型名称、消息数量、工具调用次数和上次活跃时间。活跃会话标有脉冲徽章。
- 搜索 — 使用 FTS5 对所有消息内容进行全文搜索。结果显示高亮片段,展开时自动滚动到第一条匹配消息。
- 展开 — 点击会话加载其完整消息历史。消息按角色(用户、助手、系统、工具)颜色编码,并以带语法高亮的 Markdown 渲染。
- 工具调用 — 带有工具调用的助手消息显示可折叠块,包含函数名和 JSON 参数。
- 删除 — 使用垃圾桶图标删除会话及其消息历史。
日志
查看 Agent、Gateway 和错误日志文件,支持过滤和实时追踪。
- 文件 — 在
agent、errors和gateway日志文件之间切换 - 级别 — 按日志级别过滤:ALL、DEBUG、INFO、WARNING 或 ERROR
- 组件 — 按来源组件过滤:all、gateway、agent、tools、cli 或 cron
- 行数 — 选择显示行数(50、100、200 或 500)
- 自动刷新 — 切换实时追踪,每 5 秒轮询新日志行
- 颜色编码 — 日志行按严重程度着色(红色表示错误,黄色表示警告,暗色表示调试)
分析
从会话历史计算的使用量和费用分析。选择时间段(7、30 或 90 天)查看:
- 汇总卡片 — 总 Token 数(输入/输出)、缓存命中率、总估计或实际费用、总会话数及日均
- 每日 Token 图表 — 堆叠柱状图显示每天输入和输出 Token 使用量,悬停工具提示显示明细和费用
- 每日明细表 — 每天的日期、会话数、输入 Token、输出 Token、缓存命中率和费用
- 按模型明细 — 显示每个使用的模型及其会话数、Token 使用量和估计费用的表格
定时任务
创建和管理定时 Cron 任务,按重复计划运行 Agent Prompt。
- 创建 — 填写名称(可选)、Prompt、Cron 表达式(如
0 9 * * *)和交付目标(local、Telegram、Discord、Slack 或 email) - 任务列表 — 每个任务显示名称、Prompt 预览、计划表达式、状态徽章(enabled/paused/error)、交付目标、上次运行时间和下次运行时间
- 暂停 / 恢复 — 在活动和暂停状态之间切换任务
- 立即触发 — 在正常计划之外立即执行任务
- 删除 — 永久删除 Cron 任务
技能
浏览、搜索和切换技能和工具集。技能从 ~/.hermes/skills/ 加载并按类别分组。
- 搜索 — 按名称、描述或类别过滤技能和工具集
- 类别过滤 — 点击类别标签缩小列表范围(如 MLOps、MCP、红队、AI)
- 切换 — 用开关启用或禁用单个技能。更改在下次会话时生效。
- 工具集 — 单独的部分显示内置工具集(文件操作、Web 浏览等)及其活动/非活动状态、设置要求和包含的工具列表
:::warning 安全警告
Web 仪表盘会读写你的 .env 文件,其中包含 API 密钥和秘密。它默认绑定到 127.0.0.1——只能从你的本地机器访问。如果你绑定到 0.0.0.0,你网络上的任何人都可以查看和修改你的凭据。仪表盘本身没有任何身份验证。
:::
/reload 斜杠命令
仪表盘 PR 还向交互式 CLI 添加了 /reload 斜杠命令。在通过 Web 仪表盘(或直接编辑 .env)更改 API 密钥后,在活动的 CLI 会话中使用 /reload 无需重启即可获取更改:
You → /reload
Reloaded .env (3 var(s) updated)
这会将 ~/.hermes/.env 重新读取到运行进程的环境中。当你通过仪表盘添加了新的 Provider 密钥并想立即使用时非常有用。
REST API
Web 仪表盘暴露了前端使用的 REST API。你也可以直接调用这些端点进行自动化:
GET /api/status
返回 Agent 版本、Gateway 状态、平台状态和活跃会话数。
GET /api/sessions
返回 20 个最近会话及其元数据(模型、Token 数量、时间戳、预览)。
GET /api/config
返回当前 config.yaml 内容的 JSON。
GET /api/config/defaults
返回默认配置值。
GET /api/config/schema
返回描述每个配置字段的 Schema——类型、描述、类别和适用的选择选项。前端使用此信息为每个字段渲染正确的输入控件。
PUT /api/config
保存新配置。请求体:{"config": {...}}。
GET /api/env
返回所有已知环境变量及其设置/未设置状态、脱敏值、描述和类别。
PUT /api/env
设置环境变量。请求体:{"key": "VAR_NAME", "value": "secret"}。
DELETE /api/env
删除环境变量。请求体:{"key": "VAR_NAME"}。
GET /api/sessions/{session_id}
返回单个会话的元数据。
GET /api/sessions/{session_id}/messages
返回会话的完整消息历史,包括工具调用和时间戳。
GET /api/sessions/search
跨消息内容的全文搜索。查询参数:q。返回匹配的会话 ID 及高亮片段。
DELETE /api/sessions/{session_id}
删除会话及其消息历史。
GET /api/logs
返回日志行。查询参数:file(agent/errors/gateway)、lines(数量)、level、component。
GET /api/analytics/usage
返回 Token 使用量、费用和会话分析。查询参数:days(默认 30)。响应包括每日明细和按模型的聚合数据。
GET /api/cron/jobs
返回所有配置的 Cron 任务及其状态、计划和运行历史。
POST /api/cron/jobs
创建新的 Cron 任务。请求体:{"prompt": "...", "schedule": "0 9 * * *", "name": "...", "deliver": "local"}。
POST /api/cron/jobs/{job_id}/pause
暂停 Cron 任务。
POST /api/cron/jobs/{job_id}/resume
恢复已暂停的 Cron 任务。
POST /api/cron/jobs/{job_id}/trigger
在正常计划之外立即触发 Cron 任务。
DELETE /api/cron/jobs/{job_id}
删除 Cron 任务。
GET /api/skills
返回所有技能及其名称、描述、类别和启用状态。
PUT /api/skills/toggle
启用或禁用技能。请求体:{"name": "skill-name", "enabled": true}。
GET /api/tools/toolsets
返回所有工具集及其标签、描述、工具列表和活动/已配置状态。
CORS
Web 服务器将 CORS 限制为仅 localhost 来源:
http://localhost:9119/http://127.0.0.1:9119(生产环境)http://localhost:3000/http://127.0.0.1:3000http://localhost:5173/http://127.0.0.1:5173(Vite 开发服务器)
如果你在自定义端口上运行服务器,该来源会自动添加。
开发
如果你要为 Web 仪表盘前端贡献代码:
# 终端 1:启动后端 API
hermes dashboard --no-open
# 终端 2:启动带 HMR 的 Vite 开发服务器
cd web/
npm install
npm run dev
http://localhost:5173 的 Vite 开发服务器会将 /api 请求代理到 http://127.0.0.1:9119 的 FastAPI 后端。
前端使用 React 19、TypeScript、Tailwind CSS v4 和 shadcn/ui 风格的组件构建。生产构建输出到 hermes_cli/web_dist/,由 FastAPI 服务器作为静态 SPA 提供。
更新时自动构建
当你运行 hermes update 时,如果 npm 可用,Web 前端会自动重建。这保持仪表盘与代码更新同步。如果未安装 npm,更新会跳过前端构建,hermes dashboard 会在首次启动时构建它。