Впервые опубликовано на vc.ru 14.09.2026 — оригинал
Мы делаем 1trAIner — сервис для тех, кто хочет соотнести тренировки со своей целью, восстановлением и расписанием, а не просто получить ещё один типовой план. Тренер работает в Telegram, рядом есть мини-приложение и личный кабинет на сайте. Первая рабочая версия появилась в мае 2026 года. В этой статье расскажем, как мы используем данные Garmin, зачем разделяем планирование на горизонты и почему связка языковой модели с показателями часов всё ещё требует ограничений и проверки.
Зачем понадобился ещё один тренер
У плана из интернета есть полезное свойство: он задаёт структуру. Но сам по себе такой документ не знает, как вы спали, что делали вчера и можете ли вообще тренироваться в четверг. Между таблицей и реальной жизнью остаётся работа: оценить обстоятельства, переставить занятия, решить, стоит ли сегодня выполнять интенсивную часть.
С живым тренером можно обсуждать такие изменения. Но индивидуальное сопровождение может быть дорогим, а ответ не всегда приходит сразу. При этом мы не считаем, что языковая модель автоматически заменяет профессиональный опыт. У неё другая роль: собрать доступный контекст и предложить план, который можно прочитать и обсудить.
Поэтому для нас ИИ-тренер для бега — не генератор красивого расписания по короткой анкете. Важно, чтобы при составлении дня в контексте оставались цель, предыдущие тренировки, показатели восстановления и ограничения человека. Иначе персонализация заканчивается на обращении по имени.
Сам диалог тоже нужен. Не каждое обстоятельство отражается в часах, и не каждый вопрос получается заранее превратить в поле формы. В 1trAIner правку плана можно попросить словами. Но жёсткие ограничения мы отделяем от свободного разговора: заблокированные даты, доступные дни недели и лимит времени задаются в кабинете.
Мы описываем этот подход на странице методологии. Его смысл не в том, чтобы собрать максимум показателей ради аналитики. Данные должны помогать ответить на более узкий вопрос: какая нагрузка сейчас уместна в рамках общей подготовки и доступного времени.
Каскад: сезон, месяц, неделя, день
Планирование устроено как каскад: сезон → месяц → неделя → день. Нижний горизонт строится поверх верхнего. Дневное задание должно быть частью недели, а неделя — продолжением более длинного плана, а не отдельным ответом модели, который случайно оказался рядом с предыдущими.
Это архитектурное ограничение, а не просьба к модели «помнить стратегию». Если нужный верхний горизонт не собрался, сервис сначала достраивает его. Пропуск нельзя молча обойти и выдать дневной план так, будто вся цепочка уже существует.
Иначе возникает неприятная подмена: текст на сегодня выглядит убедительно, но непонятно, какую задачу подготовки он решает. Наличие связанной цепочки само по себе не доказывает качество рекомендаций. Однако оно даёт опору следующему шагу и не позволяет считать отсутствие плана нормальным исходным состоянием.
Есть и простая проверка содержимого: планом считается текст не короче 300 знаков. Сообщение «планировщик не вернул текст» не становится планом и не передаётся дальше как основание для следующего горизонта. Это защита от заглушек, а не оценка спортивной грамотности текста.
Расписание человека важнее шаблона недели. Если дата заблокирована, день недоступен или на занятия установлен лимит минут, эти условия должны соблюдаться строго. Красиво распределённая нагрузка не имеет смысла, если для её выполнения нужно проигнорировать собственный календарь.
Нагрузка растёт ступенями. Момент разгрузки определяется по накопленной нагрузке, готовности и качеству выполненных тренировок, а не по фиксированному чередованию недель. Поэтому длинный план здесь не означает, что каждый будущий день уже окончательно решён: нижние горизонты нужны именно для уточнения общей структуры.
Что даёт разбор тренировок с часов
Для модели важен не только факт выполненной пробежки. В контекст приходят последние тренировки с датами и отметками «сегодня» или «вчера», а также автоматический разбор свежих тренировок по данным Garmin. В нём есть зоны, сплиты и погода. Это позволяет обсуждать конкретную работу, а не абстрактное «я вчера побегал».
Основные группы данных, на которые опирается такой разбор:
- Сон и пульс покоя — часть контекста восстановления перед следующей нагрузкой.
- Вариабельность пульса, или HRV, и готовность — показатели, для которых в промпте заданы правила изменения интенсивности.
- Накопленная нагрузка — контекст, который не даёт рассматривать свежую тренировку отдельно от предыдущих.
- Пульс порога, или LT, зоны и прогнозы на дистанции — ориентиры для привязки интенсивности к данным атлета, а не к общим таблицам.
- Сплиты и погода — подробности свежей тренировки, доступные модели при разборе.
Правило в промпте сформулировано прямо: при низкой готовности, HRV или сне, а также при высокой острой нагрузке интенсивность снижается. При высокой готовности допускается качественная работа. Ключевое слово — «допускается»: один благоприятный показатель не отменяет цель недели и ограничения расписания.
Так данные могут изменить завтрашний день. Если в общей структуре предусмотрена интенсивная работа, но восстановление низкое, модель получает указание снизить интенсивность. Это описание правила принятия решения, а не обещание, что любой ответ модели безошибочно ему соответствует.
С зонами и порогом задача похожая. Мы передаём тренировочные метрики, чтобы интенсивность не назначалась по универсальной таблице для любого бегуна. Сплиты и погода добавляют обстоятельства выполненной работы. Но сами по себе они не дают права уверенно объяснить любую неудачную тренировку: наличие данных и верная интерпретация — разные вещи.
Кроме часов, в контексте есть профиль, цели, память атлета и дневник питания за 7 дней. При явном дефиците перед объёмным днём тренер предупреждает о недозаправке. Это не медицинская диета, а ограниченная подсказка в рамках обсуждения тренировок.
Отдельно мы собрали описание подхода к бегу на странице «ИИ-тренер по бегу». Для нас здесь важно не количество входных полей, а связь между ними: что человек собирался делать, что уже сделал и в каких условиях будет выполнять следующее задание.
Где ИИ ошибается
Языковая модель может ошибиться в цифре, неверно понять вопрос или дать неполный ответ. Длинный, уверенно написанный план не становится правильным только потому, что в нём упомянуты ваши показатели. Мы не рассматриваем доступ к Garmin как способ устранить ошибки модели.
Поэтому полезно разделять проверки формы и проверку смысла. Порог в 300 знаков отсекает короткую заглушку. Он ничего не говорит о том, правильно ли выбрана нагрузка и нет ли противоречия внутри текста. Было бы нечестно выдавать такой фильтр за контроль качества тренировочной методики.
Достройка пропущенного горизонта решает другую задачу: у нижнего плана должна быть опора. Она закрывает разрыв в цепочке, но тоже не превращает каждое предложение модели в проверенный факт. Обе меры нужны, однако у каждой узкая область действия.
Жёсткие ограничения из кабинета стоят отдельно. Заблокированные даты, доступность по дням недели и лимит минут на день важнее шаблона недели. Это не пожелания, которыми можно пожертвовать ради более убедительного текста. Они задают границы, внутри которых вообще имеет смысл предлагать занятия.
План всегда виден целиком в кабинете и мини-приложении. Любую правку можно попросить словами. Такой интерфейс оставляет возможность заметить нестыковку и вернуться к обсуждению, вместо того чтобы получать только короткое задание без остального контекста.
Ошибки бывают и до этапа планирования. Голосовые сообщения распознаёт наш сервис на faster-whisper. Без доменной подсказки модель ошибалась на именах собственных, поэтому в подсказку включены спортивные термины, названия маршрутов и вершин. Это ещё один пример того, почему общий инструмент приходится дополнять контекстом конкретной задачи.
Медицинские вопросы находятся за пределами сервиса. Тренер направляет к врачу, не ставит диагнозов и не назначает лечение или препараты. 1trAIner — информационный сервис; показатели часов не меняют эту границу.
Мы применяем ограничения и к публичным текстам. На сайте есть автоматические проверки на обещания результата и медицинские утверждения, у каждой статьи указаны автор и дата обновления. Это не проверка дневного плана, а отдельная работа с тем, как мы описываем продукт: нельзя обещать снаружи то, чего система не может надёжно обеспечить внутри.
Сколько это стоит и почему без автосписаний
Первые 7 дней бесплатны, затем подписка стоит 450 ₽ в месяц или 4999 ₽ в год. Автосписаний нет, карта не сохраняется, продление происходит вручную по ссылке. Основная информация о сервисе доступна на главной странице.
Для пользователя такая схема означает простую вещь: продолжение подписки требует отдельного действия. Нам кажется важным не смешивать решение пользоваться тренером дальше с инерцией платёжной настройки. При этом мы не будем приписывать отсутствию автопродления влияние на удержание или другие показатели — таких данных в этом рассказе нет.
Стоимость подписки и стоимость запросов к модели — разные уровни. Языковая модель у нас — DeepSeek. По умолчанию указана deepseek-v4-pro, а с 10.09.2026 запросы маршрутизируются на V4.1 Flash. Поэтому при разговоре о расходах важно смотреть на действующий прайс, а не только на название модели в настройках.
С 10.09.2026 базовые тарифы составляют $0,15 за миллион входных токенов, $0,003 за миллион токенов кэшированного входа и $0,60 за миллион выходных. В пиковые часы они вдвое выше: соответственно $0,30, $0,006 и $1,20 за миллион.
По прайсу провайдера пик приходится на 01:00–04:00 и 06:00–10:00 UTC в будни. Выходные пиком не считаются. Суточные планы мы предварительно генерируем в 03:15–03:59 МСК: это время вне пиковых интервалов по UTC.
Генерация и доставка при этом разделены. Пользователь получает план в своё время доставки, по умолчанию в 6:00 МСК. Для задачи, которую можно подготовить заранее, нет необходимости привязывать вычисление к моменту отправки.
Это конкретное инженерное решение для управления стоимостью запросов, но не готовая юнит-экономика. Из тарифов за токены нельзя вывести себестоимость подписки без данных об объёме использования. Выручку, число пользователей и юнит-экономику в рублях мы не публикуем.
Что дальше
Приложение для iPhone и Apple Watch находится в закрытом тестировании в TestFlight. Дат выхода мы здесь не обещаем. Нам важнее обсуждать уже работающие механизмы отдельно от ожиданий: контекст тренировок, каскад планов, ограничения расписания и возможность увидеть ответ целиком.
Для нас следующий шаг — продолжать работу с разницей между убедительным текстом и полезным планом. Больше данных не отменяет эту задачу. У ИИ-тренера должны быть понятные основания для рекомендаций и столь же понятные границы, за которыми нужен не очередной ответ модели.
Какие скриншоты приложить
- Страница методологии (/methodology): показать описание того, как тренер принимает решения.
- Страница ИИ-тренера по бегу (/ai-trener/po-begu): показать, как подход сервиса описан для бегового направления.
- Главная страница (/): показать вводный экран с описанием сервиса.
Источник: vc.ru