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

Я сделал Telegram-бота, который собирает корзину в ВкусВилл по одному сообщению. Вот как это работает

2026/03/03 12:00
5м. чтение
Для обратной связи или замечаний по поводу данного контента, свяжитесь с нами по адресу [email protected]

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

В какой-то момент поймал себя на мысли: я трачу больше времени на поиск гречки, чем гречка потом варится.

По данным Platforma (2021), россияне в среднем проводят от 19 до 49 минут в месяц на выбор продуктов онлайн с мобильного (жители Москвы — в 2,5 раза больше). При этом 65% покупателей называют экономию времени главной причиной онлайн-покупки продуктов (РБК, 2022) - данные несколько устаревшие, но все же.

Парадокс понятный: мы идём в онлайн, чтобы сэкономить время, и там же это время сливаем в рутину.

Я решил проверить простую гипотезу: если человек обычно заказывает одно и то же, можно ли собрать корзину по одной фразе вроде:

> «Собери завтрак на двоих»

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

> Дисклеймер: это личный open-source проект. Я не связан с компаниями ВкусВилл или Яндекс. Бот использует публичный API ВкусВилл и Yandex Cloud AI Studio на общих условиях. Код доступен на GitHub под лицензией Apache 2.0.

Давайте сразу к делу. Вот как выглядит типичный диалог:

**Пользователь:** Собери завтрак на двоих **Бот:** > 🛒 Завтрак на двоих (5 товаров, 612 руб): > 1. Яйца куриные С0, 10 шт — 89 руб × 1 = 89 руб > 2. Хлеб бородинский нарезной — 65 руб × 1 = 65 руб > 3. Масло сливочное 82.5%, 180 г — 169 руб × 1 = 169 руб > 4. Сыр Маасдам нарезка, 125 г — 159 руб × 1 = 159 руб > 5. Апельсиновый сок, 1 л — 130 руб × 1 = 130 руб > > Итого: 612 руб > [Открыть корзину](ссылка) > > Наличие и точное количество товаров будет проверено при > открытии ссылки на корзину. Цены уточняйте на сайте.

Бот не просто находит «что-то съедобное», а собирает цельный набор. Как сосед, которому вы дали список. Только сосед может принести ещё семечки и рассказ на 20 минут, а бот просто присылает ссылку.

##Что бот делает под капотом?

На запрос «завтрак на двоих» бот обычно делает 5 шагов:

Разбивает задачу на позиции (яйца, хлеб, масло, сыр, сок) Ищет каждую позицию в каталоге Выбирает лучший кандидат по релевантности/цене Рассчитывает количество (для рецептов - с учётом порций) Собирает одну ссылку на корзину На практике это 5-12 инструментальных вызовов и около 60 секунд ответа.

## Ещё два сценария

Рецепт далее корзина

2ded1cefa5a3abd226c9f8a8beb9d00d.gif

Пользователь: собери ингредиенты для окрошки на квасе

Бот извлекает ингредиенты, ищет их в каталоге, считает количества и собирает одну корзину.

Персонализация

я тебя запомнил )
я тебя запомнил )

Бот: Запомнил: молоко [записал в блокнотъ] безлактозное молоко

После этого в новых заказах бот подставляет нужный вариант автоматически.

Через пару недель он иногда помнит ваши привычки лучше, чем вы в субботу утром.

## Архитектура

4096aa2dcd0de5c97ef6fc3b390f418d.png

Если простыми словами, то:

  • Telegram принимает сообщения

  • Shopping Agent решает, что искать и в каком порядке

  • MCP Gateway ходит во внешние инструменты (поиск/корзина)

  • Хранилища держат предпочтения, историю и кэш

## Почему именно так

  • Qwen в Yandex Cloud: стабильно работает с русским языком и удобно доступен из РФ

  • MCP: единый протокол для инструментов; меньше «самописной склейки»

  • Сменяемая модель: провайдера можно заменить без переписывания половины проекта

Я сознательно не ухожу в код в этой статье. Здесь цель - показать продукт и механику. Технический разбор будет отдельно.

## Что пошло не так (и это нормально)

Рабочий ИИ-бот - это не только «вау-демо», но и ежедневные маленькие драки с реальностью.

  • Пользователь просит 3 пачки молока, а модель пытается положить одну

  • Поиск может зациклиться на одном и том же запросе (режим «я точно закрыл дверь?»)

  • Иногда встречаются величины уровня 0.68 банки огурцов

  • Из 5 найденных товаров в корзину может уехать 4 (обычно страдает сыр, не знаю почему)

Все эти кейсы я вынес в отдельную статью про «11 граблей» с кодом и фиксами.

Метрика

Значение

1

Ручной заказ

15-20 мин/неделю

2

Через бота

~60 секунд

3

Экономия

~75 мин/месяц (~15 часов/год)

4

Действия

~20 кликов -> 1 сообщение

5

Tool calls

5-12 на запрос (до 20 для сложных рецептов)

6

Точность подбора

~90% (с верификацией корзины)

7

Покрытие тестами

98%

\* Если попросить «что-нибудь вкусное, полезное, недорогое и с пармезаном, но чтобы недорого», модель тоже немного задумается.

## Что дальше в серии

Статья

О чём

1

Вы здесь

Демо и обзор: как бот собирает корзину

2

MCP + Qwen

Как устроен цикл tool calling и интеграция с API

3

11 граблей tool calling

Дубликаты, зацикливание, дробные количества, мусорные запросы

4

Тестирование ИИ-бота

Как тестировать недетерминированную систему

5

Юнит-экономика

Сколько стоит один заказ и где точка окупаемости

Попробовать

  • Бот в Telegram: [@vkus_eda_voda_bot](https://t.me/vkus_eda_voda_bot)

  • Исходный код: [GitHub](https://github.com/mrPDA/vkuswill_bot) (Apache)

Как использовать:

  1. Отправьте сообщение: «собери завтрак на двоих»

  2. Подождите ответ (~60 секунд)

  3. Откройте ссылку на корзину и оформите заказ

Источник вдохновения

Статья Вкусвилл о собственном MCP

Интересно, какие рутинные задачи в быту можно так же «свернуть в одно сообщение», напишите в комментариях. Соберу идеи для следующих экспериментов.

P.S. Бот сделан в формате AI-assisted development: архитектура и ключевые решения мои, ИИ помогал с реализацией. Отдельно покажу, где это реально ускоряет разработку, а где, наоборот, создаёт новые риски.

Источник

Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу [email protected] для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.