- Регистрация
- 23 Август 2023
- Сообщения
- 2 859
- Лучшие ответы
- 0
- Реакции
- 0
- Баллы
- 51
Offline
Привет, Хабр! С вами Никита Кострикин, руководитель направления из Cloud.ru. Мы с командой запустили AI-помощника Клаудия, чтобы упростить работу с нашим облаком. В статье рассказываю, что он умеет делать, как его троллят пользователи, а еще — какие тулы и агенты находятся внутри, какие вызовы мы преодолели в процессе разработки и что планируем улучшить.
Знакомьтесь, Клаудия
Клаудия — это AI-помощник, который упрощает работу в облаке. Он знает все про сервисы Cloud.ru и умеет работать с инфраструктурой. Можно попросить его подобрать конфигурацию и запустить виртуальную машину, сгенерировать SSH-ключ и объяснить, как им пользоваться, настроить мониторинг и алертинг, сгенерировать команды для серийной консоли виртуальной машины. Клаудия посчитает стоимость ресурсов и даст подробные инструкции, как их настроить.
Написать Клаудии может любой пользователь, авторизованный в личном кабинете, даже при нулевом балансе.
Промпты для типовых задач в документации
С развитием генеративного AI мы не могли не начать его использовать. Естественно, никто не отменял привычные паттерны решения задач с помощью UX, графических пользовательских интерфейсов и программных интерфейсов. Например, в личном кабинете есть ряд административных сервисов, которые мы развиваем, и в которых задачи решаются без искусственного интеллекта.
AI-помощник — это большой продуктовый стрим, но он не заменяет и не отменяет классические решения.
Наша главная метрика успеха — Customer Effort Score (CES), то есть сколько усилий тратит клиент на то, чтобы решить свою задачу в облаке. В метрике четыре компонента:
Гипотеза была в том, что AI-агент существенно упростит вход в облако особенно для начинающих пользователей и, соответственно, понизит CES. Пользователи будут тратить меньше времени, делать меньше кликов и совершать меньше ошибок, а общее впечатление будет более положительным, ну и вау-эффект, конечно. Про AI-агентов сейчас говорят все, но они еще мало у кого есть.
Сделали бы обычный чат-бот
Чат-бот работает по сценариям, которые пишет для него человек. То есть сценарист собирает дерево диалогов, где каждый узел — это возможный вопрос или ответ пользователя. Реально ли собрать 100% вариантов того, как будет развиваться диалог? Кажется, что нет. Поэтому, когда запрос выходит за рамки сценария, а такое случается очень часто, бот теряется и зовет на помощь человека.
Вместо того, чтобы самостоятельно ответить на вроде бы элементарный вопрос, чат-бот зовет на помощь оператора
Еще пара ограничений бота: он не понимает контекст пользователя и, главное, он не умеет действовать. Да, бот ответит на вопрос «что такое виртуальная машина?», если такой вопрос заложили в сценарий, но не сможет ее создать и настроить.
Чат-бот не сможет повлиять на CES так, как это может AI-помощник, по крайней мере в облачной индустрии. AI-помощник умеет гораздо больше, он сложнее и, скажем так, умнее чат-бота: он способен проводить расследования, работать с инфраструктурой напрямую, поддерживать гибкие диалоги и оперировать знанием по реальным ситуациям и best practices. Дальше этому будут реальные доказательства.
Вот еще несколько отличий AI-помощника от чат-бота:
За два месяца с момента запуска 4 000 пользователей написали Клаудии более 30 000 сообщений. Каждый четвертый пользователь вернулся с другим диалогом. Да, для грамотного расчета retention нужно хотя бы три месяца, поэтому пока нельзя сказать, хороший это показатель или нет. Но мы уже видим положительную динамику: пользователей становится больше, они активно пишут. И это при том, что сейчас Клаудия работает в Public Preview и ее функционал ограничен.
Пользователи могут торговаться с помощником и просить конфигурации подешевле, пишут на жаргоне или очень общими словами, что даже человек не сразу поймет, что надо сделать. Но Клаудия будет уточнять до тех пор, пока не выявит реальную потребность пользователя, чтобы предложить подходящее решение — еще одно отличие AI-агента от чат-бота. Бот очень ограничен, а Клаудия хорошо разбирается в облаках в принципе и в нашем облаке в частности, она знает все про платформу Cloud.ru Evolution и документацию всех сервисов.
Вопросы не про облако и облачные сервисы мы регулируем промптом. Плюс на уровне самой AI-модели, на которой построена Клаудия, есть цензура, она тоже помогает
Был случай, когда Клаудия ответила даже лучше, чем мы от нее ожидали.
Пользователь попросил создать виртуальную машину — она создала. Потом он пытался зайти в консоль управления этой виртуальной машины.
У серийных консолей Linux есть особенность: когда вводишь пароль, он как бы не печатается (в поле не появляются символы), это создает ощущение, что ничего не работает. Пользователь этого не знал и пошел ругаться с Клаудией. Она его успокоила: введи пароль и нажми enter, все будет ок. В итоге он это сделал и все получилось.
Такой логики мы не задавали, но интеллект и знания Клаудии (она обучена до нас на множестве других данных и знает не только то, что есть в нашей базе), что серийная консоль Linuxтак устроена, позволили решить проблему пользователя. И это пример того, как она учитывает контекст диалога: Клаудия понимала, что у пользователя уже есть виртуальная машина и что он находится в консоли, соответственно, вопросы будут относительно нее, и пароль нужен именно от консоли, а не от какого-нибудь репозитория.
Клаудия учитывает контекст и помнит историю диалога
Да, AI не всемогущ и ошибается
Клаудия обучена отвечать на любые вопросы о работе сервисов платформы Cloud.ru Evolution. Тем не менее, иногда она все же ошибается. Если пользователь сомневается в ее ответе или нашел ошибку — ему стоит обратиться в техническую поддержку.
Мы анализируем сообщения, которые пользователи пишут Клаудии. В первую очередь обращаем внимание на диалоги, в которых произошла техническая ошибка. Например, помощник дважды выполнял один и тот же шаг или говорил, что создать виртуальную машину не получилось, хотя на самом деле получилось.
Пока Клаудия на стадии открытого тестирования, ошибки могут быть, это нормально. Главное, что они не стоят клиентам денег.
Агенты и тулы под капотом Клаудии
С технической точки зрения Клаудия — это мультиагентная система на основе GigaChat MAX 2.0, построенная на фреймворке LangGraph. Мы решили разделить агентов, чтобы четко разграничить сценарии их применения. Поскольку Клаудия умеет проводить поиск по документации, мы развернули RAG pipeline. Благодаря интеграции с облаком она умеет общаться с integration API Cloud.ru и ивентовой моделью фронтенда. Архитектура Клаудии построена по концепции роутинга, когда есть роутер, который распределяет запросы между агентами.
7 агентов Клаудии
Main Router. Агент с всего лишь одним тулом — transfer to agent — для перевода запроса на агента.
Monitoring Router. Абсолютно такой же агент, как Main Router. Единственное его отличие в том, что он знает только про агентов мониторинга.
Advisor. Основной агент, который отвечает за общение с пользователем. Обычно мы учим его тем сценариям, которые не реализованы в других агентах. Он как раз отвечает по документации.
VM Creator. Агент для создания виртуальных машин — самый скилловый парень из всех, у него больше всего тулов: он просматривает конфигурации, генерирует ключ, считает цену, проверяет баланс пользователя и, конечно, создает саму виртуальную машину. Агент работает по концепции promptchaining: мы жестко ограничиваем его сценарием создания виртуальной машины, описываем последовательность шагов и правила вызова тулов.
Alerting, Visualization, Analyzer. Три агента для мониторинга инфраструктуры: Alerting настраивает нотификации, Visualization создает виджеты, Analyzer анализирует те самые нотификации, алертинги и метрики, которые пользователь добавил в свои виджеты.
Пользователь может следить, например, за нагрузкой на CPU. Если он расскажет об этом Клаудии, агент Visualization сам напишет PromQL-запрос и сгенерирует готовый виджет. Или может получить алерты, когда нагрузка на CPU становится выше 80% — агент Alerting тоже сам сформирует PromQL-запрос, на основе которого создастся нотификация.
Агент Analyzer, это очень важный агент: он помогает пользователю следить за его ресурсами, выстраивать стратегию и предлагать решения, если с ресурсами что-то не так и срабатывают алерты. Он анализирует всю историю уведомлений и нотификаций и предлагает пользователю дальнейшие шаги.
Общие тулы: Final Answer и Request to RAG
Final Answer. Тул для взаимодействия с событийной моделью фронтэнда и генерации фронтовых компонентов. Поскольку Клаудия работает в чате, он должен понимать, когда помощник хочет сделать какой-то ивент, например скрыть какую-то информацию или сгенерировать кнопку.
В чате есть такие штуки, мы называем их чипсами — по сути просто подсказки. Они помогают пользователю и агентам не сбиться со сценария.
Если еще про ивенты, то Клаудия умеет редиректить на страницы, менять тему чата и отправлять ивент для генерации SSH-ключа: появляется кнопка, когда пользователь на нее кликает, закрытая часть SSH-ключа скачивается на компьютер, а публичная отправляется на виртуальную машину.
Request to RAG. Сейчас этот тул есть только у агента Advisor, но мы планируем сделать так, чтобы каждый агент мог обращаться в RAG и видеть только актуальную информацию по своему продукту. Это поможет, во-первых, нам как разработчикам меньше обращать внимание на какие-то изменения в продуктах, чтобы мы сами не правили этот сценарий, а агентам — точнее выполнять свои задачи. В качестве RAG у нас гибридный поиск. В качестве моделей используем модели семейства BGE.
Что есть уже сейчас и будет дальше
Мы замеряли реальное количество времени и ошибок, которые совершают пользователи без Клаудии и с ней. Наиболее заметный эффект в создании виртуальной машины: обычно процесс занимает 15–30 минут, с Клаудией — 1–2 минуты. В среднем Клаудия ускоряет рутинные операции в 15 раз.
Сейчас идет работа над стабильностью и доступностью Клаудии. Мы собрали обратную связь наших пользователей и проанализировали тысячи диалогов, чтобы понять пул проблем, которые стоит решить в первую очередь. С функциональной точки зрения мы будем расширять количество сервисов, которыми может управлять Клаудия.
В начале сентября Клаудия начала обрабатывать два новых сценария: создание SRE-агента для мониторинга приложений и алертов по логам и FinOps-сценарий для выявления неэффективно используемых ресурсов и рекомендаций по оптимизации.
Мы планируем, что скоро Клаудия вырастет из помощника в полноценного ассистента, который сам инициирует диалог. Например, если нагрузка на инфраструктуру стала критической, она уведомит об этом пользователя и скажет, каких и сколько ресурсов стоит добавить. Пользователи смогу поручать Клаудии комплексные задачи: расследовать и устранить инцидент, оптимизировать ресурсы, сгенерировать отчет по стабильности системы. Она сможет не только советовать, но и брать на себя автономное выполнение рутинных или регламентных действий.
Вместо заключения
Собирая AI-помощника, надо быть готовыми к нюансам в процессе. Основным вызовом лично для нас стала масштабируемость мультиагентной системы и поиск способов оркестрации растущего количества агентов в системе. Параллельно с реализацией Клаудии на LangGraph команда проводит R&D альтернативных фреймворков и подходов, таких как A2A или RAG по API и тулам. Еще пара нюансов:
Если уже пробовали нашего AI-помощника — делитесь впечатлениями. Что вам в нем понравилось, а что хотели бы улучшить?

Знакомьтесь, Клаудия
Клаудия — это AI-помощник, который упрощает работу в облаке. Он знает все про сервисы Cloud.ru и умеет работать с инфраструктурой. Можно попросить его подобрать конфигурацию и запустить виртуальную машину, сгенерировать SSH-ключ и объяснить, как им пользоваться, настроить мониторинг и алертинг, сгенерировать команды для серийной консоли виртуальной машины. Клаудия посчитает стоимость ресурсов и даст подробные инструкции, как их настроить.
Написать Клаудии может любой пользователь, авторизованный в личном кабинете, даже при нулевом балансе.
Промпты для типовых задач в документации
С развитием генеративного AI мы не могли не начать его использовать. Естественно, никто не отменял привычные паттерны решения задач с помощью UX, графических пользовательских интерфейсов и программных интерфейсов. Например, в личном кабинете есть ряд административных сервисов, которые мы развиваем, и в которых задачи решаются без искусственного интеллекта.
AI-помощник — это большой продуктовый стрим, но он не заменяет и не отменяет классические решения.
Наша главная метрика успеха — Customer Effort Score (CES), то есть сколько усилий тратит клиент на то, чтобы решить свою задачу в облаке. В метрике четыре компонента:
количество действий, которые делает пользователь;
время, которое он тратит на решение;
статистика по ошибкам;
уровень удовлетворенности пользователя в целом.
Гипотеза была в том, что AI-агент существенно упростит вход в облако особенно для начинающих пользователей и, соответственно, понизит CES. Пользователи будут тратить меньше времени, делать меньше кликов и совершать меньше ошибок, а общее впечатление будет более положительным, ну и вау-эффект, конечно. Про AI-агентов сейчас говорят все, но они еще мало у кого есть.
Сделали бы обычный чат-бот
Чат-бот работает по сценариям, которые пишет для него человек. То есть сценарист собирает дерево диалогов, где каждый узел — это возможный вопрос или ответ пользователя. Реально ли собрать 100% вариантов того, как будет развиваться диалог? Кажется, что нет. Поэтому, когда запрос выходит за рамки сценария, а такое случается очень часто, бот теряется и зовет на помощь человека.

Вместо того, чтобы самостоятельно ответить на вроде бы элементарный вопрос, чат-бот зовет на помощь оператора
Еще пара ограничений бота: он не понимает контекст пользователя и, главное, он не умеет действовать. Да, бот ответит на вопрос «что такое виртуальная машина?», если такой вопрос заложили в сценарий, но не сможет ее создать и настроить.
Чат-бот не сможет повлиять на CES так, как это может AI-помощник, по крайней мере в облачной индустрии. AI-помощник умеет гораздо больше, он сложнее и, скажем так, умнее чат-бота: он способен проводить расследования, работать с инфраструктурой напрямую, поддерживать гибкие диалоги и оперировать знанием по реальным ситуациям и best practices. Дальше этому будут реальные доказательства.
Вот еще несколько отличий AI-помощника от чат-бота:
более высокий уровень автономии — не только отвечает на вопросы, но и действует;
интеграция со стеком и тулчейном DevOps и SRE;
возможность накапливать опыт и переносить знания между системами. Это стратегическое отличие — помощник становится виртуальным инженером, не просто интерфейсом поддержки.
За два месяца с момента запуска 4 000 пользователей написали Клаудии более 30 000 сообщений. Каждый четвертый пользователь вернулся с другим диалогом. Да, для грамотного расчета retention нужно хотя бы три месяца, поэтому пока нельзя сказать, хороший это показатель или нет. Но мы уже видим положительную динамику: пользователей становится больше, они активно пишут. И это при том, что сейчас Клаудия работает в Public Preview и ее функционал ограничен.
Пользователи могут торговаться с помощником и просить конфигурации подешевле, пишут на жаргоне или очень общими словами, что даже человек не сразу поймет, что надо сделать. Но Клаудия будет уточнять до тех пор, пока не выявит реальную потребность пользователя, чтобы предложить подходящее решение — еще одно отличие AI-агента от чат-бота. Бот очень ограничен, а Клаудия хорошо разбирается в облаках в принципе и в нашем облаке в частности, она знает все про платформу Cloud.ru Evolution и документацию всех сервисов.

Вопросы не про облако и облачные сервисы мы регулируем промптом. Плюс на уровне самой AI-модели, на которой построена Клаудия, есть цензура, она тоже помогает
Был случай, когда Клаудия ответила даже лучше, чем мы от нее ожидали.
Пользователь попросил создать виртуальную машину — она создала. Потом он пытался зайти в консоль управления этой виртуальной машины.
У серийных консолей Linux есть особенность: когда вводишь пароль, он как бы не печатается (в поле не появляются символы), это создает ощущение, что ничего не работает. Пользователь этого не знал и пошел ругаться с Клаудией. Она его успокоила: введи пароль и нажми enter, все будет ок. В итоге он это сделал и все получилось.
Такой логики мы не задавали, но интеллект и знания Клаудии (она обучена до нас на множестве других данных и знает не только то, что есть в нашей базе), что серийная консоль Linuxтак устроена, позволили решить проблему пользователя. И это пример того, как она учитывает контекст диалога: Клаудия понимала, что у пользователя уже есть виртуальная машина и что он находится в консоли, соответственно, вопросы будут относительно нее, и пароль нужен именно от консоли, а не от какого-нибудь репозитория.

Клаудия учитывает контекст и помнит историю диалога
Да, AI не всемогущ и ошибается
Клаудия обучена отвечать на любые вопросы о работе сервисов платформы Cloud.ru Evolution. Тем не менее, иногда она все же ошибается. Если пользователь сомневается в ее ответе или нашел ошибку — ему стоит обратиться в техническую поддержку.
Мы анализируем сообщения, которые пользователи пишут Клаудии. В первую очередь обращаем внимание на диалоги, в которых произошла техническая ошибка. Например, помощник дважды выполнял один и тот же шаг или говорил, что создать виртуальную машину не получилось, хотя на самом деле получилось.
Пока Клаудия на стадии открытого тестирования, ошибки могут быть, это нормально. Главное, что они не стоят клиентам денег.

Агенты и тулы под капотом Клаудии
С технической точки зрения Клаудия — это мультиагентная система на основе GigaChat MAX 2.0, построенная на фреймворке LangGraph. Мы решили разделить агентов, чтобы четко разграничить сценарии их применения. Поскольку Клаудия умеет проводить поиск по документации, мы развернули RAG pipeline. Благодаря интеграции с облаком она умеет общаться с integration API Cloud.ru и ивентовой моделью фронтенда. Архитектура Клаудии построена по концепции роутинга, когда есть роутер, который распределяет запросы между агентами.

7 агентов Клаудии
Main Router. Агент с всего лишь одним тулом — transfer to agent — для перевода запроса на агента.
Monitoring Router. Абсолютно такой же агент, как Main Router. Единственное его отличие в том, что он знает только про агентов мониторинга.
Advisor. Основной агент, который отвечает за общение с пользователем. Обычно мы учим его тем сценариям, которые не реализованы в других агентах. Он как раз отвечает по документации.
VM Creator. Агент для создания виртуальных машин — самый скилловый парень из всех, у него больше всего тулов: он просматривает конфигурации, генерирует ключ, считает цену, проверяет баланс пользователя и, конечно, создает саму виртуальную машину. Агент работает по концепции promptchaining: мы жестко ограничиваем его сценарием создания виртуальной машины, описываем последовательность шагов и правила вызова тулов.

Alerting, Visualization, Analyzer. Три агента для мониторинга инфраструктуры: Alerting настраивает нотификации, Visualization создает виджеты, Analyzer анализирует те самые нотификации, алертинги и метрики, которые пользователь добавил в свои виджеты.
Пользователь может следить, например, за нагрузкой на CPU. Если он расскажет об этом Клаудии, агент Visualization сам напишет PromQL-запрос и сгенерирует готовый виджет. Или может получить алерты, когда нагрузка на CPU становится выше 80% — агент Alerting тоже сам сформирует PromQL-запрос, на основе которого создастся нотификация.
Агент Analyzer, это очень важный агент: он помогает пользователю следить за его ресурсами, выстраивать стратегию и предлагать решения, если с ресурсами что-то не так и срабатывают алерты. Он анализирует всю историю уведомлений и нотификаций и предлагает пользователю дальнейшие шаги.
Общие тулы: Final Answer и Request to RAG
Final Answer. Тул для взаимодействия с событийной моделью фронтэнда и генерации фронтовых компонентов. Поскольку Клаудия работает в чате, он должен понимать, когда помощник хочет сделать какой-то ивент, например скрыть какую-то информацию или сгенерировать кнопку.
В чате есть такие штуки, мы называем их чипсами — по сути просто подсказки. Они помогают пользователю и агентам не сбиться со сценария.
Если еще про ивенты, то Клаудия умеет редиректить на страницы, менять тему чата и отправлять ивент для генерации SSH-ключа: появляется кнопка, когда пользователь на нее кликает, закрытая часть SSH-ключа скачивается на компьютер, а публичная отправляется на виртуальную машину.

Request to RAG. Сейчас этот тул есть только у агента Advisor, но мы планируем сделать так, чтобы каждый агент мог обращаться в RAG и видеть только актуальную информацию по своему продукту. Это поможет, во-первых, нам как разработчикам меньше обращать внимание на какие-то изменения в продуктах, чтобы мы сами не правили этот сценарий, а агентам — точнее выполнять свои задачи. В качестве RAG у нас гибридный поиск. В качестве моделей используем модели семейства BGE.

Что есть уже сейчас и будет дальше
Мы замеряли реальное количество времени и ошибок, которые совершают пользователи без Клаудии и с ней. Наиболее заметный эффект в создании виртуальной машины: обычно процесс занимает 15–30 минут, с Клаудией — 1–2 минуты. В среднем Клаудия ускоряет рутинные операции в 15 раз.


Сейчас идет работа над стабильностью и доступностью Клаудии. Мы собрали обратную связь наших пользователей и проанализировали тысячи диалогов, чтобы понять пул проблем, которые стоит решить в первую очередь. С функциональной точки зрения мы будем расширять количество сервисов, которыми может управлять Клаудия.
В начале сентября Клаудия начала обрабатывать два новых сценария: создание SRE-агента для мониторинга приложений и алертов по логам и FinOps-сценарий для выявления неэффективно используемых ресурсов и рекомендаций по оптимизации.
Мы планируем, что скоро Клаудия вырастет из помощника в полноценного ассистента, который сам инициирует диалог. Например, если нагрузка на инфраструктуру стала критической, она уведомит об этом пользователя и скажет, каких и сколько ресурсов стоит добавить. Пользователи смогу поручать Клаудии комплексные задачи: расследовать и устранить инцидент, оптимизировать ресурсы, сгенерировать отчет по стабильности системы. Она сможет не только советовать, но и брать на себя автономное выполнение рутинных или регламентных действий.
Вместо заключения
Собирая AI-помощника, надо быть готовыми к нюансам в процессе. Основным вызовом лично для нас стала масштабируемость мультиагентной системы и поиск способов оркестрации растущего количества агентов в системе. Параллельно с реализацией Клаудии на LangGraph команда проводит R&D альтернативных фреймворков и подходов, таких как A2A или RAG по API и тулам. Еще пара нюансов:
Команде не хватало компетенций по разработке мультиагентных систем. Для преодоления этого ограничения мы организовали серию образовательных мероприятий и хакатон, чтобы ребята научились и попрактиковали разработку AI-агентов и тулов на LangGraph.
Отдельным вызовом стал поиск эффективных методов для тестирования системы. Классических подходов к QA оказалось недостаточно, мы разработали и проводим R&D нескольких агентов для тестирования Клаудии, в задачи которых входит эмуляция тестовых сценариев и оценка качества ответов и действий помощника.
Пришлось подключать экспертов из SRE, DevOps, поддержки и разработчиков — хорошо, что у нас большая команда 😊
Если уже пробовали нашего AI-помощника — делитесь впечатлениями. Что вам в нем понравилось, а что хотели бы улучшить?