Метида
Метаданные
- Тип: сервис (веб-приложение + control plane)
- Статус: разработка
- Лицензия: MIT
Описание
Метида — control plane для оркестрации AI-агентов на нескольких серверах. Сервис ведёт
реестр серверов и агентов, ставит задачи в очередь, исполняет их через CLI/API агентов,
собирает поток событий и предоставляет веб-интерфейс для наблюдения и вмешательства.
Задача проекта — сделать длительную работу агентов управляемой: задача доводится до
завершения, ход её выполнения виден, а в процесс можно вмешаться на любом этапе.
Рассчитан на команды, которые используют агентов (Hermes, OpenCode) для разработки и
эксплуатации и которым нужен единый контроль над ними.
Возможности
- Реестр серверов и агентов — учёт серверов и запущенных на них агентов; транспорт
(http-server, cli-process, ws-server) выбирается один раз при создании агента.
- Очередь задач — постановка задачи, автоматическая постановка в очередь, планировщик
с настраиваемым интервалом, лизы задач с восстановлением после сбоя воркера.
- Поток событий — append-only журнал
task_eventsс доставкой at-least-once и
батчингом; каждый транспорт нормализует свои события в общую таксономию.
- Наблюдение в реальном времени — веб-интерфейс со статусом задачи, ходом выполнения,
списком рабочих пунктов и потоком событий.
- Вмешательство — пауза, возобновление и отмена задачи; ручная правка рабочих пунктов
с фиксацией автора правки.
- Анализ выполнения — по завершении задачи LLM формирует список рабочих пунктов и
разбирает лог; результат виден в UI.
- Роли и аутентификация — JWT-аутентификация, роли (администратор, наблюдатель,
владелец продукта), отключаемая регистрация.
- Хранение секретов — секреты агентов и LLM-ключи хранятся в БД в зашифрованном виде
(AES-256-GCM).
- Ретенция данных — настраиваемая очистка: инструменты и рассуждения 7 дней, дельты
сообщений 30 дней, финальные ответы и вмешательства хранятся постоянно.
- Единый артефакт — одна сборка, роли через переменную окружения
METIS_ROLE
(api / worker / all).
Технологии
- Java 21, Spring Boot (Web, WebFlux, Data JPA, Security, Validation, Actuator)
- PostgreSQL, Liquibase (миграции)
- JWT (jjwt) — аутентификация
- React 18, TypeScript 5, Vite 5, Chakra UI 3, React Router 6
- nginx — раздача статики и проксирование API
- systemd — запуск сервисов
- Playwright — UI-тесты
Установка и использование
Развёртывание на одном сервере: сборка fat-jar, миграции Liquibase применяются при
старте, статика публикуется в nginx, сервисы запускаются через systemd.
Конфигурация — только через переменные окружения, единый источник /opt/metis/metis.conf.
Обязательных переменных 11 (METIS_ROLE, METIS_SERVER_PORT, METIS_DB_URL,
METIS_DB_USER, METIS_DB_PASSWORD, METIS_DB_POOL_SIZE, METIS_SECRET_KEY,
METIS_REGISTRATION_ENABLED, METIS_SCHEDULER_INTERVAL_SECONDS,
METIS_HEARTBEAT_INTERVAL_SECONDS, METIS_RETENTION_CRON); при отсутствии любой из них
приложение не стартует и сообщает имя переменной.
Документация: docs/architecture.md — архитектура и контракты API; docs/adr/ — 15
записей об архитектурных решениях; docs/development/README.md — порядок реализации;
ops/DEPLOY.md — развёртывание.
Скриншоты
- —
История изменений (кратко)
- 2026-09-28 — начало разработки, архитектура и ADR
- 2026-10-10 — реестр серверов и агентов, очередь задач, поток событий
- 2026-10-12 — глобальные настройки LLM (ADR-0015), надёжность лизов задач, аудит ENV
(убраны все дефолты конфигурации)
- 2026-10-14 — анализ выполнения задачи (ADR-0014), авторство рабочих пунктов, раскраска
статусов, применение миграций в деплое