No description
Проверка кандидата A28–A31 исполнением. 1. Дублирование ролей. RoleRegistry.migrate_legacy_roles написана верно, но НЕ ВЫЗЫВАЛАСЬ НИОТКУДА — проверено поиском по всему коду. Вместо неё работала «идемпотентная миграция» в router_config, дописывавшая недостающие умолчания и не убиравшая старые роли. На конфигурации владельца интерфейс показывал 19 агентов, причём шесть пар были неотличимы по названию: orchestrator и manager — оба «Менеджер проекта», reviewer и code-reviewer — оба «Ревьюер кода». Разложить аккаунты по такому списку невозможно. Миграция подключена. Внутри неё нашлась вторая ошибка: при обходе одним проходом пустая каноническая роль затирала цепочку, перенесённую из старой. У владельца сработало бы именно так — в manager попал бы codex-orch вместо выставленного им ag-orch-fallback. Старые роли теперь обрабатываются первыми: в них и лежит настроенный порядок аккаунтов. Проверено на живой конфигурации владельца: было 19 ролей, стало 13, все цепочки совпадают с исходными. 2. Сохранённый workflow мигрируется вместе с ролями. Идентификаторы агентов повторяют идентификаторы ролей, и без переименования рёбра ссылались бы на исчезнувших агентов — «Ребро ссылается на отсутствующего агента». 3. Поиск локальных серверов моделей. Раньше адрес вводился руками. Теперь опрашиваются известные порты на петле — Ollama 11434, LM Studio 1234, llama.cpp 8080-8082, vLLM 8000, Jan, GPT4All, Text Generation WebUI, — параллельно, девять портов за 1.5 с. Наружу идёт только то, что ответило; список моделей берётся у сервера. Порт, занятый чужим сервисом, показывается с причиной, закрытые не показываются вовсе. Действие discover_local_models. Роль в фикстурах test_workflow_service_a30 переименована в test-developer: «developer» — псевдоним канонической developer-1, и тест проверял бы работу псевдонимов вместо механики workflow. 475 passed, 2 skipped; ruff чисто. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .github/workflows | ||
| agents | ||
| artifacts | ||
| assets | ||
| config | ||
| docs | ||
| installer | ||
| launcher | ||
| legacy | ||
| scripts | ||
| src/antigravity_provider | ||
| tests | ||
| .gitattributes | ||
| .gitignore | ||
| a15_web_api_and_linux_port_report.md | ||
| CHANGELOG.md | ||
| COCKPIT_TOOLS_ARCHITECTURE_COMPARISON.md | ||
| CODEX_CONTRACT_V11_REPORT.md | ||
| CODEX_MOCKUP_REDESIGN_REPORT.md | ||
| CODEX_UI_REDESIGN_REPORT.md | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
Hermes Hub
Multi-Agent & Multi-Provider Control Hub for Hermes Agent
Hermes Hub — централизованная панель управления и отказоустойчивый маршрутизатор запросов (Multi-Provider Router) для Hermes Agent. Объединяет учетные записи различных провайдеров (Google Antigravity, OpenAI Codex, OpenCode Go, DeepSeek) в единую согласованную команду с автоматическим переключением при исчерпании квот (failover) и поддержкой сессионной привязки (Session Affinity).
🌟 Ключевые возможности
- 🖥️ Нативное приложение Windows (CustomTkinter & Brandbook):
- Фирменная дизайн-система Obsidian Forest (
#0F1510,#1A2A1F,#2F4A36,#F7F1E3,#CDAA64). - Мгновенное переключение вкладок (P95 < 200 ms, в среднем ~30 ms).
- Полноценная интеграция с панелью задач Windows через
AppUserModelID(HermesHub.Desktop) и multi-resolution.ico.
- Фирменная дизайн-система Obsidian Forest (
- 👥 Команда агентов (Team View):
- 6 логических ролей («Главный оркестратор», «Кодер», «Ревьюер», «Исследователь», «Тестировщик», «Агент общего назначения»).
- Реальные логотипы провайдеров с динамическим кэшированием.
- Четкое разделение флагов MAIN Hermes Account и Primary Orchestrator.
- 🔀 Многоуровневый Failover & Маршрутизация:
- Визуальные пайплайны маршрутизации со статусами узлов в реальном времени.
- Автоматический failover цепочки
Codex -> Antigravity -> OpenCode Goпри квотных ограничениях (HTTP 429 / Quota Exceeded).
- 🛡️ Строгий Status Resolver & Unified Health:
- Неподключенные слоты отображаются как
NOT_CONFIGURED(«Аккаунт не добавлен») и никогда не показывают ложныхQUOTA_EXHAUSTEDилиHEALTHY. - Автоматическая очистка устаревших квотных записей при удалении credentials.
- Неподключенные слоты отображаются как
- 💼 Cockpit Tools Accounts View:
- Верхний тулбар: Поиск, фильтры (Подключенные, Требуется вход, Квота), сортировка.
- Компактный блок свободных слотов без визуального шума.
- 4-шаговый мастер добавления аккаунтов (Wizard).
- ⚙️ Архитектурные модули (Roadmap P0, P1, P2):
LifecycleSupervisor: Реестр процессов с контролем владения по UUID и PID, исключающий использованиеkillall/taskkill.PolicyEnforcer:WebPolicy(ограничение исходящих доменов, блокировка метаданных) иToolPolicy(валидация команд).UnifiedSkillRegistry: Межпровайдерный реестр навыков.CapabilityMatrix: Ранжирование моделей по контексту, рассуждениям и инструментам.ScheduledTaskSafetyCoordinator: Защита периодических задач (overlap_policy: skip).
- 📦 Windows Installer (
HermesHubSetup.exe):- Обязательная pre-flight проверка наличия установленного Hermes Agent.
- Автоматическое создание ярлыков на Рабочем столе и в Главном меню с
AppUserModelID.
🚀 Быстрый старт
Запуск из исходного кода
# Установка зависимостей
uv sync
# Запуск приложения Hermes Hub
uv run python -m antigravity_provider.router.hermes_hub_app
Запуск тестов и верификации
# Полный набор автоматических тестов (35 тестов)
uv run pytest -v tests/
# Комплексная проверка роутера (10 проверок)
python scripts/verify_multi_provider_router.py
🏗️ Структура проекта
| Каталог | Назначение |
|---|---|
src/antigravity_provider/router/ |
Ядро Multi-Provider Router и Native GUI |
src/antigravity_provider/router/ui/ |
Дизайн-система, компоненты и экраны (Views) |
src/antigravity_provider/router/supervisor/ |
Lifecycle Supervisor и политики безопасности (WebPolicy/ToolPolicy) |
src/antigravity_provider/router/skills/ |
Унифицированный реестр навыков |
src/antigravity_provider/router/capability/ |
Матрица возможностей моделей и DeepSeek адаптер |
src/antigravity_provider/router/scheduler/ |
Координатор безопасности запланированных задач |
assets/ |
Фирменные логотипы, иконки провайдеров и .ico |
installer/ |
Инсталлятор HermesHubSetup.py с проверкой Hermes Agent |
tests/ |
Автоматизированные тесты pytest |
docs/ |
Архитектура, гайдлайны бренда, безопасность и производительность |
📄 Лицензия
MIT License. Hermes Hub is an open-source component of the Hermes Agent ecosystem.