Состояния загрузки — один из самых недооцененных (и забытых) аспектов дизайна при создании эффективного пользовательского опыта взаимодействия с агентами.
По нашему опыту, пользователи доверяют агентам, когда они видят, что именно эти агенты делают. Это поведение все чаще проявляется в форме скевоморфного интерфейса — концепции дизайна, при которой цифровые объекты имитируют свои реальные аналоги. Визионерский Domino’s Pizza Tracker — один из самых ярких примеров скевоморфного дизайна, который можно применить к агентам. Сегодня цифровые состояния загрузки (даже те, которые могут вас обманывать) имеют решающее значение для того, чтобы сделать любой пользовательский опыт понятным и эффективным. Новый SDK реакций агентов для Managed Deep Agents — отличный инструмент для создания приятных интерфейсов и состояний загрузки для пользователей, взаимодействующих с вашими агентами.
Новый атрибут реакций в Managed Deep Agents
В версии 0.9 Managed Deep Agents включает новый API для управления реакциями ваших распределенных агентов, а также систему для динамического назначения ответов в виде эмодзи с помощью выбранного вами инструмента, такого как модели принятия решений, пограничные модели или старые добрые операторы if.
Новый атрибут реакций для каналов Slack принимает либо строку, представляющую эмодзи, либо вызываемый объект (callable), который возвращает его:
В этом примере мы используем 👀 по умолчанию, но статический анализ назначит 🐛, если сообщение содержит слово «broken» (сломано).
Мы хотим, чтобы разработчики LangChain могли использовать общие паттерны для повышения удобства пользователей в состояниях загрузки и ожидания, поскольку многие задачи агентов могут выполняться в течение длительного времени. Конечным пользователям, взаимодействующим с агентами, необходимо подтверждение того, что задача была получена.
Например, недавно мы запустили внутреннего маркетингового агента для создания видеоконтента. Пока пользователь ждет ответа от агента, ему полезно понимать прогресс выполнения задачи.
Зачастую недостаточно просто ответить на сообщение одним эмодзи. Нам также нужно, чтобы агенты сообщали пользователю, как они интерпретировали задачу, и контекстный ответ может стать ключевой частью дизайна вашего агента.
Давайте углубим пример с базовой реакцией. Мы можем заставить модель принятия решений, такую как Jev, выбирать эмодзи из заданного словаря на основе контекста ввода. Jev поддерживает до 255 вариантов, но вы можете построить матрицу решений с несколькими вопросами (например, сгруппировав эмодзи по категориям и попросив Jev выбрать категорию, а затем эмодзи), чтобы запрашивать больше вариантов:
В этом примере мы используем новый TypeSafe Classifier, который является частью инструментария LangChain. Это отличный способ взаимодействия с моделями принятия решений, совместимыми с TypeSafe, такими как Jev, но также можно использовать другие модели принятия решений с теми же конечными точками, например SemIf, размещенные на LangSmith LLM Gateway. Или переключаться между моделями, чтобы экспериментировать с лучшим вариантом.
Один и тот же эмодзи может означать противоположные вещи в зависимости от того, что делает агент. Например, 🔥 от дежурного агента может означать, что продакшн горит и вам пора проснуться. 🔥 от агента по развитию может означать, что кампания работает и вы можете вернуться ко сну. Вот почему описания критериев значат больше, чем названия эмодзи. Модель сопоставляет ситуацию с вашим описанием, поэтому один и тот же символ несет в себе то значение, которое уже придало ему ваше рабочее пространство.
Приведенный выше пример также показывает, что вы можете использовать пороги уверенности. Если модель принятия решений уверена в своем лучшем выборе менее чем на 25%, мы вернемся к 👀. Вы также можете отказаться от реакции, если ни один из предоставленных вами в словаре эмодзи не подходит.
Можно поспорить, что в этом дизайне есть нечестность: поскольку реакцию оценивает модель, отличная от той, что отвечает, могут возникнуть тонкие различия в интерпретации. По этой причине важно писать эффективные описания того, как, по вашему мнению, должна использоваться каждая реакция. Модель оценки будет чрезмерно фокусироваться на определенных реакциях, если их описание слишком общее, даже если другая реакция не подошла бы нетренированному глазу.
Вы можете добавить пользовательские эмодзи в свой словарь с помощью шорткодов Slack. Для нашего внутреннего контент-агента команда прикладного ИИ создала набор пользовательских эмодзи, которые агент может использовать в ответах. Мне нравится lc-no-em-dash, который агент выбирает, когда ему поручено написать контент:
Экспериментируйте с разными подходами. Разные описания для эмодзи (или разные способы структурирования вашего словаря в целом) приведут к разным результатам. Аналогичным образом, расширяйте или сокращайте набор эмодзи, доступных агенту.
Managed Deep Agents разработаны так, чтобы использовать все тонкие интерфейсы дизайна, которые мы считаем критически важными для внедрения агентов, с помощью простых и выразительных API. Начните добавлять реакции для ваших существующих Managed Deep Agents, используя нашу документацию. Или, если вы еще не создавали управляемого глубокого агента, лучше всего начать с нашего руководства по быстрому старту.










