Монитор прогона
Окно «эксперименты в работе»: графики, хвост лога, короткий комментарий агента и статус карточек в колонке «в работе». Данные подтягиваются с диска по путям из карточки или отчёта — без отдельного стрима с кластера.

Как работает
Монитор показывает карточки канбана в колонке running, у которых заданы подсказки живого просмотра (или уже есть свежие файлы). Подсказки — строки в описании карточки или в отчёте:
live_log: projectcode/runs/train.log
metrics_dir: projectcode/runs/plots
live_note: эпоха 3, loss 0.38
| Подсказка | Что открывает |
|---|---|
live_log: |
хвост текстового лога (до сотен килобайт / ограниченное число строк) |
metrics_dir: |
картинки из каталога (png/jpg/…), с приоритетом известных имён вроде dashboard.png |
live_note: |
одна строка «что сейчас происходит» в панели комментария |
Пути относительные к репозиторию проекта (и при необходимости к соседней папке-родителю). Сервер читает файлы локально и отдаёт снимок по HTTP; клиент опрашивает примерно раз в три секунды.
Карточка остаётся в мониторе, пока она в running и есть подсказки или признаки активности (лог/картинки обновлялись недавно, или есть непустой live_note). Закреплённая карточка (ту, с которой открыли окно) не выкидывается, пока модальное окно открыто.
Монитор не двигает колонки и не пишет отчёт — только читает. Колонки и §3 отчёта ведут сценарии выполнения карточки.
Как человек работает в интерфейсе
- Откройте канбан метода. У карточки в
running(и при наличии подсказок) — кнопка «Live монитор» (иконка глаза). - Откроется модальное окно «Эксперименты в работе»: сверху вкладки карточек (если несколько в работе, в т.ч. из разных проектов лаборатории), справа/слева навигация разделов.
- Разделы:
- Графики — сетка изображений из
metrics_dir; клик увеличивает; - Коммент модели — текстlive_note; - Логи — хвостlive_log, прокрутка к концу; - Статус — колонка, подзадачи из чеклиста, флаги «настроено / файл есть», время опроса. - Переключение вкладок карточек не закрывает окно; статусная строка показывает, когда снимок обновился.
- На карте лаборатории у методов с прогонами может быть наложение статуса активности (кто крутит карточки в «в работе») — соседний сигнал к тому же состоянию канбана, не замена монитору.
В Hub тот же API живого снимка доступен в режиме только чтения (если смонтированы пути); запись подсказок — локально.
Какие сценарии для агента подключаются
| Сценарий (skill) | Роль относительно монитора |
|---|---|
koi-execute-card |
При старте пишет live_log / metrics_dir / live_note; на вехах обновляет note и галочки §3. Без этих строк монитор пустой. |
koi-card-autoresearch |
Долгий прогон: исследователь держит пульс и live_note, менеджер заранее проектирует live-вид; дебаггер смотрит лог по live_log. |
koi-grill-experiment |
На этапе постановки фиксирует, куда пойдут логи и графики (чтобы потом было что указать в подсказках). |
Отдельного скилла «только монитор» нет: это экран над файлами, которые агент обязан обновлять во время running.
Как устроено технически
Подсказки и снимок
Парсинг строк: koi/projects/live_artifacts.py (parse_live_hints, build_live_snapshot, is_live_active, хвост лога, список картинок, разбор - [ ] / - [x]). Активность по умолчанию — обновления за последние 30 минут (или running + настроенные пути).
Опционально рядом по стилю: строка compute_cost: (учёт GPU/wall) — koi/projects/compute_cost.py; в панелях монитора это не главный раздел.
API
GET …/boards/{board}/cards/{card}/live?tail_lines=…— снимок одной карточки;GET …/projects/{id}/kanban/live-monitor— список кандидатов для монитора;GET …/projects/{id}/live/file?path=…— отдать файл (картинка) из разрешённых корней.
Клиент: web/card-live.js (опрос, вкладки, панели), вызовы в web/api.js, кнопка на карточке и сиды running из лаборатории в web/app.js. Разметка окна: #card-live-modal в web/index.html.
Ограничения
- Нет push с remote GPU: агент или ваш пайплайн должен писать лог/png на диск, видимый локальному ResearcherOS (или синхронизировать туда).
- Пути вне репо и родителя репо отклоняются.
- Лимиты: размер хвоста лога, число строк, число картинок (см. константы в
live_artifacts.py).
Связанные страницы
Текст: content/monitor.md. Медиа: media/monitor-hero.*.