How We Solved Agent Building — Andrew Qu, Vercel
AAI Engineer
Computing/SoftwareSmall Business/StartupsInternet Technology
Transcript
00:00:00Всем привет, спасибо, что пришли. Я Эндрю, я директор по программному обеспечению в Vercel, и я здесь, чтобы
00:00:20поговорить с вами о том, как мы решили задачу создания агентов в Vercel. Я руковожу разработкой ПО, поэтому занимаюсь
00:00:26смесью внутренней разработки, внешних экспериментов и в целом нахождения на
00:00:30передовой, создания новых библиотек, фреймворков и технологий. Для тех из вас, кто не
00:00:36знает Vercel, Vercel создает инфраструктуру для агентов, чтобы люди могли создавать будущее. Мы начинали
00:00:42в веб-мире, помогая людям выпускать сайты и веб-приложения, не беспокоясь об
00:00:47инфраструктуре, которая никак не улучшает их приложение. Оно может масштабироваться до миллиона и до
00:00:50нуля без всяких усилий. Но мы видим изменения в том, что люди хотят создавать. Сначала люди
00:00:56создавали страницы, а теперь мы видим, что они хотят создавать агентов, и мы прошли через
00:01:01похожий путь, чтобы упростить создание агентов и агентских приложений. Мы создали
00:01:08вещь под названием AI SDK, так что вместо того, чтобы менять 300, 400 строк специфичного для провайдера кода,
00:01:13вы можете изменить одну строку кода, и у нас будет единый интерфейс модели для всех этих
00:01:19различных провайдеров. Мы создали множество других инструментов, чтобы упростить резервное копирование моделей, безопасное
00:01:25выполнение кода, более выгодные цены при неактивности и ожидании ответов, а также обеспечить надежность
00:01:30и возобновляемость. И я здесь, чтобы рассказать вам о том, как около года назад я пустился в этот безумный эксперимент, который привел к
00:01:38агентскому взрыву в Vercel и привел к созданию очень крутой вещи, которую мы недавно разработали.
00:01:46Около, это в 1980 году, Билл Гейтс, еще до моего рождения, произнес фразу о том, что он представляет себе компьютер
00:01:53на каждом столе и в каждом доме. Знаете, тогда это, наверное, казалось очень контрпродуктивным, а сегодня это кажется
00:01:59совершенно нормальным. И мы с CTO подумали: знаете, а что если вместо компьютера на каждом столе,
00:02:07мы потенциально сможем иметь агента на каждом столе? Знаете, сегодня мы используем агентов только для кодинга и технических
00:02:15задач, но мы начинаем видеть расширение в такие сферы, как дизайн, управление продуктами и другие
00:02:20вертикали. И это было примерно год назад, так что я бы сказал, что мы начали довольно рано. Но тогда это было вроде
00:02:27Sonnet 4, и технологии были не так развиты, как сегодня. И я попытался исследовать это, посмотреть, что мы можем
00:02:33с этим сделать. Я обошел различные отделы в Vercel: маркетинг, продажи, финансы, юридический. И спросил их: что вы больше всего
00:02:42ненавидите в своей работе? И самым убедительным вариантом использования оказалась команда работы с данными. Они росли, это была очень небольшая
00:02:50команда, но Vercel росла быстрее. У них было так много данных от клиентов, аналитики, метрик, продаж. Им приходилось постоянно их агрегировать и делать доступными для использования.
00:03:02И в то время, если подумать о том, что приходится делать специалистам по работе с данными, всякий раз, когда кто-то из маркетинга или продаж задает
00:03:11вопрос о клиенте или продукте, команда дата-саентистов должна бросить все свои дела, написать запрос, обработать его, провести анализ и вернуться с
00:03:19какими-то рекомендациями о том, что делать. И это сильно било по производительности. Команда аналитиков не хотела бросать все и писать запросы целыми днями. И поэтому я работал с нашим вице-президентом по данным, чтобы попытаться создать лучший способ.
00:03:31попытаться создать лучший способ работы для них. И если подумать о самом первом шаге, который вы бы сделали, если бы попытались использовать ИИ
00:03:40для решения проблемы, вы можете просто создать огромный мегапромпт. Знаете, у вас есть вопрос, вы передаете его в LLM, получаете ответ, и все. Честно говоря, так выглядела самая первая версия.
00:03:52Я попросил их выгрузить схему Snowflake. Вставил ее в системный промпт вместе с вопросом. А затем, когда генерировался SQL, я фактически
00:04:01копировал и вставлял его, а затем запускал сам. Я просто хотел проверить, достаточно ли хороши современные модели, чтобы писать валидный SQL при наличии приличной
00:04:09структуры. И я бы сказал, это дало нам немного уверенности в том, что современные модели не так уж хороши, но, возможно, мы сможем заняться инженерией промптов или улучшить контекст вокруг них и добавить защитных механизмов, чтобы они работали чуть лучше.
00:04:21И если вы действительно задумаетесь о том, что должен делать специалист по данным при получении вопроса, ему нужно обработать вопрос.
00:04:28Возможно, ему придется изучить семантический слой и фактически выяснить структуру связей. Затем они идут и выполняют SQL.
00:04:35Они могут вернуться и сделать это снова, если SQL не выполнился или оказался слишком дорогим. И в конечном итоге они подготовят отчет, включая визуализацию
00:04:42данных, возможно, напишут несколько абзацев, проведут ретроспективу или сделают что-то еще. И если подумать об этих разных этапах, мы с вице-президентом по данным
00:04:50попытались разбить их на конкретные рабочие процессы агента. И поэтому вторая версия этого агента по работе с данными
00:04:57под названием D0 (я буду называть его D0), работает так: вы задаете вопрос, у нас есть агент запросов, который передает запрос
00:05:05планирующему агенту, у которого затем появляется агент выполнения и так далее. И если вы объедините все это в цепочку, то получите
00:05:11нечто подобное, где у каждого агента есть свой специализированный системный промпт, нацеленный на его задачу, с инструментами, строго ограниченными этой функцией.
00:05:20Пример здесь: вы видите, что для первого агента планирования есть инструмент чтения сущностей YAML и поиска схем. И он будет использовать только эти
00:05:31возможности, пока не получит ответ для передачи агенту планирования, затем агенту SQL и далее для отчетности. И это становилось
00:05:38лучше. Мы избавились от необходимости копировать и вставлять SQL и возвращаться, чтобы составить
00:05:44отчет. Теперь он выполнял полный цикл от вопроса до ответа. Но мы начали натыкаться на преграды с этой
00:05:54архитектурой. И примерно в это время мы пришли к выводу, что на самом деле вам нужен один
00:06:01агент со всем мегаконтекстом внутри него, чтобы он сам управлял своей памятью. Это было как раз
00:06:07то время, когда мы поняли, что агенту нужно уметь оглядываться на то, что он сделал, рефлексировать и
00:06:13понимать шаги, которые привели его сюда. И в предыдущей модели вы могли заметить, что единственное, что получает
00:06:19следующий агент — это сводка и небольшой фрагмент предыдущего действия. Теперь же вы можете
00:06:25представить, что у вас есть один мегаагент, который внутренне управляет своим состоянием. Временами он планирует,
00:06:30временами строит, временами выполняет, а временами отчитывается. И выглядит это примерно вот так.
00:06:36Один большой вызов ИИ, возможно, с максимумом в 100 шагов, и вы даете ему возможность управлять своим
00:06:43состоянием в зависимости от того, где он находится в своем пути выполнения. И вы можете видеть, что это похоже на то,
00:06:48какие инструменты используются, форма похожа. Но самое лучшее здесь то, что если он сталкивался с ошибкой при выполнении или
00:06:54соединении, он мог вернуться и исследовать дальше, или почитать побольше и понять, что он делал не так.
00:07:00И к этому моменту он работал очень хорошо. Мы были вполне уверены в существующей системе и даже
00:07:06предоставили ее нескольким доверенным сотрудникам. Это был очень мощный инструмент, и мы не хотели давать его
00:07:11не тем людям или тем, кто работает с критически важными задачами. В общем, мы дали его нескольким людям, и немедленной
00:07:17реакцией было то, что он ужасен. Мы думали, что мы на высоте. Мы думали, что успешно проходим 30% наших тестов.
00:07:23Но мы не могли предвидеть некоторые из задаваемых вопросов. И тратить больше времени на
00:07:28ручное прописывание каждого из этих сценариев казалось не очень масштабируемым подходом.
00:07:33А затем появились Claude Code и Opus 4.5, точнее, вышел Opus 4.5, который в паре с Claude Code оказался невероятно мощным.
00:07:44Знаете, они открыли концепцию агента файловой системы. И мы со своей стороны подумали: вау, Claude Code и Opus 4.5 — это просто AGI по сравнению с тем, что у нас было раньше.
00:07:56Знаете, он отвечал на большинство наших вопросов без малейших заминок по сравнению с нашим самодельным агентом.
00:08:04И когда мы попытались сделать шаг назад и понять, что мы делали не так и почему это оказалось намного лучше, мы поняли, что главным прорывом было то, что это просто файловая система.
00:08:13У него был минимальный набор инструментов: список файлов, чтение файла, запуск bash, и мы добавили еще несколько для нашего собственного агента данных.
00:08:24Но самое главное — он мог использовать инструменты, на обучение работе с которыми агенты хорошо настроены, и мог исследовать и писать код там, где это необходимо.
00:08:32Мы не давали ему — Claude Code не предоставлял жестко регламентированный набор инструментов.
00:08:37Он просто позволял ему действовать свободно и исследовать эмерджентное поведение.
00:08:41И из этого мы вынесли урок, что действительно можно просто использовать файловую систему.
00:08:44Мы увидели опыт Claude Code и то, насколько он мощен благодаря тому, что просто выполняет код локально.
00:08:50И мы попытались пересобрать его в стиле Claude Code.
00:08:54Теперь он должен был запускаться в песочнице.
00:08:57В эту песочницу выгружался бы весь семантический слой.
00:09:00Агент мог бы использовать bash, чтение и запись файлов, чтобы выяснить все необходимое.
00:09:05А мы бы просто добавили сверху несколько инструментов, чтобы убедиться, что он может делать все специфичное для Vercel.
00:09:10И это действительно стало величайшим прорывом.
00:09:14Скачок от одиночного агента к SDK Claude Code, а затем от SDK Claude Code к агенту файловой системы в целом, доработанному или созданному специально под наши задачи, был потрясающим.
00:09:27К этому моменту мы начали готовиться к тому, чтобы дать доступ большим количеству людей в Vercel.
00:09:31И на этом этапе оценка тестов практически удвоилась.
00:09:36И я написал об этом — выглядит это примерно вот так.
00:09:39Это очень просто.
00:09:40Вы просто даете ему инструмент bash.
00:09:41У нас есть отличный вспомогательный инструмент bash на NPM.
00:09:44И вы подключаете его к песочнице.
00:09:45Вы можете прикреплять к песочнице файлы, чтобы он мог их читать, записывать и выполнять.
00:09:50И после этого озарения, и после того как я увидел, что мы успешно справляемся со множеством вопросов, которые раньше не получалось решить, я написал этот бомбический блог-пост.
00:09:59Он доступен и сейчас.
00:10:00И на той неделе, когда я его написал, на него пришлось 70% трафика Vercel.com.
00:10:05Так что вы понимаете, материал отличный.
00:10:07И после этого следующим логичным шагом было желание выяснить, с какими частыми сценариями использования мы сталкиваемся.
00:10:14К тому моменту мы уже предоставили к нему доступ всем сотрудникам Vercel.
00:10:18И мы получали тысячи запросов в день от людей, которым нужно было все: от метрик клиентов, метрик продаж, числовых метрик до загрузок NPM.
00:10:27И оказывается, что структура многих из этих запросов одинакова.
00:10:30Знаете, есть лишь определенное количество способов сделать агрегацию.
00:10:33Лишь столько-то способов найти продукт.
00:10:35Лишь столько-то способов получить информацию о выставлении счетов.
00:10:37И поэтому у нас задействована регулярная задача, которая берет самые свежие запросы и пытается скомпилировать их в навык.
00:10:43И прямо сейчас у нас есть около 100 навыков, которые выполняют самые разные задачи — от агрегации до поиска конкретных данных об определенных людях.
00:10:50И мы сочли это очень эффективным.
00:10:52Потому что каждый новый запуск агента, по сути, начинается с нуля.
00:10:56У него нет никакой предварительной истории, кроме семантического слоя и системного промпта.
00:11:01Но со спекой (навыком) работа сразу начинается с большим багажом контекстных знаний, которые уже были получены ранее.
00:11:09И вот примерно как это выглядит.
00:11:11Очень похоже на предыдущий вариант.
00:11:12Но добавление папки с навыками дает огромную силу.
00:11:15Мы также создали в Vercel инструмент под названием Skills SH.
00:11:18Это самый популярный способ находить навыки агентов и запускать их самостоятельно.
00:11:22И я говорю это всё к тому, что через этот путь рано или поздно пройдут многие из вас.
00:11:28Когда вы начинаете с чего-то простого, постепенно наращиваете сложность и в итоге приходите к системе, готовности для продакшена.
00:11:34И я рассказываю это потому, что на каждом этапе создания этого агента кто-то в Vercel интересовался темой агентов.
00:11:42Они пытались форкнуть моего агента D0 и создать что-то своё.
00:11:46И на каждом шаге у нас находился способ сделать что-то лучше, чем было известно до этого.
00:11:50И мы задумались: а что если сегодня люди смогут сразу стартовать с последним пониманием, а не начинать с простого промпта или изобретения велосипеда с нуля?
00:12:04Поэтому мы подумали: а что если создать Next.js для агентов?
00:12:09Для тех, кто не знает, Next.js — это популярный веб-фреймворк от Vercel, который принес концепцию инфраструктуры, определяемой файловой системой.
00:12:18Вам не нужно беспокоиться о том, куда что поместить.
00:12:20Достаточно просто писать файлы по правильным соглашениям.
00:12:23И оно автоматически определяет, куда они должны отправиться.
00:12:26Ваши страницы отправляются в CDN.
00:12:27Ваши бессерверные функции отправляются туда же.
00:12:29Кэширование настраивается посредине.
00:12:31И мы подумали, что создание агентов должно быть таким же простым.
00:12:34Вам нужно лишь создать папку навыков, папку инструментов, папку каналов.
00:12:38И иметь возможность очень легко их объявлять.
00:12:40А фреймворк должен точно знать, как собрать из этого агента.
00:12:44И именно поэтому две недели назад мы выпустили Eve.
00:12:47Eve — это фреймворк для агентов, похожий на Next.js для агентов, где очень легко перейти от простого шаблона к полностью готовому агенту, добавив собственные знания и инструменты,
00:12:59и даже интегрировать его в привычные для вас каналы связи.
00:13:03Вот примерно как, по нашему мнению, устроен агент.
00:13:06У агента есть рантайм и каналы.
00:13:09В этом рантайме вам потребуется долговечность.
00:13:11Вам захочется запускать всё в изолированной среде.
00:13:13Вам потребуется обращаться к разным моделям.
00:13:15И вам понадобятся коннекторы.
00:13:17Мы создавали это с расчетом на открытый исходный код.
00:13:19Мы создали Eve так, чтобы вы могли подключать собственные открытые адаптеры для Postgres, API ответов OpenAI, Docker и другие коннекторы.
00:13:29Но мы также сделали невероятно простым развертывание на Vercel.
00:13:31Единственное отличие здесь в том, что всё строится на продуктах Vercel, которые мы создавали годами, чтобы упростить разработку подобного опыта.
00:13:39Vercel workflows для долговечности, Sandbox для безопасного выполнения и Vercel Connect — инструмент, который мы только что выпустили для создания кратковременных токенов OADC.
00:13:51И пока мы разрабатывали Eve, мы переписали на него всего агента D0.
00:13:55И по сравнению со сложными закадровыми структурами, которых вы не видели в коде, файловая система выглядит примерно так.
00:14:01Всё очень просто.
00:14:02У вас есть набор системных инструкций, пара навыков, пара инструментов, и из этого легко собрать реального агента.
00:14:09И его очень легко дорабатывать и итерировать.
00:14:11Мы дали его нескольким бета-клиентам еще до того, как полностью представили его две недели назад на нашем мероприятии в Лондоне.
00:14:17И одна из компаний, которая тесно с нами сотрудничает, Aura, пересоздала своего агента, похожего на мини-краулер для тестирования чужих сервисов.
00:14:26Он заходит на сайты, устанавливает их и пытается ими пользоваться.
00:14:29И они добились невероятных успехов, создав собственного агента на базе Eve с нуля по сравнению с использованием готового облачного кода.
00:14:38Меньше шагов, выше успехи, а также лучшие инсайты.
00:14:42А когда вы разворачиваете Eve на Vercel, вы получаете наблюдаемость прямо «из коробки».
00:14:49Здесь видно, что вам доступны все запуски агентов, вызовы инструментов, каждый шаг, а также примерная стоимость и возможные оптимизации.
00:15:00И вы можете начать работу уже сегодня на Eve.dev.
00:15:02Вы можете просто клонировать его, запустить шаблон, легко развернуть или запустить локально, если нужно.
00:15:07И я завожу об этом речь потому, что надеюсь на появление всё большего числа бизнес-специфичных агентов.
00:15:14Знаете, перед созданием D-Zero мы испытали на практике множество хорошо финансируемых отраслевых стартапов, занимавшихся вертикальными агентами.
00:15:23Которые брали ваш экземпляр Snowflake и настраивали своих агентов на выполнение запросов к нему.
00:15:30Но мы поняли, что по-настоящему хорошим агента делает наличие специфических знаний компании.
00:15:38Например, поскольку Vercel — веб-компания, у нас много клиентов с сайтами и веб-ресурсами.
00:15:45Это гораздо глубже погружает в то, что и когда запрашивать и как связаны разные вещи.
00:15:51Поэтому готовые сторонние агенты прекрасны для пробы, но если вы действительно хотите выжать максимум,
00:15:58вам стоит попытаться создать собственного агента и добавить туда как можно больше знаний вашей компании.
00:16:03Сегодня в Vercel у нас работает около 20 приличных агентов с Product-Market Fit — от маркетинговых ретроспектив для поиска контактов,
00:16:14до первой проверки правок юристами при новых переговорах и моего агента по науке о данных, помогающего с запросами.
00:16:24И это показывает, что мы в Vercel очень активно используем агентов.
00:16:28Знаете, всё это действительно экономит нам кучу времени.
00:16:32Команда аналитиков данных еще никогда не была столь продуктивной.
00:16:34У них появилось больше времени на улучшение производительности Snowflake и добавление отсутствующих источников данных,
00:16:40на заполнение пробелов, на которые раньше не хватало времени из-за постоянного написания запросов.
00:16:46И я думаю, что вашей компании — большой, малой или средней — никогда еще не было проще автоматизировать то, чем вы не хотите заниматься
00:16:55или на что вы тратите слишком много времени.
00:16:58Знаете, я считаю, что HR, финансы и продажи можно частично автоматизировать с помощью агентов, и Eve — лучший способ создавать таких агентов сегодня.
00:17:09А это мои соцсети.
00:17:11Спасибо всем, кто пришел и послушал.
00:17:13Я Эндрю, и я буду неподалеку, если вы захотите пообщаться.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video