инструменты 1 мин

Как латентность превращается в характер: дизайн AI-ассистента без интерфейса

Разработчик AI-ассистента для iMessage поделился неочевидными находками: без UI нельзя показать спиннер, поэтому задержка >10 сек воспринимается как игнор. Решение — двухмодельная схема: быстрая модель мгновенно подтверждает понимание запроса («смотрю три подписки на твоей Amex»), затем медленная делает работу. Ещё проблемы: как показывать возможности без меню, как обрезать длинные ответы и что делать, если пользователь пишет второе сообщение, пока первое обрабатывается.

Показывает, как инфраструктурные ограничения (отсутствие UI, асинхронность мессенджеров) трансформируют prompt design и архитектуру AI-систем. Паттерн fast-ack + slow-work применим к любым сценариям, где нельзя показать индикатор прогресса.

Когда интерфейса нет, латентность — это UX

Разработчик проекта Dexi — AI-ассистента, живущего в iMessage без отдельного приложения — описал нетривиальные проблемы дизайна взаимодействия, когда весь интерфейс — это текстовая переписка.

Проблема: тишина убивает доверие

Когда нельзя показать спиннер или стрим токенов, молчание дольше ~10 секунд воспринимается как игнорирование. Пользователь начинает писать снова, разветвляя контекст. Генерик-заглушки вроде «работаю над этим!» мгновенно выдают бота и убивают trust.

Решение: двухмодельная схема. Быстрая дешёвая модель извлекает intent и генерирует подтверждение с конкретикой из запроса: «смотрю три подписки на твоей Amex». Это доказывает понимание, а не просто получение сообщения. Затем медленная дорогая модель делает реальную работу. Даже если slow path тормозит, ощущение контроля сохраняется.

Discoverability без UI

Пользователи не видят возможностей, а онбординг-промпты игнорируются. Контекстное предложение функций («кстати, могу ещё X») работает на порядок лучше — но только когда запрос почти совпадает с соседним сценарием.

Длина ответа — это prompt engineering

В текстовом треде никто не читает шесть абзацев. Приходится жёстко капить output далеко ниже того, что хочет модель, и это реальная prompt-работа — «модель сопротивляется всю дорогу».

Самая грязная часть кода

Если пользователь пишет второе сообщение, пока обрабатывается первое: ставить в очередь, прерывать или сливать в один intent? Автор мержит — и называет это «самым уродливым кодом» в проекте.

Ключевые выводы

  • В безынтерфейсных AI-ассистентах латентность — это не техническая, а UX-проблема: молчание дольше 10 секунд воспринимается как игнорирование
  • Подтверждение от AI должно доказывать понимание (конкретика из запроса), а не просто получение сообщения — это критично для trust
  • Двухмодельная схема (fast cheap + slow smart) позволяет управлять ожиданиями без видимых индикаторов загрузки
  • Contextual discoverability (предложения «могу ещё X» в нужный момент) эффективнее любого статичного онбординга
  • Ограничение длины ответа в текстовых интерфейсах — отдельная задача prompt engineering, модели естественно склонны к многословию

Автор: Никита Громов · Источник: reddit.com

Мнение редакции

Это один из тех редких случаев, когда разработчик делится реальным production-опытом, а не теоретизирует. Проблема латентности как элемента UX-дизайна в AI-интерфейсах недооценена: мы привыкли думать про скорость инференса, но забываем, что в безынтерфейсных средах (мессенджеры, голосовые помощники) пользователь не видит «думаю...» и интерпретирует тишину как провал.

Двухмодельная схема с быстрым acknowledgment — элегантное решение, но дорогое: удвоение запросов к API. Интересно, что автор подчёркивает: подтверждение должно содержать proof-of-understanding, а не просто «получил». Это subtle, но критично для perceived intelligence. И да, история про «самый уродливый код» для мержа interrupted requests — это честность, которую редко встретишь в Medium-блогах с идеальными диаграмками.

Ещё по теме

Комментарии