Перейти к содержанию

Dashboard

На этой странице Веб-панель управления — это браузерный интерфейс для управления вашей установкой Hermes Agent. Вместо редактирования YAML-файлов или выполнения CLI-команд вы можете настраивать параметры, управлять API-ключами и отслеживать сеансы через чистый веб-интерфейс.

Быстрый старт

[code] hermes dashboard

[/code] Это запускает локальный веб-сервер и открывает http://127.0.0.1:9119 в вашем браузере. Панель управления работает полностью на вашей машине — никакие данные не покидают localhost.

Параметры

Флаг По умолчанию Описание
--port 9119 Порт для запуска веб-сервера
--host 127.0.0.1 Адрес привязки
--no-open Не открывать браузер автоматически
--insecure выкл. Разрешить привязку к хостам, отличным от localhost (ОПАСНО — открывает API-ключи в сети; используйте с файрволом и надёжной аутентификацией)
--tui выкл. Включить вкладку Чата в браузере (встроенный hermes --tui через PTY/WebSocket). Можно также установить HERMES_DASHBOARD_TUI=1.
[code]
# Пользовательский порт
hermes dashboard --port 8080
# Привязка ко всем интерфейсам (с осторожностью в общих сетях)  
hermes dashboard --host 0.0.0.0

# Запуск без открытия браузера  
hermes dashboard --no-open

[/code]

Предварительные требования

Стандартная установка hermes-agent не включает HTTP-стек или PTY-помощник — это опциональные дополнения. Для веб-панели нужны FastAPI и Uvicorn (дополнение web). Для вкладки Чат также требуется ptyprocess для запуска встроенного TUI через псевдотерминал (дополнение pty на POSIX). Установите оба с помощью: [code] pip install 'hermes-agent[web,pty]'

[/code] Дополнение web устанавливает FastAPI/Uvicorn; pty устанавливает ptyprocess (POSIX) или pywinpty (нативный Windows — обратите внимание, что встроенный TUI по-прежнему требует WSL). pip install hermes-agent[all] включает оба дополнения и является самым простым путём, если вам также нужны мессенджеры/голос и т.д. Когда вы запускаете hermes dashboard без необходимых зависимостей, он сообщит, что нужно установить. Если фронтенд ещё не собран и npm доступен, он собирается автоматически при первом запуске.

Страницы

Состояние

Главная страница показывает обзор вашей установки в реальном времени: * Версия агента и дата релиза * Статус шлюза — запущен/остановлен, PID, подключённые платформы и их состояние * Активные сеансы — количество сеансов, активных за последние 5 минут * Недавние сеансы — список 20 последних сеансов с моделью, количеством сообщений, использованием токенов и превью диалога

Страница состояния автоматически обновляется каждые 5 секунд.

Чат

Вкладка Чат встраивает полный TUI Hermes (тот же интерфейс, который вы получаете при hermes --tui) прямо в браузер. Всё, что вы можете делать в терминальном TUI — слеш-команды, выбор модели, карточки вызова инструментов, стриминг Markdown, запросы на уточнение/sudo/одобрение, кастомизация тем — работает здесь идентично, потому что панель запускает настоящий TUI-бинарник и рендерит его ANSI-вывод через xterm.js с WebGL-рендерером для попиксельной раскладки ячеек. Как это работает: * /api/pty открывает WebSocket, аутентифицированный токеном сеанса панели * Сервер запускает hermes --tui через POSIX-псевдотерминал * Нажатия клавиш передаются в PTY; ANSI-вывод стримится обратно в браузер * WebGL-рендерер xterm.js отрисовывает каждую ячейку на цельно-пиксельной сетке; отслеживание мыши (SGR 1006), широкие символы (Unicode 11) и символы псевдографики рендерятся нативно * Изменение размера окна браузера изменяет размер TUI через аддон @xterm/addon-fit

Возобновление существующего сеанса: на вкладке Сеансы нажмите значок воспроизведения (▶) рядом с любым сеансом. Это перейдёт на /chat?resume=<id> и запустит TUI с --resume, загрузив полную историю. Предварительные требования: * Node.js (то же требование, что и для hermes --tui; TUI-сборка выполняется при первом запуске) * ptyprocess — устанавливается дополнением pty (pip install 'hermes-agent[web,pty]', или [all] включает оба) * POSIX-ядро (Linux, macOS или WSL). Нативный Windows Python не поддерживается — используйте WSL.

Закройте вкладку браузера — и PTY будет корректно завершён на сервере. Повторное открытие создаёт новый сеанс.

Конфиг

Формовый редактор для config.yaml. Все 150+ полей конфигурации автоматически обнаруживаются из DEFAULT_CONFIG и организованы по категориям с вкладками: * model — модель по умолчанию, провайдер, базовый URL, настройки рассуждений * terminal — бэкенд (local/docker/ssh/modal), таймаут, настройки оболочки * display — тема оформления, прогресс инструментов, отображение резюме, настройки спиннера * agent — макс. итераций, таймаут шлюза, уровень сервиса * delegation — лимиты подагентов, усилия рассуждения * memory — выбор провайдера памяти, настройки инжекции контекста * approvals — режим одобрения опасных команд (ask/yolo/deny) * И другие — каждая секция config.yaml имеет соответствующие поля формы

Поля с известными допустимыми значениями (бэкенд терминала, тема, режим одобрения и т.д.) отображаются как выпадающие списки. Булевы значения отображаются как переключатели. Всё остальное — текстовые поля. Действия: * Сохранить — записывает изменения в config.yaml немедленно * Сбросить на умолчания — возвращает все поля к значениям по умолчанию (не сохраняется до нажатия «Сохранить») * Экспорт — скачивает текущий конфиг в JSON * Импорт — загружает JSON-файл конфигурации для замены текущих значений

tip Изменения конфига вступают в силу при следующем сеансе агента или перезапуске шлюза. Веб-панель редактирует тот же файл config.yaml, который читают hermes config set и шлюз.

API-ключи

Управление файлом .env, в котором хранятся API-ключи и учётные данные. Ключи сгруппированы по категориям: * LLM Провайдеры — OpenRouter, Anthropic, OpenAI, DeepSeek и т.д. * API-ключи инструментов — Browserbase, Firecrawl, Tavily, ElevenLabs и т.д. * Платформы мессенджеров — токены ботов Telegram, Discord, Slack и т.д. * Настройки агента — несекретные переменные окружения, такие как API_SERVER_ENABLED

Каждый ключ показывает: * Установлен ли он в данный момент (со скрытым превью значения) * Описание его назначения * Ссылку на страницу регистрации/получения ключа провайдера * Поле ввода для установки или обновления значения * Кнопку удаления

Редко используемые ключи по умолчанию скрыты за переключателем.

Сеансы

Просмотр и инспекция всех сеансов агента. Каждая строка показывает название сеанса, иконку платформы-источника (CLI, Telegram, Discord, Slack, cron), имя модели, количество сообщений, количество вызовов инструментов и время последней активности. Активные сеансы отмечены пульсирующим значком. * Поиск — полнотекстовый поиск по всем сообщениям с использованием FTS5. Результаты показывают подсвеченные фрагменты и автоматически прокручиваются к первому найденному сообщению при раскрытии. * Развернуть — нажмите на сеанс, чтобы загрузить полную историю сообщений. Сообщения раскрашены по ролям (пользователь, ассистент, система, инструмент) и отображаются как Markdown с подсветкой синтаксиса. * Вызовы инструментов — сообщения ассистента с вызовами инструментов показывают сворачиваемые блоки с именем функции и JSON-аргументами. * Удалить — удалите сеанс и его историю сообщений с помощью значка корзины.

Логи

Просмотр файлов логов агента, шлюза и ошибок с фильтрацией и отслеживанием в реальном времени. * Файл — переключение между файлами логов agent, errors и gateway * Уровень — фильтр по уровню логирования: ALL, DEBUG, INFO, WARNING или ERROR * Компонент — фильтр по компоненту-источнику: all, gateway, agent, tools, cli или cron * Строки — выбор количества отображаемых строк (50, 100, 200 или 500) * Автообновление — включение отслеживания в реальном времени с опросом новых строк лога каждые 5 секунд * Цветовая кодировка — строки лога раскрашены по уровню серьезности (красный для ошибок, желтый для предупреждений, тусклый для отладки)

Аналитика

Аналитика использования и стоимости, вычисленная из истории сеансов. Выберите временной период (7, 30 или 90 дней), чтобы увидеть: * Карточки сводки — всего токенов (ввод/вывод), процент попадания в кэш, общая расчётная или фактическая стоимость и общее количество сеансов со среднесуточным значением * График дневных токенов — столбчатая диаграмма с накоплением, показывающая ежедневное использование токенов ввода и вывода, с всплывающими подсказками с разбивкой и стоимостью * Таблица ежедневной разбивки — дата, количество сеансов, токены ввода, токены вывода, процент попадания в кэш и стоимость за каждый день * Разбивка по моделям — таблица, показывающая каждую использованную модель, количество сеансов, использование токенов и расчётную стоимость

Cron

Создание и управление запланированными cron-задачами, которые запускают промпты агента по расписанию. * Создать — заполните имя (необязательно), промпт, cron-выражение (например, 0 9 * * *) и цель доставки (local, Telegram, Discord, Slack или email) * Список задач — каждая задача показывает имя, превью промпта, выражение расписания, значок состояния (включено/приостановлено/ошибка), цель доставки, время последнего запуска и время следующего запуска * Пауза / Возобновить — переключение задачи между активным и приостановленным состоянием * Запустить сейчас — немедленное выполнение задачи вне её обычного расписания * Удалить — окончательное удаление cron-задачи

Навыки

Просмотр, поиск и включение/отключение навыков и наборов инструментов. Навыки загружаются из ~/.hermes/skills/ и сгруппированы по категориям. * Поиск — фильтрация навыков и наборов инструментов по имени, описанию или категории * Фильтр категорий — нажмите на категории, чтобы сузить список (например, MLOps, MCP, Red Teaming, AI) * Переключение — включение или отключение отдельных навыков с помощью переключателя. Изменения вступают в силу при следующем сеансе. * Наборы инструментов — отдельная секция показывает встроенные наборы инструментов (файловые операции, веб-сёрфинг и т.д.) с их статусом активен/неактивен, требованиями к настройке и списком включённых инструментов

Безопасность Веб-панель читает и записывает ваш файл .env, который содержит API-ключи и секреты. По умолчанию она привязывается к 127.0.0.1 — доступна только с вашей локальной машины. Если вы привяжетесь к 0.0.0.0, любой в вашей сети сможет просматривать и изменять ваши учётные данные. Панель не имеет собственной аутентификации.

Слеш-команда /reload

PR панели также добавляет слеш-команду /reload в интерактивный CLI. После изменения API-ключей через веб-панель (или редактирования .env напрямую) используйте /reload в активном CLI-сеансе, чтобы применить изменения без перезапуска: [code] Вы → /reload
Перезагружен .env (обновлено 3 переменных)

[/code] Это повторно читает ~/.hermes/.env в окружение работающего процесса. Полезно, когда вы добавили новый ключ провайдера через панель и хотите использовать его немедленно.

REST API

Веб-панель предоставляет REST API, который используется фронтендом. Вы также можете вызывать эти конечные точки напрямую для автоматизации:

GET /api/status

Возвращает версию агента, статус шлюза, состояния платформ и количество активных сеансов.

GET /api/sessions

Возвращает 20 последних сеансов с метаданными (модель, количество токенов, временные метки, превью).

GET /api/config

Возвращает текущее содержимое config.yaml в формате JSON.

GET /api/config/defaults

Возвращает значения конфигурации по умолчанию.

GET /api/config/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

Возвращает аналитику использования токенов, стоимости и сеансов. Параметр запроса: 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

Веб-сервер ограничивает CORS только источниками localhost: * http://localhost:9119 / http://127.0.0.1:9119 (продакшн) * http://localhost:3000 / http://127.0.0.1:3000 * http://localhost:5173 / http://127.0.0.1:5173 (Vite dev сервер)

Если вы запускаете сервер на нестандартном порту, этот источник добавляется автоматически.

Разработка

Если вы вносите вклад в фронтенд веб-панели: [code] # Терминал 1: запуск бэкенд API
hermes dashboard --no-open

# Терминал 2: запуск Vite dev сервера с HMR  
cd web/  
npm install  
npm run dev

[/code] Vite dev сервер на http://localhost:5173 проксирует запросы /api к FastAPI бэкенду на http://127.0.0.1:9119. Фронтенд построен на React 19, TypeScript, Tailwind CSS v4 и компонентах в стиле shadcn/ui. Сборки для продакшна выводятся в hermes_cli/web_dist/, который FastAPI сервер отдаёт как статическое SPA.

Автоматическая сборка при обновлении

Когда вы запускаете hermes update, веб-фронтенд автоматически пересобирается, если npm доступен. Это поддерживает панель в актуальном состоянии с обновлениями кода. Если npm не установлен, обновление пропускает сборку фронтенда, и hermes dashboard соберёт его при первом запуске.

Темы и плагины

Панель поставляется с шестью встроенными темами и может быть расширена пользовательскими темами, вкладками плагинов и бэкенд API-маршрутами — всё подключается без клонирования репозитория. Переключайте темы на лету из панели заголовка — нажмите на иконку палитры рядом с переключателем языка. Выбор сохраняется в config.yaml в поле dashboard.theme и восстанавливается при загрузке страницы. Встроенные темы: Тема| Характер
---|---
Hermes Teal (default)| Тёмно-бирюзовый + кремовый, системные шрифты, комфортные отступы
Hermes Teal (Крупный) (default-large)| То же, что default, с текстом 18px и более просторными отступами
Midnight (midnight)| Глубокий сине-фиолетовый, Inter + JetBrains Mono
Ember (ember)| Тёплый малиновый + бронзовый, Spectral (с засечками) + IBM Plex Mono
Mono (mono)| Оттенки серого, IBM Plex, компактно
Cyberpunk (cyberpunk)| Неоново-зелёный на чёрном, Share Tech Mono
Rosé (rose)| Розовый + слоновая кость, Fraunces (с засечками), просторно
Чтобы создать свою тему, добавить вкладку плагина, внедриться в слоты оболочки или добавить свои REST-эндпоинты, см. Расширение панели — полное руководство охватывает: * Схема YAML темы — палитра, типографика, расположение, ресурсы, componentStyles, colorOverrides, customCSS * Варианты расположения — standard, cockpit, tiled * Манифест плагина, SDK, слоты оболочки, слоты на уровне страниц (встраивание виджетов во встроенные страницы без их переопределения), бэкенд FastAPI маршруты * Полное пошаговое руководство по комбинации темы и плагина (демо кокпита Strike Freedom) * Обнаружение, перезагрузка и устранение неполадок