Transcription
Приветствуем AI Dialogs, и мы начинаем серию видео о том, как разрабатывать Prodдаction Ready AI агентов. Соберём вместе с вами джентльменский набор и разработчиков.
Мы живём с вами в интересное время. У нас, с одной стороны, растёт волна хайпа вокруг пользы и агентов, магии вокруг них, да. Но в то же время, неспадающая волна не меньшего хайпа говорит о том, что и агенты не работают. Это вообще всё дорогая игрушка. А, поигрались, забыли, выбросили. Но, как всегда, правы и одни, и другие при определённых обстоятельствах.
А мы считаем так: если рассматривать искусственный интеллект как одно из средств автоматизации, повышения эффективности бизнеса, других задач, то и это неизбежное будущее, да, поскольку автоматизация она у нас уже давно была, есть и, конечно же, будет. Ну и как любая качественная автоматизация, в ней роль играет не какая-то одна программная единица, программный компонент, а вся система и системный подход.
Поэтому мы будем с вами говорить о том, как выстраивать качественную системную разработку и агентов, чтобы они не были дорогой игрушкой, которую поиграли, забыли и выбросили, которые приносили эффект для бизнеса, а и оправдывали своё назначение.
Чтобы наш диалог с вами не был скучным, мы будем его выстраивать на примере разработки и агента для нашего консалтингового агентства lmstart.ru. А будем совместно с вами в рамках этой серии видео, э, вести его разработку, скажем так, первую версию, которую мы вживую с вами посмотрим и пошипаем. Ну, основные задачи этот агент будет решать: взаимодействие первичных с клиентов, информировать клиентов о компании, о предоставляемых услугах. Конечно же, будет он брать информацию, черпать из портфолио, кейсов, программ обучения, тренингов по искусственному интеллекту. А также будет принимать заявки, создание заявок, отслеживание статуса, ну и, конечно же, планировать встречи, назначать созвоны с экспертами.
Ну, буквально минутка, а такого теоретического ликбеза. А что же такое и агент, да, архитектурно? А мы будем строить нашего агента на основе архитектуры React Reason + Act, а который в центре которой у нас есть языковая модель, да, LLM, иконочка мозг обозначается. Она взаимодействует непосредственно с пользователем, обрабатывает входящий запрос, понимает, надо ли сразу дать ответ, да, или воспользоваться историей сообщения или своей какой-то параметрической памяти. Ну, например, поздороваться, попрощаться, а, пожелать всего хорошего, или же необходимо воспользоваться дополнительными инструментами, да, которыми агент снабжён. Ну, например, обратиться в базу знаний, а, для поиска информации, да, по кейсам, портфолио, образовательным программам, воспользоваться, а, такой своей способностью, которая называется ретрив, извлекать информацию, или же вызвать другие инструменты, например, для того, чтобы, а, взаимодействовать с CRM-системой, подать заявку, а, посмотреть её статус, или же назначить встречу, да, добавить в календаре встречу с экспертом.
Архитектурно это в нашем случае будет выглядеть следующим образом. У нас пользователь будет взаимодействовать с системой через бота. А, ну, соответственно, на бэкэнде будет наш React агент, а, которым будет языковая модель, а, short term memory, которым мы как минимум будем хранить историю диалогов и набор инструментов, да? Аа тот самый Rockсarch, поиск информации по там портфолио образовательным программам на основе векторного хранилища, семантического хранилища, да, информации, документов и также ряд инструментов функциональных, а, произвести поиск информации по клиенту по его заявкам, создать новую заявку или зарегистрировать новую встречу. И эти инструменты уже будут взаимодействовать, ну, какой-то базой данных. На данный момент нам это не принципиально. Мы сегодня рассматриваем архитектурную составляющую.
Ну давайте по каждому инструменту пройдёмся чуть-чуть подробней.
Первый инструмент Шедули митинг, а назначение встречи с клиентом в определённую дату и время. Этот инструмент агент будет вызывать, когда пользователь захочет встретиться с экспертом, попросит записать его на консультацию, а-а, задаст какие-то вопросы, которые подводят к назначению встреч, например, когда можем обсудить а проект, или вообще диалог придёт к фазе, соответственно, необходимо назначить эту встречу. Мы агента проинформируем о том, что проинструктируем, да, о том, что необходимо собрать все параметры перед вызовом, проверить корректность, даты времени. Ну и для первой версии пускай у нас будут вот такие параметры сохраняться: дата, время, описание, тема, цель встречи, да, и, соответственно, контакты клиента.
А следующий инструмент у нас будет поисков по истории взаимодействия клиента с компанией. А будем его использовать. Агент его будет использовать, когда пользователь задаст вопрос: "А какие у меня заявки, когда моя следующая встреча? Над какими проектами работаем, а какой у нас статус по такому-то проекту?" Ну, в общем, какая вот такая вот уточняющая информация. И обращаться он тоже будет внутри себя в ЦРМ-систему за деталями с возможностью поискать по тексту, по сфильтровать по типу заявки, по статусу.
Ну и, конечно же, инструмент, который будет нам позволять регистрировать заявки на консультацию. По сути, такой самый основной, который будет вот этого, а, первого лида нашего клиента в нашу базу данных помещать. Create request мы его назовём. Он будет использоваться, когда клиент попросит, а диалог подойдёт, да, к фазе, что необходимо записаться на консультацию либо заказать, а, разработку там и агенты, и системы, или записаться на обучение какое-то конкретное. Соответственно, будем вызывать этот инструмент. Будет он собирать также контакты клиента, фиксировать там подробное описание его запроса и тип.
Ну и мы дальше переходим к такому более расширенному уже инструменту, где мы остановимся чуть-чуть поподробней. Это RК Search, поиск информации о компании, услугах, а кейсах по базе знаний, базе данных. Этот инструмент, он позволит нашему агенту обладать информацией, которой нет в его метрической памяти языковой модели, потому что на основе этой информации не обучалась языковая модель, а, но тем не менее мы её туда предоставим. И он будет вызывать этот инструмент, когда будут запросы выздаваться о компании, услугах, экспертизе, кейсах, проектах, программах обучения, да? А по сути, цель агентов, задача агента будет сформировать поисковый запрос, хороший, корректный, правильный на основе там всей истории диалога, переписки, последнего вопроса пользователя. И, соответственно, возвращать инструмент будет релевантные чанки, да, говоря по-русски, фрагменты документов, а, найденные в этих источниках.
Как мы уже сказали, под капотом этого инструмента у нас будет технология retrieved generation. Её суть - это поиск релевантной информации в документах для генерации точных ответов. Ну и давайте посмотрим на вот эти четыре PDF-документа, которые там в первой версии агента будут проиндексированы и загружены. Ну, первый документ - это у нас портфолио с кейсами, да, которые были реализованы нашим агентством. И различные ассистенты, агенты. Другие документы - это описание направлений консалтинга, да, консалтинг, обучения по направлению разработки и агентов, да, где описаны основные цели, назначения, а темы, которых мы обучаем и даём консультации, разные виды программ обучения и тренингов. Ну и такие же программы есть по обучению я трансформации бизнеса и пойд разработке, такому умному вайб-кодингу.
А теперь рассмотрим на архитектуру нашего рак пайплайна, который у нас используется внутри инструмента. На вход поступает пользовательский запрос. Он идёт в агента, который, учитывая всю историю взаимодействия с пользователем и последний вопрос, формирует поисковую фразу, которая уже отправляется как аргумент Searchy в наш инструмент RК Search. Это точка входа в наш рак pipй. Дальше мы производим поиск информации, а ранжирование найденных чанков и, соответственно, отсечение топ к а чанков, фрагментов документов, которые уже мы будем отдавать обратно агенту и которые он будет использовать для формирования ответа. Либо же агент может принять решение, что ему нужно изменить свой запрос пользовательский и повторно вызвать этот инструментом с другими аргументами. Но сейчас мы рассматриваем именно цепочку а поисковую.
И что здесь важно отметить, что здесь сразу мы применяем технологии Advanced Truck, да? То есть это на один шаг, а дальше от наивного рага. И что из advanc технологий мы здесь применяем? Первое, агент выполняет у нас функцию, а Qy revrite или query transformation, то есть преобразование всей истории переписки пользовательского сообщения в конкретный запрос. Дальше, а с точки зрения части ретривела, да, извлечения информации, у нас не только семантическая база данных используется, а используется семантическая векторная база данных, да, а также элексическая база данных, которая формирует индекс по частотным вхождениям поисковых фраз. Таким образом, а мы используем два этих уже источника для поиска релевантных фрагментов, после чего мы их объединяем, да, у нас получается на выходе уже тут топ-40 документов, если здесь у нас было по 20 извлечено, и отправляем их в следующий элемент advance traга, да, как run fusion, где у нас используется модель cross encoder, которая будет нам ранжировать каждый документ с, соответственно, пользовательским вопросом и определять, а, степени их близости, релевантности и возвращать мы будем наиболее релевантных пять документов.
На этапе индексации документов, да, которые предшествуют вот этому всему поиску, наполнение баз векторных и, значит, частотного полнотекстового поиска, мы для первой версии будем использовать Наверное, простой подход, да, поскольку у нас есть всё PDF-документы, мы их все загрузим, а разобьём начанки, да, этапи сплитинга, да, разобьём на фрагменты начанки там определённой длины, например, в 500 токенов с пересечением или методом скользящего окна, а когда каждый чанг будет захватывать там по 100 символов предыдущего. И для того, чтобы нам заполнить семантическую базу данных, мы для каждого чанка вычислим его векторное представление, векторный имбединг. Ну и либо же уже непосредственно саму фразу текстовую подадим в полнотекстовый индекс, чтобы оно посчитало все частотные вхождения а различных ликсем, термов и сложило в поисковый индекс полнотекстовый.
Ну, разобрали мы с вами все инструменты, которыми будем вооружён наш агент, но осталось разобрать то связующее звено, главное, а, которые мы задаём, в общем-то, поведение агента, да, можно назвать это сердцем агента, мозгом агента. Это его системный промк. И из чего же он у нас будет состоять?
Ну, первое, мы в него положим информацию о компании, а, вернее, мы будем загружать в него информацию о компании из отдельного файла, где она будет у нас храниться для удобства там сопровождения и изменения этой информации. И здесь на слайде проведено компактное представление. На самом деле там чуть-чуть больше у нас будет информации, ну, где мы расскажем, чем наше агенция занимается, да, что он занимается профессиональной разработкой, внедрение системы искусственного интеллекта, а, о многолетней экспертизе в рамках искусственного интеллекта, разработки ПО, о своих наградах, победах, специализации, об услугах, да, по разработке, консалтингу и обучению, а, команд AI Driven, разработки, разработки по на основе генеративного искусственного интеллекта. И самое главное, ещё дадим и агенту сразу информацию нашу контактную, которая она сможет делиться с нашими клиентами, если диалог будет заходить, а, да, до непосредственного там взаимодействия с экспертами.
Следующим блок будет правило ответов. Соответственно, то, как правильно агент должен отвечать, на наш взгляд, да, чтобы он отвечал на русском языке, был вежлив, профессионален, давал конкретные ответы, да, ограниченную длину, не указывал никакие источники информации, откуда он это получил, поскольку, да, для конечного клиента это не сильно так важная информация и может быть чувствительная и не совсем корректно её выдавать. Строго мы правила зададим, да, чтобы отвечал только на основе, а, данных из инструментов, из истории текущего диалога, ну, или базовых фактов компании, которые у неё есть в промкте. Кстати, вот эти базовые факты, которые мы на предыдущем слайде с вами рассмотрели, они нам позволяют лишний раз не вызывать какие-то раксёрчи, да, ходить куда-то, а если мы можем информацию в промт положить, которая наиболее часто там, скорее всего, будет востребована, да, то имеет смысл это сделать. Попросим его не придумывать информацию, не отвечать общими фразами на конкретику. Ну а если нет данных, то, в общем-то, там посожалеть, ответить, что точной информации нет, и предложить создать заявку на консультацию.
Ну и мы переходим уже к инструментам. Мы в последующих видео увидим с вами, как а эти инструменты добавляются к агенту через метаинформацию. Но тем не менее в промте иногда важно дополнительно его проинструктировать, как чем отличается один инструмент от дру от другого, когда использовать один, когда второй, когда третий, задать правила безопасности. Аа, ну, например, чтобы перед вызовом инструментов он убеждался, что есть все параметры, не делал вызовов без параметров, а запрашивал вежливо недостающую информацию, а после получения всех данных уже непосредственно его вызывал. Ну и можно инструктировать, да, какие-то особенности, например, а, работы с датами, с форматами, с преобразованием каких-то различных слов, словосочетаний в конкретную дату.
Сразу оговорю, что вот эти все особенности системный промт, его тщательность, проработанность, она зависит, конечно, от языковой модели, которую мы будем применять, от её уровня, да, более слабые, более маленькие модели, локальные, они требуют более такого тщательно проработанного системного промта. Более умные модели, они ведут себя умнее, и меньше их надо инструктировать. Поэтому системный промт, он всегда идёт в связке с языковой моделью, которая применяется.
А дальше в системном промте мы разберём примеры и там антипримеры, антипаттерны работы с инструментами. Например, а пример, как правильно вызывать инструмент, да, если у нас не хватает информации для записи на консультацию, мы вначале запросим, потом её соберём и сформируем уже непосредственно вызов инструмента с заполненными аргументами. Ну и общий алгоритм а взаимодействия можно ему представить в начале. И это логично, да, посмотреть историю сообщений, понять, нужно ли вызывать рак или не нужно. А если рак вызывался один раз, может быть, надо его вызовет и второй раз, если не вернул нерелевантные, да, вопросы с новым аа параметром поисковым. Ну, если нет данных, предложить ставить заявку, а если в общем-то диалог подходит к заявке, то собрать все параметры перед тем, как её, а, опубликовать.
Ну и, пожалуй, в этой части видео мы рассмотрели всё, что необходимо для того, чтобы вот такого агента создать, да, архитектура, языковая модель, память, инструменты, даже сразу с adдvanced подходами в части рага и системный промт. Его можно создать, он будет работать, но этого, конечно, будет недостаточно для того, чтобы говорить, что это продакш решение и отдавать его пользователям. Ну или даже там на бета-тестирование там среди сотрудников или там ближайшего круга своего агентства, своей компании, потому что большая часть агентской системы, она как всегда хранится под водой, да, то есть невидимая составляющая у этого айсберга. о которой мы с вами поговорим уже дальше.
И мы рассмотрим такие темы, как безопасность, а рейдлимиты, ограничения, да, на количество вызовов модели, инструментов, подключение человека в процесс принятия решения при вызове инструментов, да, подход Human and the Loop, мониторинг, observability, а, трейсы, метрики, онлайн, оффлайн метрики, оценку качества и что самое важное, а, evaluation система, да, для RAК, для агентов Nend. тесты с фиксированными, да, оценками качества или подходом LM judge, а, который не требует заранее подготовки грандтруса, да, и талонных ответов. Разберём, как такие датасеты синтезировать, готавливать. Ну, и в общем-то, разные виды метрик сбора фидбека, явного и неявного, от пользователей тоже с вами проговорим. Это всё то, что необходимо знать для построения, а, уверенной а системы. А, ну вот всё это мы с вами будем разбирать подробно.
А сейчас я вам предлагаю перейти в наш Telegram-канал, подписаться на него, если вы не подписываетесь, подписаться на наш YouTube канал, чтобы следить за выходами новых серий этого видео. Если вас интересует заказать услуги по и трансформации, разработке, внедрению и агента в свой бизнес, то пишите мне в Telegram-канал Спервй. А если вы хотите получить полное комплексное обучение, пройти тренинги, курсы по разработке и агентов, то переходите на сайт llmstart.ru. Переходите на сайт lmstart.ru и знакомьтесь с новогодней акцией комбопредложения на 2026 год. Это записи курс флагманский 2025 года икодинг и агентов курсор. Обновлённая версия этого курса, который мы будем проводить онлайн в двадца шестом году, новый курс, который будет проходить онлайн по разработке prodдак ready агентских систем и также онлайн-курс по Fullstriven разработке по всему жизненному циклу. Ну и также бонусом идёт скидка 50% на все программы, которые будут у нас появляться в следующем году. Не пропускайте это предложение, переходите. Ждём вас.