📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Обучайте AI за 10 секунд: Педагогика промптов

ALEKSEI ULIANOV | SPRUT- Ai41:03

Transcription

Привет, друзья. Сегодня интересная, важная, а главное, полезная тема. Речь пойдёт о векторном промпте.

Это способ получения инструкции и выполнения этой инструкции моим ассистентом, который я придумал, наверное, ещё полгода назад, когда только начал, э, конструировать своего спрута. И я уверен, что исключительно из-за данной технологии у меня данный агент, ассистент работает со всеми инструментами без проблем, со всеми агентами без нареканий. То есть он воспринимает эту инструкцию замечательно.

Для вас я подготовил также вот такую автоматизацию, где как раз применил эту технологию векторного промпта для вас вот такого небольшого агента-ассистента, который вообще-то может стать ядром вашей любой автоматизации. Забирайте эту автоматизацию, это у меня в Telegram-канале, в описании будет ссылочка. Ну и инструкции там также будут.

Давайте начнём с самого начала. Когда я создавал своего ассистента, ну, спрута в данном случае, я хотел общаться с ним как с живым человеком. Как общаются с живым человеком? То есть я задаю ему какую-то задачу, он её воспринимает и выполняет. То есть я ему задаю какую-то инструкцию, он её должен воспринять, и тут же он должен её проиграть, да, так скажем, либо с инструментом, либо с диалогом со мной, э, со стилем, да, каким образом он должен со мной общаться и так далее. Вот.

И я столкнулся с тем, что на тот момент, э, было только од один вид взаимодействия - это вот написать ему промт, да, то есть промт-инструкцию написать, как он должен действовать. Каким образом он должен общаться с тем или иным инструментом, либо там субагентом и так далее, что меня не устраивало. То есть мне необходимо было залезать всё время в этот промт, а его, так скажем, резать, увеличивать, дополнять, обновлять. И это геморрой. Вот.

И я же хотел, повторюсь, живого общения. Я ему хотел сказать: "Запомни, общайся со мной так-то, так-то. Зовут меня так-то, так-то". и так далее, да? То есть пойди, если я тебя попрошу сделать такое-то действие, пойди в этот инструмент и сделай это. И чтобы он это запомнил и при моём запросе он выполнял то, что я от него хочу.

Так вот, что такое векторный промт? Это база данных. Это база СУBs, векторная база, в которую я, э-э, через, значит, либо текстовый запрос, либо голосом говорю спруту те инструкции, которые я хочу, чтобы он выполнял именно так, как я хочу. Вот. И, в общем, эта инструкция записывается в его эту векторную базу. После чего, получая запрос, любой запрос, он обязан зайти в эту векторную базу по семантике, найти там инструкцию к тому инструменту, да, который я у него прошу, либо к тому действию, которое я от него прошу, и исполнить его, ну, 100% качественно. У меня это получилось.

А чем он хорош векторный промт? Все знают, что, ну, допустим, вот здесь у Спрута покажу, что у любого агента должен быть промт. Если же у агентов много инструментов, много субагентов, да, то есть с которыми он общается и взаимодействует, то эта портянка в виде промта, она может быть на несколько листов А4, да, то есть и э она засоряет контекст. Более того, все мы знаем, что агенты иногда просто выплёвывают основную информацию, не воспринимая промт целиком, да? То есть они могут доставать информацию только там из начала и конца промта. Ээ и соответственно, когда они делают нам ответ, ответ получается неправильный, либо они не заходят в этот инструмент и агент, а мы плюёмся, говорим: "Дерьмо - это ваш искусственный интеллект, агенты не работают, вообще невозможно с ними общаться". То есть как это так? Как это как живой, если он ни хрена не понимает, не идёт туда, куда я ему скажу? Я ему говорю миллион раз, он меня не понимает. Ну и, короче, кучу я слышал разных мнений и так далее. А это создаётся исключительно из-за того, что просто, э, промт и, э, большая, большая автоматизация, ну, не сильно совместимы, да, так скажем.

Ну, давайте элементарно зададим какой-нибудь вопрос, э, спруту, и я покажу, как это работает. Ну вот элементарно: "Привет". Да. А, ну вот видите, он заходит в инструкцию. Только после этого он мне будет отвечать: "Привет, я Спрут, твой верный друг и помощник, чем могу помочь?" То есть он даже получив от меня, ну, простой достаточно вопрос, да, то есть не вопрос даже, а просто приветствие, он туда заходит. То есть я настоятельно ему об этом написал, указал. Вот.

Ну и здесь опять же смотрите, он запрос сделал: "Привет". И что он должен сделать на это слово? А запомни, если я тебе говорю: "Привет" или ещё какое-то короткое запрос, отвечай, пожалуйста, самостоятельно. Это первое. Да. Запомни, если пользователь пишет только привет, кратко представься, как Спрут, твой верный друг, помощник и так далее. То есть, э, он определяет, что у меня в векторной базе по семантике относящееся к приветствию есть, и отвечает уже исходя из контекста того, что он оттуда вытащил. Всё очень просто.

А, ну и посложнее, давайте пример. Вот недавно совсем дочке нужно было выучить одну тему. Вот. И я не хотел записывать ей это голосом, да? То есть, чтобы она постоянно на репите, допустим, в том же Телеграме я пересылал информацию, чтобы она слушала, слушала и лучше это запомнила. А я надиктовал ему инструкцию, как ему нужно поступать. Я задал в эту инструкцию, что если я тебя прошу перевести текст в аудио, то возьми этот текст и запиши его, так скажем, аудиосообщением. Да, вот сейчас это мы и сделаем. "Переделай текст в аудио". И пишем вот этот текст, который мы хотим, да, допустим. То есть это уже инструкция чуть посложнее, да? То есть то есть он должен сейчас воспринять то, что я хочу в данном случае переделать текст в аудио. Давайте зайдём в инструкцию. "Запомни, если я тебя прошу перевести текст в голос, то бери данный текст, но не изменяя его, добавь к нему частичку Voice и отправь пользователю". Ну, спросив, в данном случае у меня после частички Voice он уходит в ветку для записи аудиосообщения. Вот. И после чего вот мы получаем >> сравнивать с вчерашним утром. Количество гиперэкстензий и приседаний осталось на прежнем уровне, а в планке ты снова выдержал 70 секунд. Отличный и стабильный результат. Количество отжиманий немного снизилось. Вчера было 50, сегодня 40. Это нормально. Организм может по-разному реагировать на нагрузку. >> Ну вот, то есть как пример, да, то есть он мне вот этот текст записал в аудиоформате.

Так, в чём же суть векторного промта? Что пишет ИИ? Основная суть метода векторного промта в том, что пользователь напрямую учит агента в процессе разговора с помощью простой команды "Запомни". Вместо того, чтобы создавать громоздкий статичный промт, который сложно обновлять и который быстро устаревает, здесь вся логика и правила хранятся в специальной векторной базе. Агент быстро ищет нужные инструкции и применяет их сразу без необходимости перезапуска. Да, всё правильно.

То есть мне не нужно, значит, заходить вот сюда в промт, менять его постоянно. Плюс плюс смотрите, в чём. В основном промте я указываю просто, какие у тебя есть агенты, допустим, да, вот видите агенты, какие есть, какая миссия, какие есть инструменты. Смотрите, как инструменты перечислены. Они просто написаны, какие есть, да? Да, то есть календарь, контакт, email и так далее. То есть просто перечислены. Вот также обязательно мм информация о времени, какие-то, ну, основные вещи указаны. Ну, и самая основная вещь, э, в промте должна быть это обязательно перед каждым ответом заход в векторную базу инструкций. Вот это самое основное. То есть и а там уже, соответственно, лежит все э инструкции, мои хотелки по каждому инструменту, по каждому агенту и так далее.

Давайте мы перейдём в автоматизацию, которую я для вас подготовил, и я вам покажу, как вообще это всё настраивается, как это всё работает. А-а, так, для начала мы, ага, здесь всё отключили. Сделаем, значит, а вот так, значит, очень простая авто, ну, блин, как очень простая, для кого-то не очень простая, но я считаю, что, в принципе, суть моего вот этого метода э несложный и, ну, а отдача на самом деле крутая. Мм, это вы можете как раз получив эту автоматизацию, повторюсь, внизу в Telegram-канале скачиваете, пробуйте как раз сами понять, какой кайф, когда он делает именно то, что вы хотите, когда он заходит в базу инструкций, забирает информацию и по ней следует.

Так вот, значит, что он у нас умеет, этот агент. Во-первых, у него после получения информации от вас есть, значит, три выхода. Первый выход, если вы отправляете текст. Второй выход, если вы отправляете PDF-ку какую-то, а третий выход, если вы говорите ему аудиосообщением. Вот.

Далее, если вы кидаете PDF-ку, да, здесь вот идёт в Telegram get_file получить файл, скачивается, э, этот файл, отправляется здесь э техническое сообщение, что записал PDF в базу. И далее этот эта информация, эта PDF-ка либо файл записывается в базу, в базу текст. Э для чего это нужно? В данном случае у агента есть два две базы, две векторные базы. Первая - это база промт, да, вот она здесь. Отсюда он берёт информацию инструкции. Вторая база текст, ну, так назвал её. Там просто хранится какая-то информация, а из из этой базы вы можете эту информацию, значит, доставать. Так вот, первая ветка, когда вы, значит, даёте ему какой-то PDF-файл, он уходит сразу же в запись в эту базу.

Вторая веточка. Если вы записываете ему, э, значит, текстовое сообщение уходит сразу же либо в агент, либо если в вашем тексте есть слово "запомни", да, то, э, это сообщение уходит в запись, в векторную базу инструкция. Как это работает? Допустим, "Запомни. Моя фамилия Петров", допустим, да? То есть делаем так. Вот смотрите, всё, инструкция записана в базу. То есть он здесь словил слово "запомни", информация ушла в нулевую ветку, записалась в базу инструкция. И эта вся информация записалась к нам в базу. А у нас промт она называется базу промт. Вот смотрите, "Запомни, моя фамилия Петров". Видите, до этого я ещё три короткие инструкции добавил. Давайте почитаем, какие. "Запомни, меня зовут Алексей. При первом приветствии ты должен поздороваться. Привет, мой друг Алексей. Далее, при каждом ответе должен называть меня по имени. Обращайся. Тон обращения очень простой, дружелюбный и на ты".

Так, ещё какая инструкция? "Запомни. Э, ты мой друг и помощник. Всегда отвечай сам, если пользователь не просит обращаться к агенту или инструменту". Это мы отсекаем, да, чтобы он не ээ значит не сам не выполнял это действие, то есть сам не определял, к какому инструменту, и агенту ему нужно обращаться, потому что у меня здесь в голове, в моей, по крайней мере, чётко прописано, что контролировать должен я, да? То есть, если я говорю: "И зайди туда-то", значит, он зайдёт туда-то. Вот. Если я ему не говорю зайти, то он будет отвечать сам. Либо спросит, может быть, зайти всё-таки туда. Я скажу: "Да, заходи, допустим, там какой-то какую-то базу либо там в таблицу и так далее".

Так, ещё "Запомни, здороваться нужно только, когда пользователь с тобой здоровается. В любых иных случаях просто обращайся по имени". Да, бывает такое, что, да, ну, тупеют немножко агенты, нужно им указать всё-таки не здороваться постоянно. То есть бывает, что они всё время здороваются. Вот. То есть это нужно добавлять. То есть тут вам немножко нужно понять, что вы здесь контролируете сами ситуацию. И в данном взаимодействии, если вы работаете с агентом с помощью векторного промта, вы должны всё, что у вас значит в голове есть, как он должен работать, всё это ему записывать в промт. То есть получается здесь как будто он какой-то, ну, сильно тупой ваш сотрудник, которому вы поначалу должны эти инструкции все разжёвывать, да? То есть постоянно всё говорить: "Здесь мне не нравится, как ты сделал, сделай, пожалуйста, по-другому". Вот так надо делать, да, в следующий раз. То есть, э, тем самым вы видите, как он будет развиваться, да? То есть вы будете видеть, как он будет выполнять именно так, как вы хотите впоследствии. Вот, вот в этом и прелесть вот этого промта. Он постоянно дополняется, э, постоянно как-то развивается. То есть, если у вас добавляется какой-то новый инструмент или ваша новая желание, вы ему говорите, соответственно, оно в следующем, в следующей итерации, там, в следующем, так скажем, запросе будет исполнено так, как вы написали ему.

Вот. Ну, допустим, давайте моя инструкция, да? То есть где моя инструкция? Вот моей инструкции уже достаточно много. Э, видите? Почти 100, да, строчек. Вот видите, всё расписано, с каким инструментом и как он потом должен работать. Вот. То есть, э, но плюс как раз векторной векторного промта, что вы его не засрёте так, как вы бы засрали обычный промт статичный. Он бы у вас был огромный на 1.000 там, а, на 1.000 слов. Ну и впоследствии вот они и возникают проблемы отупения агентов. Э то есть здесь же вы точечно достаёте именно ту инструкцию на тот инструмент, которым вы хотите пользоваться. Но это кайф. Вот.

Ну и давайте проверим, какая у меня фамилия. "Какая у меня фамилия?" Так, смотрите. Видите, он зашёл в промт. "Какая у меня фамилия?" Петров. Он отсюда достал информацию о моей фамилии и ответил уже: "Привет, Алексей". А он должен отвечать: "Привет, Алексей", потому что я до этого прочитал вам инструкции. Он должен упоминать мне по имени. Для вас вы как хотите делаете. То есть это я как пример показал, чтобы вы поняли, как работает эта система. "Твоя фамилия Петров. Чем могу помочь?" Вот. Понятно, да?

То есть, смотрите, если у вас добавляется какая-то какой-то инструмент, то вы также должны ему об этом написать. Помимо того, что у вас это указано в промте, но каким образом у вас указано в промте? Вот смотрите, промт этого агента, видите, какой? Не знаю, сколько тут, 100 символов, не знаю, там 200. Всё. То есть он вообще лёгкий, да, то есть и воспринимается агентом очень хорошо. То есть, что он личный помощник. Вот обязательное исполнение инструкции, да, до ответа обязательно зайти в инструкцию, получить инструкцию, топ-пять то есть основных упоминаний, так скажем, по семантике какого-либо инструмента и либо действия. Получить это и, значит, выдать нам, основываясь на этот контекст, на контекст, полученный из инструкции. Какие есть у него сейчас инструменты? Текст - это база знаний какая-то, да? Допустим, прайс - это табличка. Промт - это та необходимая инструкция, которую он должен постоянно заходить. Perplexity. Больше ничего я ему не указал. То есть вот все инструменты они вот здесь вот представлены. Perplexity, price, проттер. А, да, агент, допустим, какой-то. Сейчас тоже расскажу чуть чуть чуть попозже. Вот. То есть, смотрите, здесь мы добавляем эту инструкцию. Здесь мы эту инструкцию, по этой инструкции он у нас действует. Далее у нас происходит код - это убирает мусор и отправка вам в Telegram.

Давайте мы, значит, покажу вам, как работает база текст. Допустим, у нас есть какая-то какое-то исследование. Вот у меня, допустим, есть исследование. Сейчас мы его закинем туда. "Графовые промты", да? То есть мы просто перетаскиваем сюда и отправляем. То есть, ээ, так же, как в спруте, я люблю общение в одно окно. То есть, если у нас есть, э, значит, рот у агента, пусть он всё хавает, да, то есть и заполняет сам. Я не хочу в данном случае, допустим, м ничего через сторонний загрузчик отправлять, да? То есть я не хочу открывать что-то. Вот у меня появилось на телефоне, да, какой-то мне пришёл файл. Я хочу, чтобы этот агент был э умным на ещё дополнительную какую-то информацию, которую я загружу ему в базу. То есть я беру этот файл, просто скачиваю через телефон, ему отправляю. Всё.

Так, давайте мы попробуем спросить у него, да, чтобы он обратился в эту базу. "Посмотри в базе текст, что такое графовый промт". Отправляем ему и ждём его ответ. Ну вот, смотрите, он пошёл в промт, оттуда взял информацию о том, к какой базе и как нужно обращаться. И сейчас, значит, выплюнул нам э графовый промт. Это концепция, во-первых, Алексей, да, ну, у него записано так, обращайся по имени. Графовый промт - это концепция, связанная с методом Т-та-Т и так далее. То есть вот его ответ. Сначала зашёл в промт, в базу текст, как нужно обращаться и когда. И он зашёл в эту базу и вытащил оттуда информацию.

Вот опять же, э, значит, к этому агенту мы можем прикреплять э любых других субагентов. Ну, здесь уже, наверное, ассистент он всё-таки будет. А других субагентов, допустим, вот любого мы можем оторвать, допустим, от того же спрута. А вот давайте, давайте мы ропа какого-нибудь возьмём. Вот бизнес-тренера. То есть я вот просто делаю, я вот так вот делаю, копирую, я сюда я вот так вставляю. Просто показываю вам, как каким образом можно подключать дополнительно, да, бизнес-тренер. То есть мы подключили сейчас вот этого агента Бизнес-тренер. Здесь мы можем сразу же скопировать, зайти к нему в промт, написать, что у тебя теперь есть ещё один агент, да? Вот сюда мы его так не сюда. Кайзена мы уберём, а вот сюда бизнес-тренера, допустим, вставим. Вот. И мы ему напишем, напишем ему сообщение, когда используй данный агент тире ещё раз укажем, то есть м ага и главное, ключевое слово "запомни", да? "Запомни", чтобы эта информация ушла к нему в э в базу инструкций. Вот указал коряво. На самом деле тут лучше, конечно, прописывать всё, как он должен обращаться, да, то есть к агенту каким образом, то есть как получать о не ответ, изменять ли ответ, либо сразу пересылать пользователю. То есть там много можно что указывать, но я просто для демонстрации, что он теперь имеет этот инструмент, он теперь его видит, и он теперь может обратиться, да, допустим, к нему. Допустим, "Спроси у бизнес-тренер, как лучше продавать шерстяные носки". Ну вот теперь он должен иметь понимание, что нужно. Вот сейчас промт, он там нашёл информацию. Вот он пошёл к бизнес-тренеру для того, чтобы нам ответить на наш вопрос. А, то есть, смотрите, имея вот такую систему, да, пополняя её инструкциями, и если у вас есть, опять же, как у меня у Спрута, какие-то агенты, которые можно, значит, использовать уже, да, то есть у вас уже там что-то появилось, значит, если вы там новичок, что-то какого-то агента вы сделали, вы прикрепляете его просто вот таким образом, как субагент своему вот этому новому с векторным промтом и используете его, э, вот с таким замечательным нововведением. Вот. И вот, пожалуйста, нам ответил уже инструмент бизнес-тренер, да, как лучше продать носки. И он, соответственно, основываясь на своих книгах и так далее, отвечает нам. Вот. То есть, э, замечательно работает.

Ну, таким образом вы можете, значит, новые инструменты добавлять, новые агенты новых добавлять, прописывать к ним инструкцию. Допустим, давайте ещё один пример сделаем. Вот у нас, допустим, он не знает, а каким образом, э, отвечать, если у него нет, ээ, какого-то агента или инструмента под мой какой-то странный, возможно, вопрос, да? И мы ему пишем: "Запомни, запомни, если ты не знаешь к кому обратиться или вопрос связан с поиском в интернете, воспользуйся. Всё, воспользуйся Perplexity, да?" Вот так вот сделаем. Ну, опять же, я бы по-другому для себя делал. То есть я бы расписал конкретно в каких случаях, как отвечать, то есть нужно ли источники добавлять и так далее. Ну, в данном случае просто написал так. Ну, и "Какая погода? Велиси сегодня". И про погоду, допустим, спрошу, да, у него. То есть он будет не знает, куда деться. Вот он пошёл в промт, взял оттуда инструкцию и пошёл Perplexity для того, чтобы уточнить, какая сегодня погода. То есть всё элементарно, всё просто. То есть вы ему просто объясняете, каким образом он должен поступать.

Да, ещё, кстати, важная информация. Я изначально со Спрутом общался немножко по-другому, не как сейчас. Сейчас я ему говорю: "Обратись, пожалуйста, к такому-то агенту". Да, там "Обратись к доктору, посмотри, пожалуйста, когда там дела диспансеризацию, ещё что-нибудь, да?". А ранее я ему писал в инструкциях: "Если вопрос связан со здоровьем, там обращайся к доктору, там, если вопрос связан с автомобилем, обращайся к там автомеханику и так далее". То есть он у меня самостоятельно, заходя в инструкцию, определял того агента, которому обратиться. Но впоследствии я от этого отошёл, и я ему всё-таки теперь говорю: "Обратись к тому-то, спроси то-то". Почему? Потому что здесь я в любом случае хочу быть, ну, под на контроле. То есть я хочу сам контролировать то, куда он пойдёт. То есть понятно, что у него есть инструкция, каким образом обращаться к инструменту, да, каким образом готовить запрос и так далее, да, то есть, но я хочу знать и контролировать сам, к кому он должен пойти. Вот, то есть, но смотрите сами. То есть вообще, в принципе, можете два этих варианта использовать. То есть, либо он сам должен определять, да, то есть вы ему даёте больше возможности самостоятельно действовать как э агенту, вот, либо э делаете его ассистентом, как у меня, и уже указываете, куда ему идти и что ему делать. Вот. То есть таким образом вы получили вот такую автоматизацию. Вы самостоятельно можете добавлять туда всю информацию агентов, инструментов и так далее.

Вот. Далее, что? Далее, наверное, давайте я вам про расскажу, как таблицу добавлять. У меня сейчас я сгенерировал другой код для таблицы. А так, одну секунду, сейчас посмотрю. Вот он. Сейчас покажу, как работать. Вот. То есть сейчас у меня, э, ну, опять же, оставлю этот код вместе с JSON в Телеграме в комментарии под постом вот этого видео. А там будет у вас вот такой код. Вы можете, допустим, его вставить вот так. То есть код вы вставляете в свою базу SQL, да, в свою базу вот сюда в запрос, да? То есть вот в пустое место вы вставляете код. Код вы можете сгенерировать легко в, э, значит, в LLM. То есть каким образом? Вы вставляете тот шаблон, который у меня есть. И пишите ему, что сделай такой же код для базы пример. Вот. То есть, э, вообще вы можете делать сколько угодно баз, да, то есть для а своего вот этого ассистента, агента. Вот, в том числе и для базы ваших с ним диалогов. То есть вы можете прикрепить базу ваших диалогов и, ну, опять же, использовать её впоследствии как какой-то инструмент э анализа, да? То есть, что вы там ему говорили, что вы с ним обсуждали и так далее. Вот. То есть вы можете таким образом создать эту базу, допустим, вот в данном случае пример называется, да? Вы копируете этот код, вы идёте вот сюда вот в SQL, в пустое место его здесь вставляете. Так вот. Нажимаете run. То есть в данном случае у нас с вами вот заходите в таблицы и ищете так, как там пример, вот, то есть у нас получилась точно такая же база, которая необходима для того, чтобы вектор нам поискам можно было искать по ней, да? То есть автоматически создались вот эти колонки, ну и открылась возможность у LLM по этой базе искать, да? То есть вот это важно. Её удалим. Мне она не нужна. Вот.

То есть опять же обращаемся к этому агенту. Обязательно при поиске в какой-либо базе, которую вы создали, вы её указываете вот здесь вот, да, from_list в какую конкретно табличку вам нужно, выбираете её здесь. Здесь указываются лимиты. Ранкер нужен, не нужен, определяете сами. Ранкер - это определение трёх самых релевантных э ответов, которые выдаёт эта таблица. Ну, я бы для инструкции, не знаю, по первости не пользовался, но у меня она подключена сейчас, потому что у меня инструкция сейчас большая. Вот. И, соответственно, чтобы ему был просто меньше контекст был. Вот. И здесь обязательно здесь вот нужно указать, из какой базы вам нужно делать поиск. Вот это обязательное условие, чтобы он конкретно в этой базе и искал по семантике ваши ответы. Вот. То есть таким образом вы можете задавать сколь угодно баз с разной информацией. Задавать ему в инструкции, в какую базу идти при каких-то запросах, и он у вас станет ещё умнее, да? То есть тут тут уже как раз открывается вот та самая безграничность э возможностей, которая даёт вам подобная система.

А вот что ещё? А, да, ещё классная штука, которую я не так давно тоже сделал. Вообще даже с таким минимальным промтом иногда, ну, не знаю, с чем это связано, да, он у меня не заходил в каких-то моментах в векторную базу с инструкциями, да, то есть пропускал этот момент, и мне пришлось его, да, как щенка в саку свою ткнуть, э, в дополнительно, так скажем, указать ему, что необходимо туда залезать. Как я это сделал? Я, то есть перед входом в агент сделал вот этот IT_file, вот этот вот ноду, в которую я прописал, да? А почему здесь два? Здесь что-то может текстом прийти, что-то, э, значит, голосом. Соответственно, здесь немножко разделение идёт. Вот просто я прописал: "Сначала зайди в промт и найди, как и с каким инструментом или агентом тебе нужно ответить на запрос и запрос пользователя". То есть в данном случае он уже получает, видите, какой ответ: "Сначала зайди в промт. Какая погода сегодня в Тбилисе?" То есть он уже в контексте имеет, значит, у себя обязательство зайти в промт. То есть он уже не отвертится, так скажем, никак. Он туда зайдёт. Вот. Это что касается каких-то там нюансов, да? То есть я думаю, что тут у вас сложностей не будет и всё у вас получится.

Недавно задумался, дай-ка я зайду, проведу пару исследований в LLM, да, то есть какие подобные инструменты и методы были уже применены. И обнаружил, что вот конкретно такого, э, как сделал я, это векторный промт, да, то есть не нашёл, но есть три похожие. И давайте я вам ознакомлю немножко с ними. Вообще про мой векторный промт. Система, да, он пишет, что эта система другая. Промпт - это оболочка. Всего 50 слов инструкции, а вся доменная логика в векторной базе. Можете добавить хоть 500 правил, промт не раздуется, система не замедлится. Ну да, так оно и есть. То есть в этом огромный плюс и фишка вот этой вот этого метода.

А что с конкурентами, да? Пишет нам LLM. Есть похожие вещи, давайте разберу по полочкам. Вот, ээ, буквально недавно, в октябре двадцать пятого года, какое-то исследование вышло. Агент сам учится, использует три внутренних агента. Генератор создаёт стратегии, рефлектор анализирует ошибки, а, и куратор отбирает лучшие инсайты и добавляет в контекст. То есть там вот эти все вещи, да, то есть делает, улучшает промт аж три м агента. Результат всего плюс 10% к точности на бенчмарках. Звучит отлично. Но есть проблема, это дорого. Три вызова языковой модели на каждую задачу. И главное, вы не контролируете, что агент запомнит. Он решает сам. Сам решу. А вот, то есть вот здесь вот большая разница, да, всё-таки. То есть здесь LLM сама решает, каким образом изменить что-то для того, чтобы получилось хорошее какое-то действие. У нас же здесь я контролирую сам, да, что я и говорил, что мне нравится больше контролировать самостоятельно вот этот процесс основной. То есть я сам ему говорю, как мне хочется. Вот. То есть это прямо большой плюс, я считаю. Вот.

Э, ну вот здесь он и пишет: "Да, у нас по-другому. Вы говорите: 'Запомни', агент запоминает. Один вызов модели дёшево, а и под вашим контролем. Считаю, круто". Вот второе от Пекинского университета в сентябре двадцатого четвёртого года. Это вообще хардкор. Агент читает свой собственный код и модифицирует его на лету. э-э, рекурсивно улучшается, достиг 100% точности в какой-то там задаче Game of 24. Аэ, но есть нюанс, он изменяет код. Это рискованно. Ошибка в коде и вся система ломается. Нужна сложная инфраструктура для безопасной модификации. Что у нас, да, происходит? Мы не трогаем код. Мы меняем только инструкции. Они изолированы в базе данных. Если что-то пошло не так, просто удалите неудачную инструкцию. Код остаётся нетронутым. Это как раз может быть удалите не устаревшую какую-то инструкцию можно удалить, да, самостоятельно, либо, а, противоречащую. Ну, две, может, инструкции, которые противоречат друг другу, чтобы он в ступор не впал. То есть одну мы удаляем. Вот тоже плюс, да, всё-таки у данной системы.

Так, ещё одна система. После каждой задачи агент анализирует свои действия, компилирует оптимизированный набор инструкций, сохраняет Longterm Memory, формирует цикл самоулучшения. Ну, тут фиг его знает. Звучит умно, но опять же это пассивное обучение. Да, всё верно. То есть да, агент учится задним числом. А если новая задача, если контекст изменился, придётся ждать, пока он наберётся опыта. Да, здесь он как бы само, э, значит, идентифицируется всё время, э, и реагирует только после того, как найдёт ошибку, её исправит, да? У нас активное обучение. Вы учите агента сразу до того, как он столкнётся с задачей, да? Мы, то есть, сначала прописываем ему инструкцию, как пользоваться каким-то инструментом. Вот, добавляем, добавляем этот инструмент, и он, короче, сразу начинает работу. Вот ему не нужно для этого, значит, получать кучу ошибок, работая с каким-то инструментом.

Ну и RAG Memory - это популярная концепция. Агент запоминает историю разговора через векторный поиск. Каждое сообщение суммируется, сохраняется. Потом при новом запросе семантический поиск и агент вспоминает релевантные факты. 74% точности. Неплохо, но вот в чём разница. RAG Memory а запоминает факты из разговора. Пользователь сказал, что живёт в Москве. Пользователь предпочитает кофе без сахара. Векторный промт запоминает правила поведения: "Когда пользователь спрашивает о ценах, проверяй таблицу. При планировании всегда учитывай". Это не факты, это инструкции. RAG Memory - это пассивная ээ индексация. Всё записывается автоматически. У нас триггер. Вы сами решаете, что достойно запоминания. Ну, понятно, да, что там целый он ковыряется в целом в ворохе там наших с ним диалогов, э, в том методе, в последнем. И, соответственно, потом определяет в контексте там, что хорошо, что плохо было и как это как здесь это надо применить как тот или иной ту или иную инструкцию. У нас смысл в этом, да, анализировать, если я в голове сам понимаю, что мне нужно сделать. Я сам ему говорю: "Запомни" и ту инструкцию, которая мне нужна.

Давайте, э, поговорим о плюсах и минусах данной системы.

Плюсы:

Легко и понятно. Учите агента обычным языком в диалоге. О чём я говорил.

Мгновенное применение правил без задержек. Да. Добавили инструмент, сказали правила. Следующая итерация, ну, следующий запрос уже он знает, как им пользоваться.

Минимальный основной промт, та логика спрятана в базе. Меньше контекст, лучше работает.

Полный контроль пользователем над тем, что, э, учится агент. То есть вы, значит, сами контролируете э знания своего агента.

Хорошая масштабируемость и стабильность. Ну да, всё верно. То есть, если там до 500, до 500 инструкций можно записать, то есть тут, э, значит, можно прямо добиться хороших результатов.

Готов к использованию сразу, без сложной настройки. Всё верно.

Так, что из минусов мне написал и агент не учится самостоятельно, требует активного участия. Ну, допустим, для меня это плюс, а не минус, да? То есть мне не нужно, чтобы он самостоятельно учился. Я сам знаю, что ему нужно знать для того, чтобы работать со мной.

Нет системы приоритетов для правил. Все применяются равнозначно. Всё верно. Здесь можно дорабатывать. И я даже знаю, как это доработать. Но на самом деле мне вот этот приоритет какой-либо инструкции не сильно нужен. Мне всё важно. Мне нужно, чтобы он просто вытаскивал по семантике, что нужно, и делал по данной инструкции.

База может расти без контроля, без автоматической очистки. Э, да, верно. Нужно постоянно, значит, понимать, что база увеличивается, что возможны противоречия, возможно устаревание и так далее. В данном случае я у Спрута даже спрашиваю: "Проверь всю свою базу, инструкция, найди, пожалуйста, там, есть ли там противоречия, ээ и укажи мне их". То есть он прямо ищет. Я потом захожу в векторную базу и ищу. На самом деле это тоже можно автоматизировать. За 6 месяцев мне пока не пригодилось. То есть не потребовалось.

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

Пока рассчитан на одного пользователя, нет командной работы. Ну да, Спрут - это изначально был мой личный ассистент.

Не подходит для полностью автономного самообучения. Ну не подходит, верно. То есть мне пока вот это было не нужно. Вот.

Ну, я не знаю, доработаю ли я что-нибудь вот из этого, но допустим, э поводу очистки устаревших данных информации. Вот это я думаю, что нужно будет сделать.

Надеюсь, что это видео будет вам полезно и вы будете применять этот метод. Вот. Если э видео зашло, можете поставить лайк. Если у вас эта автоматизация зайдёт и вы по ней что-то соберёте, буду рад вашим комментариям, что вы соберёте, да? То есть, может быть, какие-то у вас идеи появятся. Я всегда прошу, чтобы вы мне накидывали этих идей, чтобы мне, так скажем, было что воплощать в жизнь, да, потому что свои в голове уже начинают заканчиваться агенты, инструменты и так далее, темы все. Вот. Поэтому прошу от вас в этом плане поддержки. А если хотите, подписывайтесь на канал. Буду рад вас видеть снова на канале. Всем спасибо за внимание и пока.