📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Proactive Agents – Kath Korevec, Google Labs

AI Engineer16:51

Transcription

[музыка] Я так рада быть здесь. Я люблю Нью-Йорк и люблю встречаться здесь со всеми. И я Кэт Корбек. Я из Google Labs и работаю в небольшой команде под названием ADA, и я собираюсь рассказать о некоторых вещах, которые мы делали в этом проекте под названием Jewels. Итак, несколько месяцев назад в моем доме сломалась посудомоечная машина. И пока ее ремонтировали, мой муж решил, что будет мыть всю посуду. И вот, он сказал мне, что собирается это сделать. Но каждую ночь я ловила себя на том, что напоминаю ему помыть посуду. И вы можете себе представить, что это довольно быстро надоело. И я поняла, что, хотя я физически не мыла посуду, я все равно несла это ментальное бремя. И я знаю, что многие из вас, вероятно, могут с этим согласиться. Я отслеживала, выполнена ли эта задача, следила за ней, убеждалась, что все движется вперед. И в тот момент я поняла, что именно там мы находимся сегодня с асинхронными агентами. Они могут выполнять часть работы, но мы, разработчики, все еще несем это ментальное бремя и контролируем их. Так вот, в чем правда. Люди, мы последовательные процессоры, а не параллельные. Мы можем жонглировать несколькими целями, но выполняем их последовательно, а не все сразу. Когда вы вручную запускаете задачу в Jewels, вы обычно ждете, чтобы иметь возможность двигаться дальше. И именно эта пауза, этот пробел во внимании, где мы действительно теряем импульс. И это на самом деле подтверждается наукой, где, как мы думаем, мы многозадачны, но на самом деле мы выполняем множество задач очень быстро. Но переключение между этими задачами имеет огромную цену. Это может стоить до 40% вашего продуктивного времени. Так что это как полдня, потерянного на переключение контекстов и перезагрузку. Так что, если люди — унификаторы, то в чем решение здесь с агентами? Итак, для асинхронных агентов, чтобы они преуспели, разработчики не могут быть вынуждены нянчиться с ними. Мы все видели этот пост в Твиттере о 16 различных задачах облачного кода, выполняющихся параллельно на 16 разных терминалах на трех разных огромных браузерах или огромных мониторах. И когда я впервые увидел это, я подумал: Боже упаси, это будущее DevX. Я не хочу управлять работой. Я не хочу управлять своими агентами. Я хочу быть кодером. Я хочу создавать. И поэтому нам нужно думать, нам нужны collaborateurs в нашей системе, которым мы можем доверять. Агенты, которые действительно понимают контекст, могут предвидеть наши потребности и действительно знают, когда вмешаться. И тогда, я думаю, наконец, мы достигаем этой точки с моделями, где они становятся все лучше и лучше в выполнении от начала до конца, если они четко понимают, каковы наши цели. И именно здесь доверие действительно становится этим разблокирующим фактором, где вы можете доверять системе, чтобы знать, что отсутствует, чтобы заполнить пробелы и действительно поддерживать прогресс, пока вы управляете чем-то другим, пока вы сосредоточены на том, что наиболее важно. И по сути, мы хотим, чтобы Jewels мыл посуду без просьбы. Итак, большинство современных инструментов для разработчиков ИИ по своей сути реактивны. Вы открываете свой CLI или IDE и просите агента что-то сделать, и он отвечает или ждет, пока вы начнете печатать, а затем предлагает автодополнение. И у этой модели есть преимущество. Она очень эффективна. Она использует вычислительные ресурсы только тогда, когда вы явно запрашиваете. Но главный вопрос, который я задаю себе: вот так я хочу управлять ИИ? И если вы подумаете о будущем, представьте мир, где вычисления больше не являются ограничивающим фактором. Вместо одного реактивного помощника для инструкций у вас могут быть десятки небольших проактивных агентов, работающих с вами параллельно, тихо ищущих закономерности, замечающих трения и выполняющих скучные задачи, которые вы не хотите делать, еще до того, как вы попросите. Он может делать такие вещи, как исправление ошибок аутентификации, которых вы избегали, обновление конфигураций, пометка потенциальных ошибок заказа, подготовка миграций, и все это может происходить в фоновом режиме, запускаемое событиями в моем естественном рабочем процессе. Итак, я действительно думаю, что есть четыре основных ингредиента, которые составляют проактивные системы сегодня. Есть наблюдение. Агент должен постоянно понимать, что происходит, каковы ваши изменения в коде, каковы ваши закономерности, каков ваш рабочий процесс и т. д., чтобы получить контекст о вашем проекте в целом. А затем есть персонализация. И это сложно. Он должен научиться тому, как вы работаете, что вас волнует, что вы склонны игнорировать, каковы ваши предпочтения, какой код вы абсолютно не хотите трогать. А затем он также должен быть своевременным. Если он появится слишком рано, он вас прервет. А если слишком поздно, то момент будет упущен. И он также должен работать беспрепятственно на протяжении всего вашего рабочего процесса. Он должен вставляться в места, где вы естественно работаете, в вашем терминале, в вашем репозитории, в вашей IDE, не заставляя вас идти куда-то еще, в какое-то секретное приложение, о котором вы забыли. Итак, собрать все эти инструменты вместе, как вы можете себе представить, нетривиально. [смех] >> Так же, как и проведение этой презентации. И вы хотите иметь возможность попросить своего агента понять ваш рабочий процесс и предвидеть ваши потребности, а затем вмешаться в нужный момент, не нарушая ваш рабочий процесс. И вот тогда это действительно начинает ощущаться как волшебство. Интересно то, что проактивные системы, они повсюду вокруг нас сегодня. Один из моих любимых примеров — Google Nest, где вы устанавливаете его в своем доме, настраиваете, и он начинает изучать ваши привычки, когда вы уходите из дома, когда возвращаетесь, когда ложитесь спать, когда просыпаетесь утром. И вскоре вам больше не нужно думать о контроле климата в вашем доме, потому что он изучил ваши привычки. Другой пример — ваше собственное тело. Ваше сердцебиение учащается, когда вы идете на пробежку или начинаете тренироваться, или оно предвидит, что вы собираетесь упасть, и реагирует до того, как вы сознательно подумаете: "Я вытяну руку". Так что, если посмотреть на это так, проактивность на самом деле не такая уж футуристичная для ИИ. Она очень знакома и очень человечна, и в этом вся суть. То, что мы строим, — это инструменты, которые ведут себя скорее как хороший сотрудник, а не как утилиты командной строки. Итак, мы уже делаем это в этом инструменте под названием Jewels, который является этим проактивным асинхронным автономным кодирующим агентом от Google Labs. И мы делаем это на трех уровнях проактивности. Уровень первый — это то, где действительно начинается сотрудничество. И именно так Jewels работает сегодня, где он может обнаруживать такие вещи, как отсутствующие тесты, неиспользуемые зависимости, небезопасные шаблоны, а затем он начинает автоматически исправлять эти вещи, выполняя другие задачи, которые вы ему поручили. Это похоже на внимательного су-шефа в вашем рабочем процессе, который поддерживает чистоту на кухне, остроту ножей, запас продуктов, чтобы вы могли сосредоточиться на следующем. И это начало проактивного программного обеспечения. На уровне два агент становится более контекстно осведомленным обо всем проекте. Он наблюдает, как вы работаете, какой код вы пишете. Если вы бэкэнд-инженер, возможно, вам нужна помощь с React. Если вы дизайнер, возможно, он поможет написать схему базы данных. А затем он изучает ваши фреймворки и ваш стиль развертывания и т. д. И это менеджер кухни. Это человек в вашем рабочем процессе, который поддерживает ритм и предвидит, что вам нужно дальше. А затем приходит уровень три. И это то, над чем мы сейчас очень усердно работаем, начиная с декабря. И я покажу вам немного того, что мы собираемся выпустить в декабре через минуту. Но уровень три — это то, где вещи начинают сходиться вокруг этого контекста. Это то, где агент начинает понимать не только контекст, но и последствия. Как эти выборы на самом деле влияют на пользователей ваших продуктов, на производительность и на результаты. И на этом уровне у нас есть этот инструмент Jewels. У нас также есть агент под названием Stitch, который является дизайнерским агентом. И еще один, который мы разрабатываем, под названием Insights, который является агентом данных, и все они объединяются для создания коллективного интеллекта по всему вашему приложению. Jewels может видеть, что ломается в программном обеспечении. Stitch понимает, как пользователи взаимодействуют с ним, а Insights связывает поведение из реальных сигналов, таких как аналитика, телеметрия и коэффициенты конверсии. И затем вместе они могут предлагать улучшения, выходящие за рамки того, как вся система работает вместе. выполняя такие вещи, как исправления производительности для улучшения UX, а затем изменения дизайна для предотвращения регрессий, а затем все это организовано на основе живых данных. Так что трюк здесь в том, что человек остается прочно в цикле. Вы наблюдаете за тем, что делают агенты. Вы уточняете, когда вам нужно вмешаться, а затем вы перенаправляете его, когда он был направлен неправильно. Так что уровень три — это не столько автономия. Это на самом деле выравнивание с вашим проектом. Агенты и люди сотрудничают на протяжении всего жизненного цикла вашего проекта. Итак, сейчас Jewels сосредоточен на этом аспекте осведомленности о коде. Он понимает среду, фреймворки и структуры проектов, и мы движемся к большей системной осведомленности. Так что вещи, которые мы сейчас вводим в Jewels, мы добавили кое-что под названием память, с которым, я уверен, многие из вас знакомы. Это способность Jewels записывать свои собственные воспоминания, и вы можете их редактировать и взаимодействовать с ними. Он может их редактировать, и он понимает это и строит эту память, контекст и знания о вашем проекте по мере вашей работы с ним. Мы добавили агент-критик, который работает в оппозиции с Jewels, чтобы убедиться, что код имеет высокое качество, а также выполняет полный обзор кода. А затем мы добавили верификацию, где Jewels напишет скрипт Playwright, сделает снимок экрана, а затем вернет его в траекторию для вашего подтверждения. А затем мы также делаем такие вещи, как добавление бота для задач, который будет просматривать ваш код и ваш репозиторий и находить все, где вы сказали "это задача, которую я хочу решить в будущем", и он начнет проактивно работать над этими вещами с этим контекстом. Мы также добавляем такие вещи, как лучшие практики, где Jewels будет понимать лучшие практики и начнет предлагать их, а также настройку среды. У нас есть агент среды, который мы используем внутри компании для проведения оценок, и мы расширяем его для внешнего использования, чтобы лучше понять, как работают ваши среды, и настроить их для вас. А затем мы также добавляем кое-что под названием контекст "точно в срок". Это похоже на шпаргалку Jewels, где, если он делает что-то очень специфическое и застревает, он может просто немедленно посмотреть в эту шпаргалку, вместо того чтобы обращаться к вам. Итак, все это приближает Jewels к тому, чтобы стать проактивным командным игроком, а не просто реактивным помощником. Итак, сегодня утром я разговаривала со своей командой в Сан-Франциско и думала: "Хорошо, я проведу живую демонстрацию, но боги живой демонстрации сегодня утром не были на моей стороне". У нас все еще есть CL, которые отправляются на staging прямо сейчас. Так что я проведу вас немного через это. И если вы знаете Джеда, он, я думаю, будет выступать завтра. Мы с любовью попытаемся исправить код Джеда. Итак, это взгляд на проактивность, и это Jewels, где вы даете ему запрос, и первое, что вы делаете при настройке и включении проактивности, — это Jewels индексирует весь ваш кодовую базу. Он проиндексирует ваш каталог и начнет искать вещи, которые он может сделать, а затем это появится на экране. Итак, здесь мы смотрим немного больше в этом репозитории ADK Python, и он проиндексировал репозиторий и нашел кучу задач. Он нашел кучу лучших практик, которые он может обновить, и дает мне некоторый сигнал о том, что он находит. И вот вы можете видеть сигнал — высокая уверенность, средняя уверенность и низкая. И поэтому он фактически говорит мне, что, по его мнению, он может достичь, основываясь на том, что есть в моем коде, и что он хочет сделать. И поэтому у него высокая уверенность в зеленом, средняя и фиолетовая, низкая и желтая внизу. [кашляет] И поэтому я могу пройти через это и вручную нажать на них и сказать: "Я хочу начать их". И поэтому мне не нужно думать о запросе. Мне не нужно смотреть на код. Я могу иметь меньше когнитивной нагрузки. Мы работаем над чем-то, чтобы просто запускать их автоматически. И это будет в будущем. Но я также могу их удалить. Я могу сказать: "Эй, этот мне не подходит. Нехорошо". И поэтому, как только он начнет задачу, я могу немного углубиться и увидеть больше. Я могу заглянуть в код, который он предлагает, над которым он предлагает работать. Я могу найти местоположение этого кода. И он также дает мне обоснование, почему он хочет работать над этим кодом, почему он это делает и т. д. И поэтому он дает мне гораздо больше контекста и помогает мне доверять тому, что он знает, что делать здесь. Итак, это проактивность. это будет в декабре, и, надеюсь, мы сможем предоставить это всем здесь. Мы очень взволнованы этим. И я хочу рассказать вам небольшую историю о чем-то, над чем мы с мужем работали, чтобы немного завершить. Мы много возились с оборудованием, и мы живем на медленной улице в центре Сан-Франциско в районе Хейтсбери, поэтому на Хэллоуин мимо нашего дома проходит много людей, и мы пытались использовать это с нашими хэллоуинскими украшениями, и поэтому мы построили эту 6-футовую аниматронную голову, которая стоит перед нашим домом. Это старый викторианский дом, и он вылепил ее из пены, эпоксидной смолы и стекловолокна. А затем наши дети также ласково называли это "лысой головой". И это основано на, если вы когда-нибудь видели Пи-Ви Германа из 80-х. Это основано на голове из "Больших приключений Пи-Ви" Пи-Ви Германа. Итак, пока мой муж делал это, я проводила время, работая с Jewels над обновлением прошивки, управлением шаговыми двигателями, работой над светодиодами и датчиками. И для меня это самая интересная часть — действительно творчески подойти к тому, что делают светодиоды. Поэтому я хотела сосредоточиться на этом, на анимации светодиодов, но в итоге я проводила большую часть времени, исправляя ошибки, меняя библиотеки и делая подобные вещи. Итак, что я делала, так это давала Jewels запрос, ждала 10 минут, а затем повторяла. И я нашла этот процесс очень, очень утомительным. И то, чего я хотела, — это чтобы Jewels проводил исследование. Я хотела, чтобы он занимался уродливыми частями, где он исследовал, как исправить ошибку. Отладка сама по себе. И я хотела, чтобы он делал это, чтобы я могла сосредоточиться на творческих частях. Я хотела, чтобы глаза двигались и следили за людьми, когда они идут по улице, и чтобы из глаз выходили лазеры и все такое, как я упоминала, был Хэллоуин. Это было очень страшно. И я не могла сделать так много из этого. И в итоге я даже не выпустила столько, сколько хотела, с этой аниматронной лысой головой. И именно этот пробел мы хотим закрыть. Это пространство между трением инструментов и творческой свободой, которое мы пытаемся разблокировать с помощью таких проактивных агентов. Итак, что я действительно хочу, чтобы вы унесли с собой, и я часто даю этот совет людям в команде Jewels, — это то, что продукт, который мы создаем сегодня, не будет продуктом, который у нас будет в будущем, и я думаю, многие из нас это знают, но на самом деле я хочу, чтобы каждый в этой комнате и каждый, кто работает с ИИ, мог сделать эти большие шаги. Я думаю, что шаблоны, на которые мы полагаемся сегодня, Git, ваши IDE, даже код, то, как мы думаем о самом коде, может не существовать через год, может не существовать через шесть месяцев. И это самое захватывающее для меня. Это как будто мы изобретаем будущее прямо сейчас. Мы можем описать и решить, как создается и строится программное обеспечение. Как бы все люди в этой комнате. Так что мой вызов вам — не бояться ставить под сомнение старые способы создания программного обеспечения, потому что будущее наступает быстрее, чем кто-либо из нас знает. Оно, вероятно, уже здесь, и самое приятное то, что мы можем построить его вместе. Спасибо. [музыка] [музыка] >> [музыка]