Почему у меня запрещено ставить LLM на клиентскую сторону
У меня в студии работает 13 автономных задач на Claude. Они ведут мой LinkedIn, пишут статьи для блога, мониторят SSI-систему, отправляют уведомления в Telegram. Я им доверяю — и сплю спокойно. Потому что если Claude напишет что-то не то в моём имени, я это увижу. Но если бы он написал это в ответ на вопрос покупателя о возврате товара на сайте моего клиента — это другая история. Именно поэтому у меня есть правило: никаких LLM на клиентской стороне. Пока.
Когда менеджер проекта говорит «давайте добавим AI-чат», он имеет в виду что-то конкретное: чат-бот поддержки, умный поисковый ассистент, генерация описаний товаров прямо в интерфейсе. Всё это — инструменты, которые разговаривают с живым покупателем, от имени бизнеса моего клиента. Я провожу чёткую границу: всё, что общается с покупателем напрямую — за линией. Туда я LLM не ставлю.
Что такое «клиентская сторона» в моём понимании
Клиентская сторона — это любой компонент системы, который генерирует контент или принимает решения, напрямую видимые конечному покупателю и влияющие на его доверие к бренду или его деньги.
Примеры: чат-бот поддержки, AI-ответ на вопрос «когда придёт мой заказ», автоматически сгенерированное описание товара без человеческой вычитки, рекомендательная система, которая сообщает «этот товар подойдёт вам, потому что...».
Внутренняя сторона — всё остальное: генерация черновиков, которые человек вычитывает; ранжирование результатов поиска по сигналам (без объяснений); автоматизация операционных задач, которые делаю я сам.
Граница не в технологии. Граница в том, кто видит output и несёт ли бизнес ответственность за его содержание перед внешним человеком.
Три фундаментальных различия
Когда AI делает ошибку внутри моей системы — я вижу её в логах. У меня есть STOP-файл, JSONL-логи, Telegram-уведомления о статусе каждой задачи. Если статья вышла не той интонацией — я вижу это до публикации или сразу после. Цена ошибки — мои нервы и время на исправление.
Когда LLM делает ошибку перед покупателем — покупатель уже получил ответ. Может быть, неправильную информацию о сроке доставки. Может быть, обещание возврата, которое не соответствует политике. Может быть, уверенный ответ о наличии товара, которого нет. Цена ошибки — доверие человека, который может больше не вернуться.
Первое отличие — наблюдаемость. Мои внутренние задачи дают мне полный observability: что Claude получил на вход, что выдал, какое решение принял. Клиентский чат-бот в масштабе — это тысячи разговоров, которые невозможно прочитать все.
Второе отличие — обратимость. Ошибочная черновая статья — редактируй. Неправильный ответ покупателю — он уже прочитан, возможно, уже стал основанием для претензии.
Третье отличие — атрибуция ответственности. Когда я делаю ошибку внутри студии — это моя ошибка. Когда LLM делает ошибку от имени бизнеса моего клиента — кто отвечает? Технически — разработчик, который это поставил. Практически — бизнес несёт репутационный удар. Это разные весовые категории.
Риски LLM в продакшне: что происходит, когда это игнорируют
На Хабре в 2026 году прошла волна публикаций от команд, которые поставили LLM в поддержку e-commerce и обнаружили паттерн, который один автор назвал «идеальным лжецом». Модель галлюцинировала с уверенностью. Придумывала сроки доставки, которых не было в базе. Обещала скидки, которые не существовали. Давала инструкции по возврату, прямо противоречившие реальной политике магазина. Покупатели получали ответы, звучавшие как официальная позиция компании.
Это не баг конкретной модели. Это свойство LLM: генерация правдоподобного текста, а не верифицированной информации. «Правдоподобный» и «правильный» — не одно и то же. В контексте вопроса о сроках доставки правдоподобный ответ может быть катастрофически неправильным.
Команды в этих историях откатывали продукт через 1-3 недели. Самое неприятное — они не всегда находили все ошибки. Часть покупателей просто ушла тихо, без претензий.
Почему prompt engineering не решает проблему
Стандартный контраргумент: «мы пропишем хороший системный промпт, ограничим scope, дадим модели только проверенные данные через RAG». Я слышу это часто. И это разумный путь — но он не устраняет проблему, он смещает её.
Галлюцинации в LLM — явление вероятностное. При правильном prompt и хорошем RAG их становится значительно меньше. Но «значительно меньше» в масштабе тысяч разговоров в день — это всё равно несколько неправильных ответов. Если речь идёт о стандартном FAQ — цена терпимая. Если речь идёт о цене, возврате или гарантии — каждый неправильный ответ потенциально юридически или репутационно значим.
У меня в 13 внутренних задачах Claude тоже иногда ошибается. В статье появляется неточная формулировка, задача выполняется не так, как я планировал. Это нормально — я в контуре. Но перенести эту логику на клиентскую сторону — значит принять, что n% разговоров с покупателями будут содержать ошибку. Это решение, которое я не готов принимать за клиента.
Где AI допустим в клиентском контексте
Это не значит, что AI вообще нельзя трогать в e-commerce. Есть зоны, где он работает без прямого general reasoning:
- Ранжирование без объяснений. Elasticsearch с поведенческими сигналами, ML-модель для упорядочивания результатов — это не LLM, который объясняет покупателю «почему этот товар вам подойдёт». Сигнал → вес → порядок. Нет генерации текста — нет галлюцинаций.
- Персонализация весов. Модель, которая решает, показывать ли баннер — без объяснений, без диалога. Бинарное, детерминированное решение.
- Внутренняя предобработка контента. Черновики описаний товаров, которые товаровед вычитывает и редактирует до публикации. AI ускоряет человека, но не заменяет его в коммуникации с покупателем.
Во всех этих случаях AI не разговаривает с покупателем. Он обрабатывает данные внутри системы, а результат видит либо сотрудник, либо покупатель получает его в детерминированной форме без LLM-генерации в real time.
Чеклист: когда я готов пересмотреть правило
Я не говорю «никогда». Я говорю «пока нет». Критерии, при которых я изменю подход:
- Полный observability разговоров. Не выборка — каждый диалог логируется и есть система для их ревью. Пока масштаб меньше 100 диалогов в день — возможно.
- Ограниченный scope с детерминированным fallback. LLM отвечает только на вопросы из проверенной базы знаний; если confidence ниже порога — передаёт человеку. Не «старается ответить», а честно говорит «не знаю, уточните у менеджера».
- Нет доступа к транзакционным данным в real time. Не к ценам, не к остаткам, не к статусам заказов — пока эти данные не верифицированы внешней системой с гарантированной консистентностью.
- Клиент понимает и принимает риск. Не «мы внедрили AI» в пресс-релизе — а реальное понимание того, что 0.5% разговоров могут содержать неточность, и это допустимо для их бизнес-модели.
- Есть процедура работы с последствиями. Что происходит, когда LLM ошибся? Кто разбирает претензию? За сколько времени?
Пока у клиента нет ответов на все пять пунктов — правило действует. Не из страха перед AI. Из уважения к тому, что разница между «моя ошибка» и «ошибка перед чужим покупателем» — не техническая, а этическая.
Внутри студии я продолжу ставить Claude на всё, где это имеет смысл. 13 задач станут 20. Но граница останется там же: approval gate на всё, что видит клиент.
*Внутренние ссылки: Где я намеренно держу approval gate · Как я доверяю AI-агенту в продакшне · Баг, который написал Claude*