Как латентность превращается в характер: дизайн 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-блогах с идеальными диаграмками.
Комментарии