От ручного ввода к автономному агенту: как ИИ начал сам анализировать данные с фитнес-трекера Garmin
Попытка получить еженедельный отчет об активности через простое копирование скриншотов в нейросеть показала, что контекст и история данных теряются при фрагментарном вводе. Разработчик решил автоматизировать сбор информации напрямую из Garmin Connect, создав локального телеграм-бота, который не только анализирует сон и пульс с учетом персональной статистики, но и генерирует планы тренировок. Проект работает полностью на локальных ресурсах пользователя, гарантируя приватность биоэлектрических данных.

# Автономный анализ здоровья: как бот стал личным тренером и врачом
История взаимодействия человека и искусственного интеллекта часто начинается с попытки передать контекст, который модель не может увидеть самостоятельно. В случае с персональным здоровьем эта проблема становится критической: цифровые показатели, собранные за годы ношения гаджета, не имеют ценности без сопоставления с историей. Официальные приложения вроде Garmin Connect предоставляют точные данные, но они не интерпретируют их в контексте личной нормы пользователя.
«Цифра без разбора ничего не значит. HRV 47 мс или статус UNBALANCED выглядят как константы, но часы не говорят, что с ними делать».
Автор проекта столкнулся с этой проблемой, когда пытался получить отчет от ChatGPT. Попытки загрузить скриншоты графика сна и уровня вариабельности сердечности (HRV) в чат одного за другим давали фрагментарные ответы. Модели видели отдельные куски информации, но не понимали общей картины недельной динамики. Пользователю приходилось вручную связывать данные, которые должны были быть частью единого когнитивного процесса.
От скриншотов к автоматизированному сбору
Решение проблемы требовало перехода от ручного труда к программной автоматизации. Вместо загрузки изображений, был написан скрипт, который самостоятельно извлекает данные о сне и уровне стресса из облачного сервиса Garmin Connect и сохраняет их в файл. Это стало первым шагом к созданию полноценного инструмента.
Следующая логическая эволюция привела к появлению телеграм-бота. Изначально его функция ограничивалась ответами на вопросы, однако функционал быстро расширился. Бот научился самостоятельно создавать тренировки внутри экосистемы Garmin Connect. Это возможно благодаря отсутствию официальных API для прямого управления планами тренировок со стороны Garmin, что вынудило разработчика искать альтернативные пути доступа к данным.
«Если у бота есть доступ не только читать, но и писать в Garmin, работает это не только для меня».
Ключевым преимуществом решения стало понимание контекста. Бот помнит исторические данные пользователя: средний пульс покоя, типичную вариабельность сердечности за прошлые недели и количество сна. Ответы на вопросы вроде «почему сегодня ниже HRV» строятся на сравнении текущих показателей с личной базой, а не на общих рекомендациях из интернета.
Превращение данных в действия
Одной из самых сложных задач стала работа с мышечными группами. Garmin не предоставляет открытого доступа к такой информации, и классификация упражнений требует внешней обработки. Разработчик создал свою базу соответствий, позволяя боту корректно определять, какие группы мышц были задействованы при выполнении конкретной программы.
Функционал создания тренировок позволяет пользователю сформулировать запрос на языке, понятном человеку. Например, просьба о «интервальной тренировке на велосипеде по образцу последней поездки» или программе для «кора и ягодиц» превращается в точный план с пульсовыми зонами, подходами и отдыхом. Система не только генерирует план, но и требует подтверждения перед отправкой на часы, чтобы избежать ошибок в логике интервалов, таких как превращение короткой сессии в четырехчасовую нагрузку.
Приватность и локальная архитектура
В условиях распространения моделей подписки, предлагающих обработку персональных данных на сторонних серверах, этот проект отличается радикальным подходом к безопасности. Все компоненты пайплайна размещены на персональном компьютере пользователя («своей машине»), что полностью исключает утечку информации о здоровье в облачные хранилища корпораций.
Анализ данных может осуществляться двумя способами: через API Garmin и через локальную языковую модель (LLM), развернутую локально с помощью инструмента Ollama. Использование ключей шифрования, выданных самим пользователем (BYOK), гарантирует, что чувствительная информация не покидает домашнюю сеть без разрешения.
Установка системы минимизирована до базовых действий: скачивание архива, ввод учетных данных от аккаунта Garmin и выбор локальной модели. Интерфейс настройки доступен через веб-браузер, после чего работа происходит автономно в фоновом режиме.
«Завести это несложно. Открывается страница настройки в браузере на своём же компьютере. Всё.».
Поскольку технология адаптирована под специфику экосистемы Garmin, прямой перенос на другие бренды носимой электроники на данный момент невозможен. Однако принцип создания подобного агента применим к любой другой системе мониторинга здоровья, имеющей цифровой след пользователя.
Проект открыт для изучения в репозитории GitHub, а готовая версия доступна для загрузки. Для тех, кто заинтересован в глубоком понимании технической реализации, включая вопросы кэширования и архитектуры, существуют подробные технические описания и исходный код.
Создание такого инструмента демонстрирует смещение парадигмы: от пассивного наблюдения за цифрами к активному, контекстно-зависимому управлению образом жизни с помощью искусственного интеллекта, работающего в доверительных и безопасных условиях.