Перейти к содержимому

Панель эволюции

/evolution открывает панель эволюции MAESTRO CARE — список всех прогонов генетического алгоритма, которые видны вашей учётной записи на Platform. Из строки вы открываете экран прогона с живой трансляцией поиска: кривые приспособленности, фронт Парето, динамика валидности программ и лестница роста приспособленности по поколениям. Когда прогон находит победителя, вы принимаете его обратно в канал stable.

Это визуальный аналог care evolve. Панель наблюдает за прогонами и сравнивает их; CLI запускает их в headless-режиме. Про сам алгоритм — мутации, оценку, поколения — см. концептуальную страницу Обзор эволюции.


Панель — это единая сортируемая таблица, где сверху самые свежие прогоны. Две вкладки вверху делят её на Active (по умолчанию — живые и недавние прогоны) и Archived (прогоны, которые вы скрыли, но не удалили).

СтолбецЧто показывает
StatusЦветной кружок ● + статус прогона: зелёный — выполняется, жёлтый — в очереди/на паузе, синий — завершён, серый — остановлен, красный — сбой.
RunИдентификатор прогона на Platform.
Base chainИсходная цепочка, от которой эволюционирует прогон.
GenТекущее поколение.
BestЛучшая приспособленность за все поколения.
CurrentЛучшая приспособленность в текущем поколении.
Valid / InvalidКоличество валидных и невалидных программ.
StartedЛокальное время старта прогона.
ElapsedВремя с момента старта; отсчёт останавливается, когда прогон завершается.

Неизвестные ячейки отображаются как —, поэтому неполный ответ Platform никогда не обнулит целую строку. Таблица автоматически обновляется каждые 5 секунд, так что долгое наблюдение остаётся актуальным.

КлавишаДействие
EnterОткрыть выделенный прогон (см. Экран прогона).
sОстановить выделенный работающий прогон.
SpaceОтметить строку для сравнения (не больше двух).
cСравнить два отмеченных прогона.
aАрхивировать / разархивировать выделенный прогон.
rОбновить сейчас.
b · EscНазад в чат.

Те же действия доступны кнопками внизу — для тех, кто ещё не запомнил привязки.

Пока открыт интерфейс чата, в футере есть живой сегмент ▶ N evolving, считающий ваши работающие прогоны. Он опрашивает Platform вне UI-потока и прячется, когда ничего не выполняется, — тихий сигнал «одним взглядом», что работа всё ещё идёт в фоне.

Отметьте две строки клавишей Space, затем нажмите c, чтобы открыть модальное окно Evolution Compare. Первая отмеченная строка — слева, вторая — справа, и окно рисует обе кривые приспособленности рядом, чтобы видеть, какой прогон рос быстрее или раньше вышел на плато.

Отменённые и сбойные прогоны накапливаются. Нажмите a, чтобы перенести строку из вкладки Active в Archived — прогон останется на Platform, а список архива сохранится в ~/.config/care/evolution_archive.json и переживёт перезапуски. Переключитесь на вкладку Archived и снова нажмите a на строке, чтобы вернуть её обратно.


Enter на строке панели — или Библиотека → v/E, пикер Запуска эволюции — открывает экран прогона. Открытый с панели, он наблюдает за уже существующим прогоном (возобновляет живую трансляцию, ничего не отправляя заново); запущенный из пикера, он стартует новый прогон и следит за ним.

Сверху идут панель Status и лог Events; остальное — вкладочный блок, повторяющий веб-интерфейс gigaevo-platform, чтобы вы видели одну и ту же подачу информации на любой из поверхностей.

ВкладкаЧто показывает
FitnessДвухосевой линейный график высокого разрешения — лучшая приспособленность и среднее по текущему поколению относительно поколения — перерисовывается по мере поступления точек, чтобы следить за прогрессом и замечать плато.
StatisticsСводные карточки плюс карточка «что оптимизируется» (см. ниже).
Pareto frontТаблица недоминируемых особей; выделенная строка раскрывается в карточку с полным резюме и всеми целями. Прогоны с ≥ 2 целями получают под таблицей ещё и 2D-диаграмму рассеяния.
ProgramsДинамика валидных и невалидных программ по поколениям.
VersionsЛестница роста приспособленности — каждое поколение, где лучшая приспособленность строго выросла, строками `Gen

Вкладка Statistics отвечает на вопрос «что этот прогон вообще измеряет?» карточкой метаданных, собранной из:

  • Optimising for — рубрика валидации (из конфигурации запуска или восстановленная из описания прогона, когда вы наблюдаете за чужим прогоном);
  • Mode — full_chain (весь DAG в игре) или per_step (за раз изменяется один шаг);
  • Runner — раннер Platform, выполнивший прогон;
  • Platform — версия Platform, запрашиваемая один раз при монтировании.

Экран по ходу прогона собирает расход токенов и USD прямо из живой трансляции — из отдельных событий cost_tick либо из полей токенов/usage, едущих в событиях по отдельным особям, когда Platform не присылает отдельные тики. Текущая сумма токенов (prompt + completion) и накопленная стоимость в USD отображаются в области статуса, чтобы видеть расходы поиска в реальном времени.

Экран прогона подписывается на поток событий SSE от Platform и отрисовывает каждое событие generation_started, individual_evaluated и best_updated по мере поступления. Когда поток недоступен, он переходит на опрос метрик /results прогона с тиком ~2 секунды (а для локального стека с пустым /results — на прямой зонд Redis для кривой), так что вид продолжает двигаться даже без живого SSE-соединения.

Пикер Запуска эволюции показывает живой предпросмотр бюджета перед отправкой. Он пересчитывается по мере правки полей:

evaluations = iterations × population

плюс грубую оценку токенов на такое число оценок. Тогда прикинуть размер прогона — дело одного взгляда: подкрутите итерации или размер популяции и смотрите, как меняется прогноз расходов, прежде чем подтвердить.

КлавишаДействие
aAccept winner — продвинуть выбранную особь (или лучшую) в канал stable после подтверждения, где показаны id цепочки и переход версии.
xЭкспортировать цепочку выделенной особи с фронта Парето на диск (переключатель JSON / Python).
cЭкспортировать кривую приспособленности в evolution-<id>-curve.csv + .json в текущий каталог.
DСравнить выбранную версию с родителем.
zStop + Archive — остановить прогон на стороне сервера и архивировать его.
EscОтмена.

Принятие — единственный необратимый шаг (он переставляет указатель latest), поэтому всегда проходит через модальное окно подтверждения. Если выбрать на фронте Парето не лучшую строку, принятие продвинет именно цепочку этой особи, а не общую лучшую.