У вашим агентам не хватает контекста: вот как исправить фразу «Вы абсолютно правы!» — Брэндон Васельнюк, Unblocked
AAI Engineer
컴퓨터/소프트웨어AI/미래기술
스크립트
00:00:00Добрый день. Надеюсь, у всех прекрасный день здесь, на AIE. У нас отличная
00:00:17погода, хотя УФ-индекс был около девяти, так что надеюсь, вы нанесли крем от загара
00:00:20и ведете себя как взрослые. Я здесь, чтобы поговорить с вами о контекстной
00:00:24инженерии, и мне посчастливилось выступать после ЭйДжея из LinkedIn, потому что он
00:00:27много рассказывал о системе, которую мы действительно проектируем и продаем другим
00:00:29решениям, а я дам вам кучу инструментов с открытым исходным кодом, так что если вы смотрели
00:00:33тот прошлый доклад прямо перед моим, вы получите целый набор инструментальных цепочек, с которыми сможете
00:00:36повозиться сами, и сегодня я научу вас ряду приемов. Цель,
00:00:39конечно же, исправить… вы абсолютно правы. Кажется, это уже убрали
00:00:44из промптов, так что теперь там просто пишется «вы правы» или что-то еще, но я уверен,
00:00:47что вы все с этим сталкивались. Итак, я Брэндон, я работаю в Unblocked. Да, у меня есть кокос, мы раздавали
00:00:53их за свежий контекст, свежие свежие кокосы, но то, о чем я хочу
00:00:57вам рассказать, связано с этими моделями, особенно с моделями Anthropic,
00:01:01кажется, Claude 3.5 возвращается сегодня, так что можете посмотреть мою запись звонка в Green,
00:01:05попытаться это забронировать, мы это проигнорируем. Но я хочу, чтобы вы подумали
00:01:11о том факте, что с этими инструментами код, сгенерированный ИИ, должен ощущаться так, будто его
00:01:15написал человек, который работает в вашей команде уже много лет. Так что, чтобы настроиться на этот лад,
00:01:23нужно учесть, что контекстным движком до сих пор были вы сами. Как вы это делали?
00:01:27Вы выстраивали контекст, выходя на работу и задавая вопросы, отправляя пулл-реквесты и
00:01:34добиваясь их отклонения, посещая совещания — все это со временем постепенно строило
00:01:39тот движок, который называется вашим мозгом. Вы понимаете, как здесь все устроено, вы знаете, как код
00:01:42доставляется в продакшен, вы дежурили в ту ночь, когда уронили прод, и знаете, почему это произошло. Но
00:01:48проблема в том, что эти агенты сталкиваются с точно такой же трудностью: каждый раз, когда вы создаете
00:01:53новую сессию терминала с агентом внутри, он очень разумен, но у него
00:01:57нет никакого контекста о том, как функционирует ваша компания, поэтому ему нужно откуда-то его брать. Но
00:02:02проблема в том, что по мере масштабирования этих агентов эти издержки накапливаются, если ошибиться
00:02:07в самом начале. Эффект от контекста и контента… Мы просто это исправим,
00:02:13потому что, думаю, люди хотят сделать фото. Отлично. Эта проблема с контекстом будет
00:02:20накапливаться. Итак, в левой части мы все помним те давние времена двухлетней
00:02:25давности, когда у нас были модели автодополнения по табуляции, которые были довольно классными. Что происходило:
00:02:29она всплывала и говорила: «Эй, хочешь применить это по табуляции?», и вы быстро в уме,
00:02:32опираясь на контекст, думали: «Нет, это плохо». Либо вы говорили: «О, круто», и нажимали Tab. Отлично. По мере того как
00:02:37мы продвигаемся по кривой внедрения агентов, происходит то, что вы переходите
00:02:41к ситуациям, в которых агенты работают без участия человека в контуре, или по крайней мере
00:02:46вам бы хотелось не участвовать в этом контуре. Им нужен какой-то способ
00:02:50задавать необходимые вопросы, когда они заходят в тупик при написании кода или
00:02:54решении проблем, или в конечном счете выдавать код, который можно влить
00:02:58в вашу кодовую базу, особенно учитывая, что многие здесь работают с кодовыми базами
00:03:02категории brownfield, которые существуют уже давно и приносят реальную выручку,
00:03:06а не просто фановые проекты с нуля. Так что цена ошибки плохого контекста, накапливающаяся
00:03:12в начале, мала, если рассуждать в терминах сдвига влево: обнаружить дефект или баг
00:03:17хочется как можно раньше. С контекстом то же самое, потому что по мере продвижения
00:03:22вы попадаете в бесконечные циклы; вы обычно просите агента что-то сделать, он говорит:
00:03:26«Эй, я всё сделал», вы отвечаете: «Да нет же, мужик», и затем исправляете, исправляете и исправляете.
00:03:29Это впустую потраченные поисковые токены, а также потраченное впустую время на переделку, и это
00:03:34недопустимо с учетом грядущей токеномики. А когда вы переходите к параллельным
00:03:39агентам и т. д., вы начинаете сталкиваться с налогом на ревью: эти ИИ-ревьюеры кода,
00:03:43которыми мы пытаемся пользоваться… но опять же, здесь важен ключевой контекст, чтобы эти код-ревью
00:03:48могли в общих чертах понимать, как устроены бизнес-процессы, знали
00:03:52бизнес-логику и многое другое. И наконец, если ваша цель — полностью уйти
00:03:57из контура управления в стиле «фоновые агенты всё сделали, без ошибок», вам действительно необходимо
00:04:02убедиться в наличии контекстного движка, чтобы эти агенты могли делать к нему запросы и получать
00:04:05все необходимые ответы для эффективного продолжения работы.
00:04:08Существуют распространенные подходы, которые не работают, они представляют собой некий локальный максимум. Два из них,
00:04:16которые мы чаще всего наблюдаем у наших сотен корпоративных клиентов и среднего бизнеса, — это
00:04:21ловушка курируемого контекста: если вы когда-нибудь садились и брали виртуальную файловую систему или локальную файловую
00:04:26систему, складывали туда несколько markdown-файлов со словами «вот весь контекст этого проекта,
00:04:30вот как он работает», а затем разрешали агенту искать по ним grep'ом, он получает кучу хороших данных и работает лучше.
00:04:35Проблема в том, что, во-первых, теперь вам нужно это распространять — возможно, выложить на GitHub, чтобы команда могла это забрать, но во-вторых, этот репозиторий со временем устареет и протухнет, как и вся прочая документация, которую вы написали, и кто же в вашей организации тот всемогущий человек с безупречным вкусом, который будет вручную курировать этот файл или репозиторий абсолютно для всех в компании?
00:04:52И вы начинаете сталкиваться с этими проблемами. Следующее — плато MCP. Здесь все довольно очевидно: у нас есть MCP, они отличные, их можно дать агенту, и теперь он может получать информацию из другой внешней системы. Проблема, конечно, заключается в том, что в зависимости от того, как вы написали описание сервера и описание инструментов, ваш агент может никогда не вызвать его, хотя должен был, либо если вызовет, возникает известная предвзятость, называемая предвзятостью удовлетворенности поиском. Это значит, что когда агент находит
00:05:22первую попавшуюся информацию, которую считает верной, он думает: «О, у меня есть то, что нужно», и продолжает работу. При этом в большинстве организаций найдется вчерашнее обсуждение в Slack, где говорится, что нужно делать А вместо Б, но агент никогда этого не найдет, если сначала обнаружил какую-то архитектурную запись, то есть он фактически не учитывает весь контекст.
00:05:40Проблема здесь в том, что доступ к информации — это еще не понимание. Чтобы обеспечить модель пониманием, нужно применять другие методы. Я по сути пытаюсь сказать следующее: ваш агент не видит ничего из того, что находится ниже ватерлинии. Он на сто процентов может написать код, который компилируется, но этот компилирующийся код обрушит прод, и в час ночи у вас будет инцидент уровня P0, потому что он упустил из виду то, что у вас есть определенная процедура раскатки, нужно было отключить фиче-флаг или сделать что-то еще в таком духе.
00:06:10Поэтому вашей команде нужен контекстный движок, поскольку он должен понимать, кто вы и где вы работаете в организации. Если я говорю ему: «Я хочу настроить аутентификацию», он знает, где я работаю, знает мои коммиты в git, знает, кто проводит ревью этих коммитов, и понимает мой контекст; он может сфокусировать меня, а затем использовать это как отправную точку для поиска остальной информации.
00:06:33Он разрешает конфликты — как уже упоминалось, старая архитектурная схема и вчерашний разговор с CTO в Slack: что из этого верно? Для определения этого нужно использовать целый ряд приемов.
00:06:44Он соблюдает права доступа и правила управления, разумеется. MCP позволяет использовать OAuth и другие области видимости и SSO, но если кто-то задает вопрос здесь, не имея права знать о секретном проекте А, нужно сделать так, чтобы это не просочилось в ответ.
00:06:58И наконец, он доставляет модели нужный контекст в нужное время оптимизированным для токенов способом.
00:07:03У нас есть несколько точек взаимодействия, потому что инженеры-люди по-прежнему постоянно общаются с Unblocked, чтобы получать нужную информацию в Slack или где-то еще.
00:07:09Но в то же время вам нужны оптимизированные по токенам ответы, если вы общаетесь в режиме machine-to-machine, чтобы не тратить впустую массу контекстного окна на расходы токенов.
00:07:17Вот как работает движок. Я буду краток, но в целом с левой стороны вы видите все поступающие источники данных.
00:07:26Мы фокусируемся на инженерных командах, и именно они используют нас, наряду с технически легкими командами вокруг них, такими как поддержка, продажи и прочие.
00:07:34Вы поглощаете все эти данные, получаете данные в реальном времени из таких инструментов, как ваша цепочка управления инцидентами.
00:07:39Они поступают в движок, этот движок обрабатывает их внизу — я подробнее остановлюсь на этом слайде через минуту.
00:07:45Но в основном он использует эти шесть ключевых характеристик, а справа вы выдаете контекст для конкретного рабочего процесса в том виде, в каком он необходим.
00:07:53Эти шесть ключевых пунктов, как уже упоминалось: унифицированный системный контекст, вам нужно охватывать всю систему целиком.
00:08:01В крупных организациях, компаниях масштаба LinkedIn, Workday, General Motors и т. д., им нужны именно такие данные.
00:08:08Им нужно понимать все, что происходит.
00:08:10И Тарик сегодня утром как раз говорил о том, что Fable, возможно, выйдет ближе к концу сегодняшнего дня.
00:08:15Он упомянул, что нужно фактически предоставить карту, а затем позволить Fable исследовать территорию.
00:08:21Способ сузить рамки этого поиска — убедиться, что эти модели имеют доступ ко всему контексту, потому что они найдут ваши неизвестные неизвестные.
00:08:29В вашей компании определенно происходит то, о чем вы просто не подозреваете, но что было бы очень полезно для вашей задачи.
00:08:35Это позволит двигаться быстрее.
00:08:37Но целевое извлечение: если вы даете ссылку, нужно уметь быстро развернуть ее, вернуть этот документ и двигаться дальше.
00:08:43Так что есть две задачи: глубокое исследование, идти надолго — это нормально.
00:08:46Но вам также нужна скорость, когда требуется скорость.
00:08:49Разрешение конфликтов — мы уже об этом говорили.
00:08:51Но одна вещь говорит «делай А», другая «делай Б», кто прав.
00:08:55Персонализированная релевантность: кто я, где я работаю, над чем я работаю.
00:08:59Затем оптимизация токенов: убедиться, что ответ хорош и эффективен и не раздувает окно.
00:09:04И наконец, обеспечение соблюдения прав доступа: разумеется, OAuth — тебе не положено это видеть, ты это и не увидишь.
00:09:10В ходе некоторых тестов мы запустили абсолютно один и тот же промпт для одной и той же модели: один с контекстом, а другой без.
00:09:17Вот экономия времени по настенным часам — целых два часа, что отлично.
00:09:21А затем экономия токенов.
00:09:23Так что задача была масштабной.
00:09:25Без контекста ушло около 21 миллиона токенов, а с ним — 18, простите, 10,8 миллиона токенов.
00:09:31Это именно тот тип результатов, который вы обычно видите при использовании контекстного движка, поскольку большинство тех потраченных впустую поисковых токенов, когда модели приходится искать через grep в начале каждой сессии, чтобы понять и обнаружить вещи, исчезают, когда она подпитывается контекстом.
00:09:45Подпитывается.
00:09:47И по мере продвижения вперед вы получаете вот такие результаты.
00:09:50На 50% меньше токенов, более быстрая триаж-обработка, а качество ответов на самом деле лучше, потому что модель знала, что происходит внутри бизнеса.
00:09:57Теперь для следующей части вам, наверное, захочется сделать фото.
00:10:01Если вы не знали, можно сфотографировать QR-код, а затем позже в приложении «Фото» нажать на него и перейти по ссылке, так что вам не обязательно толпиться здесь, потому что я покажу три QR-кода.
00:10:09Этот первый — для социальной сети комментариев.
00:10:12Я выведу его на экран, чтобы вы могли сфотографировать.
00:10:14Но это инструмент с открытым исходным кодом, который с помощью исключительно детерминированного программирования сканирует ваш GitHub и понимает, кто работает в вашей команде.
00:10:22Это моя реальная команда.
00:10:23Мы прозвали Рашина «машиной», потому что он коммитит как безумный.
00:10:26Но справа вы можете увидеть, что он коммитит, где коммитит и кто проверяет его работу.
00:10:30А затем в этих вкладках вы найдете граф выделенных экспертов.
00:10:33Вы получаете полное представление о том, что происходит в вашем бизнесе.
00:10:35И если вы опционально добавите один из API-ключей OpenAI или Anthropic, инструмент определит роли ваших команд, выполнив разметку.
00:10:44Это отличный инструмент, чтобы понять, где работает ваша команда, и задействовать эту социальную сеть для настройки контекстного движка, если вы создаете такие инструменты сами.
00:10:52Следующий называется агентом правил репозитория.
00:10:55Это пример из нашей реальной кодовой базы.
00:10:57Я все равно выведу его на экран, так что вам не нужно вникать в детали.
00:11:00Но если кратко, он находит все места, где ваша команда создавала файлы правил, проверяет их и показывает, какие уровни важности вы установили и прочие параметры.
00:11:11Мне просто переключиться на это?
00:11:13Он подсказывает — о, привет.
00:11:15Рад со всеми вами познакомиться.
00:11:17По сути, он находит все правила внутри вашего репозитория и сообщает, есть ли у вас дублирующиеся проблемы или другие неполадки.
00:11:24А затем вы можете использовать это как поисковый индекс.
00:11:26Этот индекс можно задействовать для дедупликации, и это поможет улучшить извлечение контекста.
00:11:32И наконец, в понедельник мы провели воркшоп о том, что выходит за рамки RAG, и показали, как создать реляционный контекстный движок с нуля.
00:11:40Так что, если вы отсканируете его, то получите полное руководство.
00:11:43В нем шесть связанных PR, которые учат пошагово выполнять эту работу.
00:11:46Но если кратко, RAG — невероятная методика, и она вам нужна.
00:11:49Но вторая половина проблемы заключается в том, о чем люди обычно спрашивают:
00:11:53какие открытые PR с аутентификацией я делал на прошлой неделе?
00:11:57RAG не может ответить на этот вопрос в одиночку.
00:12:00Вам нужны запросы.
00:12:01Поэтому здесь показано, как выполнять практически бессхемный поиск, позволяющий агенту обнаружить схему,
00:12:08а затем формировать к ней детерминированные запросы для извлечения таких реляционных данных.
00:12:13Очень полезный метод.
00:12:15Варианты применения контекстного движка, разумеется, выходят за рамки генерации кода.
00:12:21Именно с этим мы в основном и работаем.
00:12:22Там же проводит время множество наших клиентов.
00:12:24Но поразительно видеть, что происходит, когда эти инструменты начинают использовать и другие сотрудники компании.
00:12:30Специалисты по успеху клиентов решают тикеты прямо в момент их поступления от клиентов.
00:12:35Наши продавцы закрывают сделки раньше в текущем квартале, потому что могут на лету запрашивать контекстный движок Unblocked прямо в полях.
00:12:44И это далеко не все.
00:12:45Вы также можете — если помните ту график-кривую уровней, о которой я говорил ранее —
00:12:51мы создали забавный небольшой инструмент, где LLM фактически проводит для вас квиз, расспрашивая о текущих делах,
00:12:55а затем определяет ваше точное положение и подсказывает методики перехода на следующий уровень,
00:13:01если вы хотите улучшить свои навыки и масштабно использовать ИИ-инструменты для разработки.
00:13:07Это readiness.getunblocked.com.
00:13:11Проблема больше не в уровне интеллекта.
00:13:13Проблема в контексте.
00:13:14У нас и дальше будут появляться невероятные модели, такие как Mythos, созданная Anthropic,
00:13:19и я уверен, что Sol я тоже получу, как только мне разрешат на нее взглянуть.
00:13:22Кстати, с Днем Канады.
00:13:24Но суть в том, каким контекстом вы окружаете эти модели, чтобы они работали эффективно
00:13:30и экономно расходовали токены внутри вашей организации.
00:13:35У меня есть слайд с вопросами, но я не уверен, что мне разрешено его показывать.
00:13:40Нет.
00:13:41Поэтому приходите ко мне на стенд P16.
00:13:44Ищите кокос.
00:13:46Буду рад пообщаться со всеми вами и обсудить детали, если это необходимо.
00:13:49Спасибо за уделенное время.
00:14:00Спасибо.
커뮤니티 글
아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!
이 영상에 대해 글쓰기