Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11

Почему голого ChatGPT мне не хватило

История разработчика и отца, который сделал семейного медбота и превратил его бэкенд в личный MCP-сервер с длительной памятью для каждого человека.

22 открытий112 показов
Почему голого ChatGPT мне не хватило

Я разработчик и многодетный отец. Вечером у меня обычно не хакатон, а «дежурство в приёмном покое»: работа, дедлайны, быт — и параллельно кто-то из детей приходит с «пап, у меня что-то болит».

В 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;
  • список рисков / поводов для офлайна;
  • список наблюдений;
  • текст объяснения для родителя.

Бот показывает объяснение, а сервис записывает всё это в историю конкретного визита.

Если хочется второе мнение — тот же кейс уходит в другой профиль врача, и бот показывает ответы рядом.

Косметология: тот же подход, другая предметка

Косметология родилась почти автоматически — на тех же рельсах.

Сценарий:

  1. Бот спрашивает про кожу и цели (зона лица, жалобы, уход).
  2. Пользователь кидает селфи.
  3. Сервис: сохраняет оригинальное фото; прогоняет через распознавание; превращает в набор признаков: тип кожи, наличие покраснений, пигментации и т.п.
  4. сохраняет оригинальное фото;
  5. прогоняет через распознавание;
  6. превращает в набор признаков: тип кожи, наличие покраснений, пигментации и т.п.
  7. В LLM уходит уже структурированное описание кожи + история прошлых рекомендаций по этому человеку.
  8. Профиль «косметолог» строит план ухода, который бот показывает и складывает в историю.

Для модели это всё те же инструменты:

  • «дай мне признаки кожи по этому человеку»;
  • «дай историю прошлых назначений»;
  • «запиши новые рекомендации».

Предметная область другая, архитектурный подход — тот же.

Почему я не стал просто «увеличивать контекст»

На этом месте обычно спрашивают:

«Ну ок, а если просто давать модели побольше текста? Контекст-то растёт».

Проблемы не исчезают:

  1. Окно всё равно конечно. В какой-то момент вы всё равно обрезаете историю. Чем — эвристикой и удачей.
  2. Шум. В реальной жизни диалог с ботом полон случайных реплик, уточнений, опечаток. Модель тратит токены и внимание на то, что в медицинском смысле ничему не помогает.
  3. Сложно объяснить решение. Когда всё завязано на текст, тяжело честно ответить: откуда модель взяла тот или иной вывод; какие анализы были учтены, а какие нет; не опирается ли она на устаревшую рекомендацию полугодичной давности.
  4. откуда модель взяла тот или иной вывод;
  5. какие анализы были учтены, а какие нет;
  6. не опирается ли она на устаревшую рекомендацию полугодичной давности.

Когда у вас есть MCP-подход, вы:

  • явно определяете, какие факты входят в кейс;
  • можете логировать именно «факты, на основе которых работала модель»;
  • в любой момент воспроизводите ситуацию: тот же кейс → та же или другая модель → сравнение результатов.

Зачем это всё мне — и почему это не только про мою семью

Первая мотивация была очень приземлённой:

  • перестать паниковать ночью, когда «что-то болит»;
  • иметь одну точку правды по анализам и историям болезней;
  • не пересказывать всё заново каждому врачу и каждой модели.

Для моей семьи @NoPanicHealthBot уже стал чем-то вроде

«семейной медицинской карты с умным слоем сверху».

Но по мере развития стало очевидно, что:

  • паттерн «личный MCP-сервер для человека» универсален;
  • сверху можно подключать разные LLM (облачные, локальные, self-hosted);
  • интерфейсом может быть не только Telegram, но и веб, мобильные приложения, интеграции с клиниками или страховыми.

То есть из «домашнего проекта» это легко превращается в продукт для широкой аудитории — с тем же ядром:

структурированная персональная память + слой инструментов для ИИ.

Что можно утащить из этого опыта

Если вы работаете с LLM и вам тесно в формате «ещё один чат-бот», вот три идеи, которые я вынес:

  1. Разделяйте интеллект и память. Модель не обязана помнить вашу доменную историю. Память должна быть в вашем сервисе.
  2. Смотрите на свой бэкенд как на MCP-сервер. Опишите, какие именно инструменты нужны модели: не «текст диалога», а функции с чёткими контрактами над вашей предметкой.
  3. Стройте контуры управления вокруг ИИ, а не внутри промпта. Ограничения, проверка, аудит — это нормальная инженерная работа, а не «магия подсказок».

Голый ChatGPT отлично отвечает на разовые вопросы.

Но как только вы хотите, чтобы ИИ жил вместе с человеком, помнил его историю и работал по понятным правилам, вам почти неизбежно приходится строить вокруг него что-то вроде личного MCP-сервера.

В моём случае это вылилось в @NoPanicHealthBot — семейного медбота, который со временем, возможно, перестанет быть только семейным.

Следите за новыми постами
Следите за новыми постами по любимым темам
22 открытий112 показов