Почему голого ChatGPT мне не хватило
История разработчика и отца, который сделал семейного медбота и превратил его бэкенд в личный MCP-сервер с длительной памятью для каждого человека.
22 открытий112 показов
Я разработчик и многодетный отец. Вечером у меня обычно не хакатон, а «дежурство в приёмном покое»: работа, дедлайны, быт — и параллельно кто-то из детей приходит с «пап, у меня что-то болит».
В 2025-м кажется, что решение очевидно: открыл ChatGPT/Claude, описал симптомы, получил ответ. Я так и делал — до тех пор, пока не стало понятно: голого чат-ИИ мне не хватает.
Мне нужен был не ещё один «умный собеседник», а система, которая помнит историю конкретного ребёнка, умеет её поднимать и объяснять мне ситуацию человеческим языком.
Так появился Telegram-бот @NoPanicHealthBot, который я сначала делал исключительно для своей семьи, а уже потом увидел в нём архитектурный паттерн, масштабируемый на широкую аудиторию.
Дисклеймер: бот не ставит диагнозы и не заменяет врача. Это инструмент для структурирования данных и получения подсказок, а не медицинское устройство.
Три вещи, которых нет у «голого» ChatGPT
1. ИИ не знает человека:
- какие анализы уже были;
- на что есть аллергии;
- какие хронические истории у конкретного ребёнка;
- что уже пробовали из лечения и как это сработало.
Каждый раз получается мини-эпикриз: «Смотри, это Маша, 7 лет, в прошлом году…» — и так по кругу.
Это утомляет, а главное — нет гарантии, что модель вытащит действительно важные детали.
2. Память одноразовая
Сегодня вы честно выгрузили полгода истории ребёнка в чат, а через пару месяцев:
- вы снова ищете те же анализы;
- снова объясняете те же эпизоды;
- снова прогреваете контекст.
Модель не живёт вместе с вашей семьёй. Это не «личный врач», а просто ещё один диалог где-то в облаке.
3. Нет нормального контура управления
У голого чата нет:
- красных флажков: когда нужно закончить разговор и сказать «иди к живому врачу»;
- ограничений: что нельзя советовать детям определённого возраста, какие темы лучше вообще не трогать;
- истории решений: кто что посоветовал, что потом сработало/не сработало.
Да, можно как-то промптить, но это быстро превращается в мешанину из правил, которые сложно проверять, обновлять и объяснять.
Что я в итоге сделал: бот как внутренний MCP-сервер
В какой-то момент я перестал думать «как бы получше промптнуть ChatGPT», и стал думать так:
«Пусть LLM будет просто умным, но амнезирующим вычислителем.
Архитектурно это выглядит как личный MCP-сервер:
- Telegram-бот @NoPanicHealthBot — только интерфейс.
- Внутри — сервис, который хранит: людей и членов семьи;обращения; анализы; файлы; историю рекомендаций.
- LLM подключается к этому сервису как клиент к набору инструментов (tools).
Вместо длинной простыни текста модель получает возможность вызывать понятные операции:
- «дай профиль этого ребёнка»;
- «дай последние анализы такого-то типа»;
- «дай прошлые обращения по теме горла»;
- «сохрани вот такое summary и список рисков».
Модель вообще не знает ни про Telegram, ни про БД.
Она видит интерфейс инструментов и работает в рамках этих границ.
Типичный кейс: «у дочки снова болит горло» Разберём, как это выглядит изнутри (упрощённо).
1. Пользовательский слой Родитель пишет в @NoPanicHealthBot:
«У дочки снова болит горло».
Бот задаёт стандартные уточняющие вопросы:
- сколько длится;
- температура;
- есть ли кашель/насморк;
- были ли такие эпизоды раньше;
- что уже приняли.
Это не ИИ-магия, а обычная детерминированная «машина состояний», чтобы ничего критичного не забыть.
2. Слой памяти
Дальше сервис:
- находит в базе соответствующего ребёнка (member_id);
- поднимает: возраст; прошлые обращения по ЛОР-темам; последние анализы; аллергии и хронические заболевания.
- возраст;
- прошлые обращения по ЛОР-темам;
- последние анализы;
- аллергии и хронические заболевания.
На этом шаге появляется структурированная «карточка случая», а не просто текст:
- жалоба + длительность;
- ключевые симптомы;
- вытащенные значения из анализов;
- релевантные куски истории.
3. Слой ИИ как инструмента
Затем включается LLM. Внутри у меня несколько «виртуальных врачей»:
- условно отечественная школа;
- западная доказательная;
- более мягкий / «восточный» профиль;
- отдельный профиль под косметологию.
Каждый профиль — это свои инструкции и ограничения, но данные у всех одни и те же: та самая «карточка случая».
Модель на вход получает:
- системное описание роли («ты врач такой-то школы, твоя задача…»);
- структурированный кейс;
- ограничения: когда нужно отправить к живому врачу, что нельзя советовать детям и т.п.
На выходе я прошу не просто «ответ текстом», а набор полей:
- краткое человеческое summary;
- список рисков / поводов для офлайна;
- список наблюдений;
- текст объяснения для родителя.
Бот показывает объяснение, а сервис записывает всё это в историю конкретного визита.
Если хочется второе мнение — тот же кейс уходит в другой профиль врача, и бот показывает ответы рядом.
Косметология: тот же подход, другая предметка
Косметология родилась почти автоматически — на тех же рельсах.
Сценарий:
- Бот спрашивает про кожу и цели (зона лица, жалобы, уход).
- Пользователь кидает селфи.
- Сервис: сохраняет оригинальное фото; прогоняет через распознавание; превращает в набор признаков: тип кожи, наличие покраснений, пигментации и т.п.
- сохраняет оригинальное фото;
- прогоняет через распознавание;
- превращает в набор признаков: тип кожи, наличие покраснений, пигментации и т.п.
- В LLM уходит уже структурированное описание кожи + история прошлых рекомендаций по этому человеку.
- Профиль «косметолог» строит план ухода, который бот показывает и складывает в историю.
Для модели это всё те же инструменты:
- «дай мне признаки кожи по этому человеку»;
- «дай историю прошлых назначений»;
- «запиши новые рекомендации».
Предметная область другая, архитектурный подход — тот же.
Почему я не стал просто «увеличивать контекст»
На этом месте обычно спрашивают:
«Ну ок, а если просто давать модели побольше текста? Контекст-то растёт».
Проблемы не исчезают:
- Окно всё равно конечно. В какой-то момент вы всё равно обрезаете историю. Чем — эвристикой и удачей.
- Шум. В реальной жизни диалог с ботом полон случайных реплик, уточнений, опечаток. Модель тратит токены и внимание на то, что в медицинском смысле ничему не помогает.
- Сложно объяснить решение. Когда всё завязано на текст, тяжело честно ответить: откуда модель взяла тот или иной вывод; какие анализы были учтены, а какие нет; не опирается ли она на устаревшую рекомендацию полугодичной давности.
- откуда модель взяла тот или иной вывод;
- какие анализы были учтены, а какие нет;
- не опирается ли она на устаревшую рекомендацию полугодичной давности.
Когда у вас есть MCP-подход, вы:
- явно определяете, какие факты входят в кейс;
- можете логировать именно «факты, на основе которых работала модель»;
- в любой момент воспроизводите ситуацию: тот же кейс → та же или другая модель → сравнение результатов.
Зачем это всё мне — и почему это не только про мою семью
Первая мотивация была очень приземлённой:
- перестать паниковать ночью, когда «что-то болит»;
- иметь одну точку правды по анализам и историям болезней;
- не пересказывать всё заново каждому врачу и каждой модели.
Для моей семьи @NoPanicHealthBot уже стал чем-то вроде
«семейной медицинской карты с умным слоем сверху».
Но по мере развития стало очевидно, что:
- паттерн «личный MCP-сервер для человека» универсален;
- сверху можно подключать разные LLM (облачные, локальные, self-hosted);
- интерфейсом может быть не только Telegram, но и веб, мобильные приложения, интеграции с клиниками или страховыми.
То есть из «домашнего проекта» это легко превращается в продукт для широкой аудитории — с тем же ядром:
структурированная персональная память + слой инструментов для ИИ.
Что можно утащить из этого опыта
Если вы работаете с LLM и вам тесно в формате «ещё один чат-бот», вот три идеи, которые я вынес:
- Разделяйте интеллект и память. Модель не обязана помнить вашу доменную историю. Память должна быть в вашем сервисе.
- Смотрите на свой бэкенд как на MCP-сервер. Опишите, какие именно инструменты нужны модели: не «текст диалога», а функции с чёткими контрактами над вашей предметкой.
- Стройте контуры управления вокруг ИИ, а не внутри промпта. Ограничения, проверка, аудит — это нормальная инженерная работа, а не «магия подсказок».
Голый ChatGPT отлично отвечает на разовые вопросы.
Но как только вы хотите, чтобы ИИ жил вместе с человеком, помнил его историю и работал по понятным правилам, вам почти неизбежно приходится строить вокруг него что-то вроде личного MCP-сервера.
В моём случае это вылилось в @NoPanicHealthBot — семейного медбота, который со временем, возможно, перестанет быть только семейным.
22 открытий112 показов



