0: Всем привет в этом видео мы расскажем о том, как собрать текстового агента от простого к сложному с различными инструментами с помощью api и no кода решения в консоли яндекс, а студия Дима, привет, давайте, наверное, начнём с ui.
1: И посмотрим вот вы никогда не работали с яндекс y studio, хотите собрать своего 1 агента, как бы это могло выглядеть, заходим в y studio, и для того, чтобы начать работать, вы можете
2: Пробовать модели. Можете перейти непосредственно к построению кагента. И начнём с того, что посмотрим вообще на список тех моделей, которые доступны, чтобы можно было выбрать подходящую под конкретную задачу. Самое важное, что
3: Можно увидеть в module гелари. Это вот этот значок, который показывает, какие из моделей доступны, уже развёрнуты, доступны, с какими можно работать сразу с тарификацией по токенам. Если же
4: Модели, которая нужна вам под вашу задачу, не хватает. Вы можете развернуть её отдельно, как выделенный инстанс. В нём будет немного другая тарификация в зависимости от времени работы, но при этом вы можете более гибко контролировать
5: Этот развёрнутый инстанс. Окей. После того, как мы подобрали модель, мы можем либо перейти к загрузке файлов созданию.
6: Такого индекса или начать сразу с построения агента. Переходим в экран агента, задаём ему какое-то название и дальше выбираем модель. Здесь представлены модели, которые уже развёрнуты в базовом инстансе.
7: Либо же модели, которые вы развернули специально под себя ваш инстанс. Дальше вы можете указать температуру максимальное количество токенов в ответе, добавить при необходимости переменные и важный шаг.
8: Необходимо заполнить инструкцию, то есть указать агенту, как себя вести, какие инструменты выполнять и для каких задач в качестве подсказки. Вот вверху вы можете увидеть примеры, инструкции, да, там, например, ассистента, аналитика или ассистента для поиска в интернете. Это
9: Скорее такие рекомендации, да, как вы можете вообще начать, как подступиться к описанию инструкции? Ну и давайте попробуем базово вот выбрали модель, хотим чисто протестировать, как отвечает
10: Та или иная модель, там придумай 3 необычных идеи и так далее. То есть отправляем текстовый запрос, выбрали модель яндекс gpt 5 1 про и, соответственно, можем
11: Проверить, как она отвечает на такой вопрос. Это самый 1 базовый шаг. И далее подробно мы расскажем, да, как языковую модель можно обогатить инструментами для создания более сложных сценариев.
12: Ещё 1, да, важный момент. То есть после создания такого агента вы можете просмотреть информацию о нём, в частности, наиболее интересен здесь может быть идентификатор этого агента, потому что он
13: Позволит вам затем обратиться к сущности этого агента через api все тоже самое можно сделать непосредственно из кода здесь показан минимальный пример запроса к responses апи сначала мы создаём клиен.
14: Open ai сдк для этого мы его объявляем, передаём туда апи ключ фолдер, присваиваем значение фолдера, атрибуту проекта в целом до какой-то степени действительно, фолдер это проект.
15: Если сравнивать его с оригинальным опен аи responses и обязательно задаём базовый ур дальше выполняем responses криейт и здесь указываем опять-таки модель ту которую вы разве
16: У себя на дедике, например, или какую-то из общедоступных описывайте в инструкции то поведение, которым должен, которому должен следовать ваш ассистент. То есть можете написать там какие
17: Точки, какое целевое состояние, что можно, что нельзя делать в процессе взаимодействия с пользователем. И здесь же вы можете передать непосредственно запрос в поле input.
18: В моём случае это придумать 3 необычные идеи для стартапа в сфере путешествий. Напомню, что в инструкции у нас ты креативный ассистент, помогаешь с генерацией идей. Собственно, запрос мачится с инструкцией выставляете температуру.
19: Тут я её сделала немножко повыше дефолтной, которая используется, например, в яндекс gpt по дефолту, там 0 3 для генерации креатива. Я бы начинала с 0 4 и смотрела дальше, что происходит при повышении и
20: Можете задать максимальное количество токенов, которое будет на выходе, когда запрос выполнится из объекта response. Можно получить текст, который отобразить пользователя в интерфейсе.
21: Может быть, сделать с ним какое-то преобразование, сделать все то, что предполагает логика вашего агента или и приложения, если возвращаться к тому, что мы, допустим, создали агента, настроили его и получили некий id, все то, что делал.
22: На предыдущих слайдах слайдах, то вы можете не передавать модель её настройки, такие как инструкция, температура и так далее. Можете непосредственно указать айдишник этого промта через поле про
23: И если вы задавали переменные, допустим, у меня есть креативный агент, который умеет придумывать необычные идеи стартапов, и я параметризована его 2 переменными, например, страна. В моём случае Россия и формат, например,
24: Это веб или мобильные приложения, которые подставляются непосредственно в этот prompt и влияют на генерацию модели, и точно также в остальном вызов идентичен предыдущему. Мы отправляем текстовый ввод пользователя, получаем текстовый ответ через response.
25: Тут текст в 1 примере мы увидели чисто обращение к модели, да, то есть это даже, конечно, полноценным там и даже близко к агентам скорее не назовёшь. Давайте посмотрим на важную способность, которая
26: Доступно в респонсе с api, а именно возможность управления контекстом на самом деле, если говорить про ui, то здесь, наверное, особо ничего не изменится, давайте ещё раз посмотрим.
27: Там мы создаём агента, опять же выбираем какую-то модель.
28: Указываем максимальное количество токенов в ответе. Этот параметр важен, например, там в случаях, когда хочется контролировать бюджет, да, то есть ответ всегда будет гарантированно не больше, там 2000 токенов. И здесь хотели
29: Показать пример, как будет выглядеть диалог. Здесь наверное хороший момент рассказать про отличия между комплишен и responses апи, то есть в комплишен апи происходит обращение к модель модель не умеет вызывать инструменты, не умеет хранить.
30: Контекст, то есть просто обращается к модели, получает результат, когда мы обращаемся к responses, что происходит сейчас под капотом этого примера, да, то есть текущий ui он реализован на базе responses мы задаём
31: 1 вопрос. Получаем какой-то ответ. То есть вопрос, что такое агент и дальше мы говорим, какие у него есть инструменты, то есть мы не говорим, что какие есть инструменты у агента и так далее. И дальше опять же видим ответ, который опирается на предыдущий контекст.
32: И давайте посмотрим, как такую механику можно реализовать с помощью api как говорил Дима, ранее можно оперировать контекстом предыдущего сообщения вообще в целом все респонсы можно вызывать независимо и.
33: Они будут работать ну плюс минус по Такому же принципу как комплишен вообще responses это такие модернизированные, комплишен 2 0 с богатым набором инструментов, с богатой функциональностью, но вы можете использовать
34: Контекст предыдущего общения через указание привис респонс айди. На в этом примере мы в цикле позволяем пользователю вводить сообщения до тех пор, пока он не введёт, допустим, клайд или вы
35: И отвечать на них согласно заданной инструкции, контекст сохраняется через задание привис респонс айди здесь логика довольно простая, максимально линейная, мы указываем айди предыдущего.
36: Общение, но на практике у вас может быть куда более изощрённая логика. Вы можете строить не такой список, а, например, возвращаться к корню дерева, обходить какие-то узлы, то есть строить диалог. Так
37: Чтобы учитывать или не учитывать какие-то предыдущие взаимодействия, такой механизм лежит в целом в основе, стоит у агентов фае студии именно он позволяет понимать контекст, уточнять, ссылаться на прошлые реплики и звучать максимально по-человечески.
38: Давайте перейдём дальше к инструментам и обогатим возможности нашего простенького агента, начнём с инструментов поиска в studio их 2 готовых инструмент поиска по документам.
39: И инструмент поиска в интернете. Хорошо. Переходим к созданию поиска по документам. И для этого в istudio есть отдельный раздел, называется айсерч. Мы можем создавать
40: Агентов. Ну, вернее, создавать поисковый индекс сначала в нём так мы и поступим. Нажимаем создать поисковый индекс. Здесь есть 2 способа добавить документы. Их можно загрузить напрямую, например, с компьютера, либо
41: Если они были уже ранее загружены в хранилище файлов r studio, можно выбрать их там взял 2 примера про цифровой рубль интересно тем, что это достаточно длинный pdf документ с.
42: Ображениями с графиками, с таблицами. И вот там в 1 из таблиц есть вопрос про тарифы. И 2 документ. Также пример отчёта тоже интересен тем, что много
43: Специфической информации, которая содержится не просто в тексте, да, а её нужно, например, там поискать где-то в табличках или вообще на изображении. Загружаем эти 2 отчёта в
44: Хранилище дальше что происходит они парсятся во время парсинга используется, например cr для доставания текста, там специализированные модельки, которые обрабатывают изобра.
45: Жени, все это чинкуе, я векторизуется и складывается в поисковый индекс. Нажали сохранить. В этот момент происходит построение индекса, да, вот происходит весь этот тэйплайн, про который
46: И затем вы этот поисковый индекс можете уже подключать к различным агентам в качестве инструмента в зависимости от размера файлов и количества файлов.
47: Построение может занимать какое-то время на текущий момент. Что касается ограничений, доступно до 10000 файлов в 1 поисковом индексе и размер 1 файла может быть до 128.
48: Megabyte окей. Файлы загрузились. Переходим к подключению этого поискового индекса к агенту. Да, назовём его рак агентом. Опять же, что?
49: Важно знать, важно выбрать модель, которая хорошо умеет вызывать инструменты, да, чтобы она поняла, что нужно вызвать инструмент, и правильно сформулировала запрос. Для этого обязательно модели нужно написать соответствующий
50: Prompt. То есть там ты интеллектуальный ассистент банка. Отвечай на вопросы с использованием там такого-то инструмента. Мы говорим, что конкретно в этом сценарии необходимо отвечать на вопросы, опираясь
51: Только на предоставленную информацию в отчётах и далее добавляем поисковый индекс, который мы создали дополнительно в ui мы можем настраивать количество Чанков, которые будут
52: Передаваться в модель для генерации ответов. Ну и давайте посмотрим. Вот 1 вопрос. Эта информация содержится в документе. Там какой тариф за
53: Перевод цифрового рубля там в пользу юридических пользователей юридических лиц. И мы видим, что ответ, да, моделька достала из таблички и отвечает на вопрос ну и
54: Просто для примера вопрос по 2 документу, по 2 отчёту.
55: И, соответственно, модель также сначала вызывает инструмент, выполняется поиск, поиск возвращает заданное количество Чанков. И дальше модель отвечает по этим чанкам. Напомню, что вы можете использовать идентификатор.
56: Этого агента, передать его как промт айди и использовать его для для обращения. Давайте посмотрим, как это может быть реализовано с помощью кода. Шаг 1. Это загрузка файла сразу такой небольшой дисклеймер оговор
57: Формат презентации не подразумевает, что здесь можно показать большое количество кода я рассказываю так по реперным точкам максимально общем формате, но если вы захотите деталей подробностей, в конце презентации будет QR.
58: Код, по которому вы пройдёте и сможете попасть в репозиторий, где все примеры уже будут более полноценными, где вы сможете поставить свои креденшелы и запустить, и понаблюдать, что происходит в более подробном режиме. Итак, если вы реал,
59: Реализовываете все тоже самое, но уже только с помощью апи. 1 шаг, который вам необходимо сделать, это, загрузить файлы. У меня более легковесный агент, он специализируется на путешествиях, поэтому мы выбираем 2 файла, которые описывают
60: 2 потенциальных направления путешествий и загружаем их с помощью клиента. Клиент это тот самый open ai клайд сдк питоновского, который используется здесь и далее во всех примерах, что стоит указать, что
61: У загружаемых файлов есть специальный pepas это ассистенс используется для всех файлов, которые должны подключаться к вектор стор аппе. Вот, и по окончанию загрузки вы получа
62: Id загруженного файла. Кстати, все те файлы, которые можно загружать, их список и полностью вы найдёте в документации все поддерживаемые моим тайпы. Следующий шаг это
63: Создание индекса индекса из загруженных файлов. Для этого вы должны воспользоваться тем же самым клиентом, но уже через вектор стор апи. Назвать его каким-нибудь желательно понятным для моделей, для сценариев.
64: Именем, а не просто вектор. Индекс 1. И чтобы модель потом думала идти туда или нет, указать политику, согласно которой будет храниться индекс. Сколько времени он будет доступен?
65: Для использования вы можете использовать значение, которое говорит о том, что с момента последнего использования хранить такое-то количество дней, либо говорить о том, что используя этот индекс с момента создания столько-то дней. Ну и, собственно, перечисляете все id, файлы.
66: Которые должны войти в этот индекс. Запускайте операцию создания индекса. Это достаточно долгая операция и
67: Для того, чтобы узнать, готов индекс или нет, вам придётся в цикле опрашивать, пока статус не станет комплитед.
68: Важный момент. Индекс вы можете использовать не только в сочетании с агентами, голосовым или текстовым, но можете оперировать им напрямую и искать непосредственно по нему. И следующий шаг это использование индекса в агенте, то есть
69: Здесь тот же самый стандартный респон запрос, который уже обогащается том с определённым именем file search, это зарезервированное имя, которое служит для того, чтобы указать, что это вот конкретная функция встроена.
70: Responses и её можно параметризировать указанием id вектор сторов, которые нужно обходить для нахождения результатов. Я рекомендую когда вы пишите инструкцию.
71: Указывать, что для таких-то запросов необходимо пользоваться файл серчем или, может быть, даже конкретным индексом. Это улучшает качество ответа и помогает сделать сценарии более робастными. По сути, мы с вами только что
72: Подготовили, ну такую базу основу для большинства рак сценариев, то есть model работает не только по на своих знаниях, но и на основе данных, которые вы в неё передали. Продолжаем добавлять к модели инструменты и 2 инструмент.
73: Это поиск в интернете выглядит это в общем то аналогичным образом, но плюс instrumentals, веб серч в том, что он не требует такого количества настроек, да не нужно ничего загружать, опять же создаём агента.
74: Обязательно задаём ему инструкцию. И как раз для сценария поиска в интернете у нас уже есть, ну, пример готовой инструкции, в общем то, на неё мы и будем опираться. Единственное, важно помнить, что недоста
75: Просто сказать инструкцию нужно ещё дополнительно указать сам инструмент. И здесь у него есть в ui 2 параметра. Это параметр региона. То есть, если вы, например, выбираете Московский регион или там нижегородский, то поисковая выдача будет соответ
76: Ранжироваться, да, под этот конкретный регион. И дополнительно тоже важный момент для многих сценариев. Вы можете искать, например, по дефолту, по всему интернету, но можете ограничить поиск конкретным доменом. И таких доменов может быть до
77: 5 штук, то есть вы можете указать до 5 доменов. Ну, для нашего примера укажем домен яндекс клауд. И, соответственно, я вот показал, что есть статья, где описывается агенты, как они создаются. Ну, в общем, там
78: Большая часть того, что мы рассказываем в этом видео, ну и давайте посмотрим, как выглядит обращение к web search, то есть какие инструменты доступны в r studio для построения агентов.
79: Для конкретно этого примера выбрали модель queen и, соответственно, что происходит? Модель определяет, что мы, как мы в промте написали, что нужно в 1 очередь искать в интернете, соответственно, происходит обращение в интернет, обращение в интернет происходит
80: Только по поиск происходит только по сайту яндекс клауд и модель возвращает описание там инструментов, которые доступны из документации. В общем то если внимательно проверить, это только та информация, которая из документации.
81: Ну вот, например, у нас даже есть перечисление, там, м, инструкции, инструменты, в общем то, тот же самый блок и возвращается и дополнительно, когда происходит вызов инструмента, да, instrumental веб поиска рядом с ответом в ю.
82: Показывается такой значок планеты. Это значит, что произошёл вызов инструмента поиска. Как повторить этот сценарий в коде? Здесь мы попадаем в тот же самый фрейм задания респонсив, только уже
83: Даём ту, которая называется search это тоже зарезервированное имя, как и в ui вы можете параметризировать, параметризовать веб поиск такими параметрами, как доступные домены, повторю за Димой, что их может быть не более 5 штук.
84: Также указывать локацию пользователя. Это конкретный id, их полный список у нас есть в документации. Ну, либо вы можете посмотреть его непосредственно. Бэграунд под idea может пониматься как id какого-то региона, так и id целой страны в целом.
85: Такой сценарий удобен тогда, когда модель должна выдавать какие-то актуальные знания, либо должна сослаться на какие-то источники. Во всех этих случаях подойдёт в поиск в целом сценарий его поиска, например, полезен в случае даже с той, с той же тех,
86: Поддержка, например, наша техподдержка. Отвечая на вопросы пользователя, она оперирует как внутренними какими-то документами, которые предписывают делать определённые задачи определёнными образами, которые не афишируются наружу, там, допустим, какие-то инструкции.
87: Как выполнить ту или иную задачу, так и во многом смотрит, что же у нас представлено непосредственно на сайте, так как отвечает на вопросы пользователей о том, как воспользоваться тем или иным апи. И поэтому если бы мы делали какого-то простого Ботика,
88: Который помогает поддержке, можно было сказать, используя фсе по таким-то документам и используя, например, поиск по доменам, в котором указан наш сайт, чтобы опираться на него при ответах пользователям, ещё 1 тип инструментов.
89: Которые можно подключать в ai студию это инструменты через эмсипи, через module контекс протокол их протестировать также можно в ui начинаем с создания агента, опять же в задаём ему.
90: Имя и для примера обратимся к эмсипи серверу, который доступен из шаблона через яндекс трекер. Здесь опять же, как и с любым другим инструментом. Очень важно прописать
91: В инструкции задачу, которую мы хотим сделать и конкретно здесь, в нашем яндекс трекере, мы хотим, чтобы он создал задачу, там на разработчика в ui можно указать, ну,
92: Тоже, но сейчас говорим про ui, да, можно указать, необходимо ли использовать подтверждение при вызове инструмента. То есть, если мы говорим с подтверждением, то сначала модель определяет, что нужно вызвать инструмент. Дальше мы кликаем, да, вызови.
93: И дальше происходит вызов. Ну, хотим поставить задачу, что необходимо реализовать авторизацию пользователей через sso, и в этот момент происходит вызов эмсипи и, соответственно, в
94: Реализована логика, да, в этой, в этом инструменте, в этом thule реализована логика заведения задачи, в которой вот мы можем посмотреть, что у нас есть отдельная очередь с экспериментами, и здесь автоматически создаётся
95: Задача для того, чтобы, ну, как бы, выполнить постановку пользователя, как проделать все тоже самое с кодом вообще, что хочется отметить про scp, это такой более удобный
96: Механизм фанкшн колинга. То есть, когда эмсипи ещё не было, вам приходилось непосредственно в ходе, при описывать функцию, которую там должна вызвать модель. Это занимало достаточно много места, было громоздко, неудобно. Эмсипи позволяет вот разделить логику
97: Агента и реализацию тех вызовов, которые предполагаются вообще. Это удобный такой способ, встроенный, расширить умение модели на поддержку определённых сервисов, определённых апи, которые изначально не предполагались.
98: Последнее время мы видим тенденцию, что все больше сервисов, в том числе и яндекс клауд, получают свои эмсипи сервера. Если рассматривать очень простой такой базовый кейс кейс взаимодействия с mcp, то это кейс, когда подтвер
99: Не требуется, то есть река про never это вот тот параметр, который говорит, что выполняй все действия по умолчанию, не спрашивай пользователя, когда ты считаешь ннужным, когда модель считает нужным, тогда и вызывай соответствующий инструмент также to.
100: Mcp он параметризуется определённым типом это зарезервированное значение эмсипи обязательно указывайте сервер лейбл для того, чтобы формировать в дальнейшем айди, и чтобы модель опиралась на него, указыва.
101: Описание сервер дискрипшн опять-таки для того, чтобы модель лучше понимала, с чем она взаимодействует. Ну и конечно не забывайте про сервер url, который вы можете, например, получить в module хабе после того, как создали подключение самостоятельно или из какого-то определенног?
102: Шаблона. Я вдохновлялась. Здесь контур фокусом, там достаточно простой, интересный апи. И вот отсюда такие отголоски, чей ИНН, если говорить про реализацию инструмента, когда требуется подтверж.
103: То здесь по сравнению с предыдущим запросом нужно проставить значение always конкретно в нашем кейсе, когда я скопом как бы запрашиваю запрос на все вызываемые инструменты, которые подключены к
104: Конечно же, можно делать и на отдельные инструменты сервера, и дальше, когда модель решит, что необходимо делать вызов, она сначала спросит, ну, своего пользователя тире разработчика.
105: О том, допустимо ли выполнять этот вызов такие вещи можно обрамлять логикой, например, того, что пользователь в ui или видит кнопку, на которой написано подтверждаете, согласны ли вы с выполнением определ.
106: Определённых действий или его голосом просят подтвердить выполнение определённых действий, например, связанные с какими-нибудь транзакциями, созданием сущности и так далее и так далее. То есть позволяет сделать какие-то, скажем так,
107: Операции потенциально личные и более безопасными и прозрачными для своих Конечных пользователей. И вот здесь пришло эмсипи про requests, и затем, если мы говорим, что
108: Да, выполнять действия необходимо будет отправить сообщение, в котором мы говорим, что proof through, и связать запрос на подтверждение с ответом, с подтверждением. Через request id. Подробный код вы можете посмотреть не в репозитории.
109: Позапускать, поэкспериментировать, выбрать, допустим, в mcp какой-то из готовых шаблонов, коннекторов, например, трекер или контрфокус, ну либо написать эмсипи сервер для общения со своим собственным сервером, предоставляющим, ну,
110: Какой-то ваш апп. Таким образом мы познакомились с первыми шагами, которые нужны, чтобы собирать полноценно агентов, да, то есть мы увидели, как можно обратиться к модели, чтобы она авто
111: Периодически вызывала инструменты. Если вы хотите более подробно узнать про там нюансы работы с responses апи, читайте в документации, либо приходите с вопросами в наше сообщество.
112: В telegram яндекс y studio там мы рассказываем про все последние обновления, отвечаем на вопросы.