Как сделать приложение персонального ассистента на LLM и vibe coding
Пошаговый план, как сделать приложение персонального ассистента на LLM: сценарии, архитектура, данные, безопасность, интеграции, тестирование и запуск.

Определяем сценарии и границы ассистента
Начинать стоит не с выбора модели, а с честного ответа на вопрос: в каких ситуациях ассистент будет действительно полезен, а где только добавит шум. Чем конкретнее сценарии, тем проще собрать MVP, подобрать инструменты и оценить качество.
Какие задачи ассистент берёт на себя
Сформулируйте 5–10 типовых запросов, которые вы хотите «отдать» ассистенту. Для персонального помощника обычно выигрывают рутинные вещи: быстро записать задачу или мысль, превратить голосовую фразу в заметку, разложить дела по дням, напомнить о встрече, найти информацию по вашим же записям.
Сразу разделите «болтовню» и «действия». Одно дело — подсказать формулировку письма, другое — создать задачу, поставить напоминание или перенести событие в календаре. Это разделение потом сильно упростит и архитектуру, и тестирование.
Отдельно определите границы поиска: ассистент работает только по внутренним заметкам/задачам или ещё и по внешним источникам. Если внешние источники не критичны, вы снижаете риски и требования к модерации и безопасности.
Кто ваш пользователь: один, семья или команда
Личный ассистент может быть «смелее» с контекстом: запоминать предпочтения, стиль общения, рабочие часы, привычные проекты. Семейный сценарий сразу требует ролей и приватности: общие списки покупок — да, но медицинские заметки и личные планы — только с ограничением доступа.
Командный ассистент — это уже полуоператор процессов. Ему нужны правила, согласования и журнал действий. Типичный компромисс: ассистент предлагает создать задачу или подготовить изменение, а финальное подтверждение делает человек.
Каналы общения и ожидания по скорости
Чат почти всегда лучший старт: он проще в реализации и прозрачнее для пользователя (видно, что именно понял ассистент). Голос удобен «на ходу», но требует более строгих сценариев и коротких ответов. Виджеты и быстрые кнопки полезны там, где важна скорость: «добавить задачу», «поставить таймер», «напомнить вечером».
Критерии успеха (как понять, что ассистент удался)
Заранее зафиксируйте измеримые показатели — иначе легко «улучшать» ассистента бесконечно. Обычно хватает нескольких метрик: экономия времени на типовых действиях (например, задача создаётся за 10–15 секунд), точность понимания намерения (меньше лишних уточнений), скорость ответа и выполнения действий, предсказуемость (ничего не делается без подтверждения) и понятная приватность (минимально необходимое хранение данных и прозрачные разрешения).
Границы — это часть продукта. Прямо сформулируйте, что ассистент не делает (например, не отправляет сообщения и не переносит встречи без подтверждения), и доверие появится заметно быстрее.
Формируем MVP и дорожную карту функций
MVP для персонального ассистента — это не «урезанная версия мечты», а минимальный набор возможностей, который решает одну-две реальные боли и позволяет быстро проверить гипотезы. Частая ошибка — начинать с интеграций и «умных» функций, не убедившись, что базовый сценарий общения и управления делами работает без трения.
Что включить в MVP
Начните с ядра: чат как единая точка входа, где пользователь пишет обычным русским языком. К чату добавьте простые сущности, которые ассистент умеет создавать и читать: задачи, напоминания и заметки. Полезный минимум обычно выглядит так: «добавь задачу», «напомни завтра в 10», «найди заметку про отпуск» — и это стабильно срабатывает.
Чтобы MVP был завершённым, договоритесь о границах: ассистент управляет задачами/заметками, умеет искать по ним и планировать напоминания, но не «живёт» во всех сервисах пользователя.
Что добавить во второй итерации
Когда базовая ценность подтверждена, добавляйте функции, которые повышают вовлечённость, но не ломают архитектуру: голосовой ввод/вывод (хотя бы в мобильном приложении), краткое резюме дня, извлечение задач из текста. При этом интеграции разумно вводить постепенно: сначала как ручная загрузка текста или ограниченный набор источников, а уже потом — как полноценные подключения.
Что осознанно отложить
Сложные интеграции с десятками сервисов, многоуровневые роли и права, а также «полноценный RAG по всему диску» лучше перенести на момент, когда понятны сценарии, метрики и частые запросы. Эти направления резко увеличивают объём данных, риски приватности и стоимость поддержки.
Как измерять прогресс
Переведите план в пользовательские истории и короткий чек‑лист готовности. Например, пользователь создаёт и закрывает задачу через чат без ручного редактирования; напоминание приходит вовремя и содержит контекст; поиск по заметкам находит нужное по нескольким формулировкам; ассистент корректно уточняет, если в запросе не хватает даты/времени; логи и базовая аналитика показывают, где система «спотыкается».
Выбираем общую архитектуру приложения
Хорошая архитектура для персонального ассистента начинается не с «какую модель взять», а с разделения ролей: клиентское приложение, серверная часть, LLM и инструменты (tools), которые выполняют реальные действия. Такой подход держит ИИ под контролем: модель отвечает за понимание запроса и план, а выполнение — за предсказуемым кодом.
Роли и границы ответственности
Удобно мыслить систему как набор компонентов: клиент (веб или мобильный), API‑сервер, LLM, набор tools (календарь, задачи, заметки, поиск, уведомления) и хранилище (например, PostgreSQL) для долговременных данных и журналов.
Где хранить данные и почему это важно
Ассистенту обычно нужны заметки, задачи, события календаря, настройки пользователя (часовой пояс, язык, предпочтения), привязки интеграций и состояние устройств. Всё, что должно переживать перезапуск приложения и быть доступным на нескольких устройствах, храните на сервере. На клиенте оставляйте кэш и локальные черновики: это упрощает синхронизацию и снижает риск утечек.
Типовой поток запроса
Базовый цикл выглядит так: запрос пользователя → сервер собирает контекст (профиль, последние реплики, релевантные задачи/заметки) → LLM предлагает план → при необходимости сервер вызывает tools (создать задачу, перенести встречу, найти заметку) → сервер сохраняет результат и логи → клиент получает ответ и обновлённое состояние.
Логируйте не только текст ответа, но и «решения»: какие инструменты вызывались, с какими параметрами, что вернулось и сколько заняло времени. Это ускоряет отладку и помогает улучшать качество.
Права доступа: пользователи, устройства, токены
Минимальная схема: один пользователь может иметь несколько устройств; каждое устройство получает свой токен с возможностью отзыва. Для интеграций используйте отдельные ключи с ограниченными правами (например, только чтение календаря или только создание задач). Тогда даже при компрометации одного устройства вы не открываете весь аккаунт.
Данные и приватность: что хранить и как защищать
Персональный ассистент ценен ровно настолько, насколько ему можно доверять. Поэтому дизайн данных лучше начинать с принципа минимально необходимого: храните только то, что реально улучшает опыт пользователя или нужно для работы функций.
Какие данные собирать: минимум необходимого
Практично разделить данные на понятные слои и для каждого определить цель и срок хранения: профиль и предпочтения (язык, часовой пояс, формат дат), задачи/события и напоминания, короткое окно контекста общения, данные интеграций (токены и идентификаторы без лишних выгрузок), технические логи и метрики (по возможности обезличенные).
Сырые голосовые записи и полные расшифровки имеет смысл хранить только если это критично для функции — и только по явному выбору пользователя.
Настройки приватности и право на удаление
Пользователю нужны простые переключатели: хранить историю диалогов или нет, включать «память» ассистента или работать без неё, а также понятная кнопка удаления. Хорошая практика — раздельное удаление: диалоги, задачи/события, подключённые интеграции и удаление всего аккаунта целиком. Дополнительно полезен срок автоочистки (например, 7/30/90 дней) для истории чатов и логов.
Локализация данных и требования РФ
Если вы делаете продукт для российского рынка, заранее зафиксируйте, где физически находятся серверы и где обрабатываются данные. Это влияет и на юридические требования, и на доверие пользователей. В частности, TakProsto (takprosto.ai) работает на серверах в России и использует локализованные open‑source LLM‑модели, не отправляя данные за рубеж — такой контур может упростить обсуждение соответствия корпоративным политикам.
Базовая безопасность: шифрование, токены, аудит
Минимальный набор мер: шифрование «на диске» для базы и TLS «в полёте», короткоживущие токены доступа, ротация ключей и строгие права сервисов (каждый компонент видит только своё). Для действий ассистента критичен аудит: кто инициировал операцию, какие параметры были у команды, что изменилось в данных. Это помогает разбирать инциденты и доказывать корректность поведения — особенно когда ассистент умеет выполнять действия, а не только отвечать текстом.
Модель и промпты: качество ответов на русском
Качество ассистента почти всегда упирается не в «умность интерфейса», а в две вещи: насколько хорошо выбранная LLM работает на русском и насколько аккуратно вы управляете контекстом. Ошибки на этом этапе приводят к «красивым, но неверным» ответам или к чрезмерно уверенным формулировкам.
Как выбирать LLM под русский язык
Смотрите на реальные диалоги, а не на маркетинговые бенчмарки. Просите модель уточнять вводные, пересказывать, заполнять шаблоны задач, корректно склонять имена и даты, понимать разговорные формулировки. Дальше включаются прагматичные параметры: цена токенов, задержка (особенно для голосового режима), максимальная длина контекста и ограничения по данным.
Если у вас чувствительные данные, отдельно оцените требования к размещению и маршрутизации: где именно обрабатывается запрос и какие следы остаются.
Контекст: правила, память и резюме
Хороший промпт — это не один абзац, а структура. Базовые правила держите в системной части (роль ассистента, запреты, формат ответов). Пользовательские предпочтения — в профиле. Историю диалога периодически сжимайте в резюме: так вы не тащите десятки экранов чата в каждый запрос и не платите за лишние токены.
Антигаллюцинации: меньше уверенности, больше проверок
Задача промпта — научить ассистента признавать неопределённость и не имитировать действия. Полезные правила просты: при нехватке данных — уточнять; нельзя утверждать, что действие выполнено без вызова инструмента; сначала согласование плана, затем выполнение; для фактов из базы знаний — опора на найденные фрагменты, иначе честная пометка о предположении.
Стиль общения: тон, краткость, формат
На русском полезно зафиксировать стиль по умолчанию: короткий ответ сначала, детали — по запросу; единый формат для задач (что сделать, когда, приоритет); нейтральный тон без фамильярности. Если ассистент часто «разливается», добавьте лимиты: несколько строк по умолчанию и вопрос «показать подробнее?».
Промпты удобно держать как версионируемые шаблоны (роль, формат, политики), чтобы обновлять поведение так же управляемо, как код.
Инструменты (tool calling) и действия ассистента
Чтобы ассистент был не просто чат‑ботом, ему нужны действия: создать задачу, поставить напоминание, записать заметку, найти информацию, запустить таймер. В LLM‑приложении это обычно делается через tool calling: модель выбирает инструмент и передаёт структурированные параметры, а вы выполняете действие в бэкенде и возвращаете результат обратно в диалог.
Какие инструменты дать в MVP
Начните с небольшого набора, где ценность понятна пользователю и легко проверяется: задачи, заметки, напоминания/таймер и поиск по вашей базе. Календарь можно подключать чуть позже, когда вы уверены в сценариях подтверждения и обработке конфликтов расписания.
Правила вызова: параметры и подтверждения
Качество tool calling определяется дисциплиной интерфейсов. Каждый инструмент должен иметь явную схему параметров и правила заполнения.
Отделяйте безопасные действия от необратимых. Любые изменения (создать, удалить, перенести, отправить) лучше делать в два шага: сначала ассистент показывает, что именно будет изменено, затем просит подтверждение. Если данных не хватает — задаёт короткий уточняющий вопрос вместо того, чтобы «додумывать».
Логи инструментов и работа с ошибками
Для отладки фиксируйте след вокруг инструмента: имя tool, нормализованные параметры, идентификатор сессии, результат (успех/ошибка), длительность и корреляционный id.
Инструменты будут падать: сеть, лимиты, конфликты расписания. Возвращайте модели структурированную ошибку (код, сообщение, варианты следующего шага). Поддержите частичные успехи («создал 2 задачи из 3…») и идемпотентность, чтобы повторы не создавали дубликаты.
Память и база знаний: RAG без лишней сложности
Ассистент становится «персональным» не из‑за длинного контекста, а потому что умеет опираться на ваши данные: заметки, историю задач, договорённости и предпочтения. Важно разделить два понятия: память (короткие выводы о пользователе и текущей работе) и база знаний (факты и документы, к которым ассистент обращается по запросу).
База знаний: что индексировать
Начните с источников, которые действительно помогают каждый день: личные заметки, проекты и задачи, чек‑листы, шаблоны писем, повторяющиеся решения. Храните метаданные (теги, дата, проект, важность) — это повышает точность и объяснимость.
Для простой версии RAG часто достаточно: разбить заметки на фрагменты, сохранить фрагменты с метаданными, посчитать эмбеддинги, по вопросу искать топ релевантных фрагментов и передавать их в LLM с инструкцией «опирайся на источники». Полезно показывать, какие фрагменты использовались: это не «академичность», а доверие и возможность быстро поправить первоисточник.
Память: профиль и последние события
Память лучше держать минимальной и управляемой. Обычно хватает двух слоёв:
- профильное резюме со стабильными предпочтениями (обновляется редко);
- «последние события» — краткая выжимка из недавних диалогов и действий (живёт ограниченное время).
Заранее задайте правила: срок хранения, максимальный размер резюме и возможность ручного редактирования памяти. Это снижает риск накопления ошибок и делает поведение предсказуемым.
Интерфейс: веб и мобильное приложение
Интерфейс персонального ассистента — не «обёртка вокруг LLM», а главный фактор доверия. Даже самый умный помощник раздражает, если непонятно, что он делает, где увидеть результат и как отменить ошибку.
Веб: чат как центр управления
В веб‑версии удобно строить опыт вокруг диалога, но не замыкаться только на нём. Чат должен быть «пультом», из которого видно состояние дел: список задач, ближайшие напоминания, подключённые интеграции, ограничения (например, какие календари можно читать).
Сделайте сообщения ассистента структурированными: текст отдельно, предложенные действия — отдельно, изменения данных — отдельно. Тогда пользователь легко отличает «совет» от «операции».
Мобильное: скорость, голос и напоминания
На телефоне ценится скорость: один экран для быстрого ввода, быстрые кнопки и голос, когда печатать неудобно. Полезны офлайн‑черновики: пользователь надиктовал мысль без сети, а приложение отправило запрос позже.
Push‑напоминания превращают ассистента из чата в привычку. Важно, чтобы уведомление вело к понятному экрану: что это за задача, почему напоминание сейчас и какие быстрые варианты есть дальше (отложить, выполнить, изменить).
UX‑правила, которые экономят нервы
Подтверждайте действия, которые меняют данные, и показывайте краткий итог. Давайте «Отменить» в течение нескольких секунд после операции и ведите понятный журнал изменений. Ясно обозначайте границы: что ассистент знает, что не знает и какие источники использует.
Доступность без лишней бюрократии
Крупный шрифт, контрастные состояния и читаемые кнопки должны быть по умолчанию — ассистентом пользуются часто и на ходу. На вебе важны управление с клавиатуры, видимый фокус и корректные подписи у полей и кнопок.
Технологический стек и инфраструктура под ассистента
Стек лучше выбирать так, чтобы он одинаково хорошо выдерживал и «обычное» приложение (аккаунты, задачи, календарь), и нагрузку от LLM‑запросов (длинные диалоги, инструменты, память). Практичный вариант для MVP — веб на React, бэкенд на Go и PostgreSQL, мобильное приложение на Flutter: быстрый интерфейс, предсказуемая серверная производительность и единая мобильная кодовая база.
Как разложить бэкенд по слоям
Чтобы ассистент не превратился в монолит «одной ручки /chat», разделите сервер на части: API‑слой (аутентификация, лимиты, контекст), доменную логику (задачи, события, заметки, права), слой интеграций и слой выполнения действий.
Отделяйте синхронные ответы от фоновых работ: сводки, массовая обработка и отчёты удобнее делать через очередь задач и воркеры. Отдельного внимания заслуживает планировщик напоминаний: запись в БД, периодический планировщик, постановка задач в очередь и отправка уведомления. Так вы переживаете перезапуски и снижаете риск пропусков.
Уведомления: что выбрать для MVP
Для первого релиза обычно достаточно одного канала, который пользователь точно заметит: внутренние напоминания в приложении. Email может быть резервным каналом, а push имеет смысл подключать, когда подтверждён сценарий «на ходу» и есть мобильное приложение.
Наблюдаемость и стоимость LLM
Ассистента нужно измерять не только аптаймом. Минимальный набор: задержки (p50/p95), доля ошибок по типам (LLM, интеграции, валидация), длина диалогов, число вызовов инструментов и стоимость хотя бы в разрезе «запрос/пользователь/день». Это быстро показывает, где модель говорит лишнее, где распухает промпт и где пора сокращать контекст или добавлять кэш.
Тестирование диалогов и контроль качества
Хороший персональный ассистент отличают не «умные ответы», а предсказуемые действия. Поэтому тестирование стоит строить вокруг двух контуров: бизнес‑логики (инструменты и интеграции) и диалога (как ассистент ведёт разговор и принимает решения).
Юнит‑тесты: проверяем не модель, а действия
Самый быстрый выигрыш дают юнит‑тесты на инструменты: создание и обновление задач, операции с календарём, права доступа, дедлайны, повторяющиеся события. Важно тестировать идемпотентность: если пользователь повторил команду или сеть «моргнула», ассистент не должен создавать дубликаты и повторно применять изменения.
Набор типовых диалогов: сценарии как регрессия
Соберите «золотой набор» диалогов и прогоняйте его перед каждым релизом. Это должна быть не просто переписка, а проверка того, что на каждом шаге вызываются правильные инструменты и задаются нужные уточнения — включая случаи с неполными данными и конфликтами.
Метрики качества: чтобы улучшать, а не спорить
Зафиксируйте показатели, по которым вы обсуждаете качество: точность действий, число уточняющих вопросов на сценарий, доля отказов/ошибок инструментов, время до результата и короткая оценка удовлетворённости после завершения задачи.
Опасные действия — только с подтверждением
Ассистент должен «тормозить» перед необратимыми операциями: удалением событий, массовыми переносами, отправкой сообщений, изменением прав доступа. Практика простая: сначала план, затем явное подтверждение, и только потом — вызов инструмента. Это полезно закреплять правилами на уровне бизнес‑логики, независимо от того, что «решила» модель.
Запуск и поддержка: релизы без сюрпризов
Запуск персонального ассистента на LLM — это не «один релиз и забыли», а эксплуатация: диалоги живые, нагрузка непредсказуемая, а качество ответов меняется от промптов, данных и интеграций. Поэтому релизы лучше планировать как последовательность контролируемых шагов.
Стратегия релиза: от беты к стабильности
Начните с закрытой беты на небольшой группе: так вы быстрее увидите реальные сценарии и «краевые случаи». Затем выпускайте публичный MVP, но с отключаемыми функциями и лимитами. Оптимальна последовательность «от простого к сложному»: сначала текстовый чат и задачи, потом календарь/почта, затем голос и более глубокие интеграции.
Фича‑флаги на стороне сервера помогут включать и выключать действия ассистента без пересборки клиентов.
Стабильность под нагрузкой: лимиты, таймауты, очередь
Ассистент часто падает не из‑за UI, а из‑за цепочки вызовов: модель → инструменты → внешние API → база данных. Заранее заложите лимиты запросов и бюджета токенов, таймауты на tool calling, очередь фоновых задач для долгих операций, а также понятную деградацию — когда ассистент честно сообщает, что выполнит действие позже или предложит упрощённый режим.
Обновления: версионирование промптов и миграции
Промпты — такой же код. Версионируйте их, храните историю изменений и привязывайте версии к релизам. Для базы данных используйте миграции с обратной совместимостью, особенно если веб, бэкенд и мобильные клиенты обновляются не одновременно.
Поддержка: обратная связь и разбор ошибок
Добавьте быстрый канал обратной связи прямо в приложении: «полезно/неполезно», причина и возможность приложить контекст (с согласия пользователя). Ошибки группируйте по сценариям: так вы улучшаете не абстрактную «модель», а конкретные пользовательские пути.
Как ускорить разработку с vibe coding
Vibe coding лучше всего работает, когда вы не пытаетесь «сразу сделать идеальный ассистент», а двигаетесь короткими итерациями: фиксируете сценарии, собираете прототип, проверяете на реальных запросах и только после этого автоматизируете повторяющиеся части. Главная идея — как можно раньше получить первый диалог, который реально решает одну задачу пользователя, и уже вокруг него наращивать память, инструменты и интерфейсы.
Ритм разработки: от сценария к работающему прототипу
Практичный подход выглядит так: описываете 5–10 типовых запросов (например, «составь план дня», «создай задачу и напомни», «собери сводку по проекту»), задаёте границы, и сразу проверяете эти сценарии в живом чате. Затем добавляете минимальные действия: создание задач, запись заметок, поиск по базе знаний — ровно то, что нужно для MVP.
Контроль изменений и командная работа
Ускорение ломается, если нет дисциплины изменений. Нужны повторяемые тестовые сценарии, версионирование промптов и возможность быстро откатиться, если очередная правка ухудшила качество. Во многих командах это становится решающим фактором скорости: меньше времени на «пожары», больше — на итерации.
Следующие шаги
Если вы застряли на выборе, начните с одного сценария, который приносит ценность за 30 секунд: например, «превратить сообщение в задачу с дедлайном». Опишите, какие инструменты ассистенту нужны для этого действия, и соберите первый прототип. Дальше держитесь простого цикла: проверка → фиксация результата → улучшение.
Если вам близок подход vibe coding «в одном контуре», TakProsto (takprosto.ai) может быть удобной средой для прототипирования: веб‑клиент на React, бэкенд на Go с PostgreSQL и мобильная часть на Flutter, плюс планирование, снапшоты и откат изменений, когда вы активно экспериментируете с промптами и tool calling.
FAQ
С чего начать разработку персонального ассистента на LLM?
Начните с 5–10 конкретных сценариев, которые повторяются почти каждый день: создать задачу, поставить напоминание, найти заметку, разложить дела по дням.
Затем зафиксируйте границы: что ассистент делает, а что никогда не делает без подтверждения (например, перенос встреч и удаление событий).
Что обязательно должно быть в MVP ассистента?
Хороший MVP — это чат + три сущности: задачи, заметки и напоминания/таймер.
Проверьте, что стабильно работают запросы вроде:
- «добавь задачу…»
- «напомни завтра в 10…»
- «найди заметку про…»
Интеграции и сложную «память обо всём» лучше отложить до подтверждения базовой ценности.
Как правильно разделить ответы ассистента и реальные действия?
Разделите «разговор» и «действия».
- Болтовня: модель отвечает текстом, помогает сформулировать письмо, объясняет, предлагает варианты.
- Действия: выполняются через tools (создание задач, напоминаний, поиск), и должны быть предсказуемыми и проверяемыми.
Так проще тестировать и исключать ситуации, когда ассистент «притворился», что что-то сделал.
Как выглядит типовая архитектура LLM-ассистента?
Базовый поток обычно такой:
- Пользователь пишет запрос.
- Сервер собирает контекст (профиль, последние сообщения, релевантные заметки/задачи).
- LLM предлагает план или выбирает tool.
- Сервер вызывает tool (создать задачу, найти заметку, поставить напоминание).
- Результат сохраняется в БД и возвращается в чат.
Важно логировать не только текст, но и какие tools вызывались и с какими параметрами.
Что хранить в данных ассистента, а что лучше не хранить?
По умолчанию храните на сервере только то, что реально нужно:
- задачи/заметки/напоминания
- настройки (язык, часовой пояс)
- короткую историю диалога или её резюме
- технические логи (желательно обезличенные)
На клиенте оставляйте кэш и черновики — так проще синхронизация и меньше риск утечек.
Когда нужно спрашивать подтверждение у пользователя?
Простое правило: всё, что меняет данные, требует подтверждения.
Двухшаговая схема:
- ассистент показывает, что именно сделает (дата, название, список изменений);
- пользователь подтверждает — только тогда выполняется tool.
Если не хватает данных (время, дата, проект) — лучше задать один короткий уточняющий вопрос, чем «додумывать».
Какие tools лучше дать ассистенту в первом релизе?
Начните с 3–5 инструментов, которые легко объяснить и проверить:
- задачи (создать/закрыть/перенести)
- заметки (создать/найти)
- напоминания/таймер
- поиск по базе пользователя
Календарь и внешние интеграции подключайте позже, когда уже отработаны подтверждения, конфликты расписания и обработка ошибок.
Как управлять контекстом и снижать галлюцинации на русском?
Используйте сочетание:
- системные правила (формат, запреты, что делать при неопределённости)
- профиль пользователя (предпочтения)
- резюме истории вместо полной переписки
Для «антигаллюцинаций» зафиксируйте правила:
- при нехватке данных — уточнить;
- не заявлять, что действие выполнено без tool;
- опираться на найденные фрагменты заметок/БЗ, иначе честно помечать предположение.
Чем отличается память ассистента от базы знаний (RAG)?
База знаний (RAG) — это доступ к вашим заметкам и документам по запросу.
Практичный минимум:
- разбить заметки на фрагменты
- добавить метаданные (дата, проект, теги)
- искать топ релевантных фрагментов
- передавать их в LLM с инструкцией «опирайся на источники»
Память держите короткой: стабильные предпочтения + краткие «последние события» с ограниченным сроком жизни.
Как понять, что ассистент реально стал лучше, и что измерять?
Смотрите на метрики, которые отражают пользу, а не «красоту ответов»:
- время до результата (например, задача создаётся за 10–15 секунд)
- точность намерения (меньше лишних уточнений)
- доля ошибок tools и внешних интеграций
- предсказуемость (ничего не меняется без подтверждения)
- стоимость LLM в разрезе «запрос/пользователь/день»
Плюс заведите «золотой набор» типовых диалогов и прогоняйте его как регрессию перед релизами.