Transcription
То, что я смотрю, это программный конвейер без людей. Запрос агентам коммунистических карточек на анализ кода, тестирование и перемещение их в продакшн. Прямо сейчас работа течет по этой доске. Запуски выполняются, и никто не прикасается к клавиатуре. Этот код не писал человек. Агенты. Но интересно не то, что агент может писать код. Вы знаете, что именно все вокруг этого двора заставляет вас сказать: "Привет, добро пожаловать. Меня зовут Дэнни, и то, что вы только что видели, — это настоящий программный конвейер без людей". Да. Агенты, агенты в реальном мире с продакшном и живым подъемом, который они построили, без цыпочки, и этот разговор о том, как это построено. Это называется непрерывное агентирование развертывания, и к тому времени у вас будет план. Вот и все. Краткое слово о том, кто говорит. Я главный инженер, и в течение многих лет, прежде чем я руководил доставкой как процессом и менеджером по персоналу, я долго, долго размышлял о том, как работа течет через команду. Теперь я думаю о том, как она течет через команду агентов, и оказывается, что это проблема CI/CD, а не проблема промптинга. Вот утверждение на следующие 40 минут или меньше: заставить модель генерировать код — это не 10%, а 90% — часть, которая определяет, можете ли вы сделать это в реальном рабочем процессе, — это структурированная валидация, контроль, четкие точки, где человек остается главным. Это та часть, которую никто не испортил, так что та часть, которую я собираюсь показать вам, — это фреймворк, который мы можем клонировать. Позвольте мне увидеть, как один из них называет чудо, организует все это: непрерывная интеграция, непрерывная доставка, когда доставка производится агентами, ID — непрерывное агентирование развертывания. И для каждого этапа конвейера я задаю одни и те же два вопроса. Третий вопрос: чем становится этот этап, когда его выполняет агент, и Сара, и какой новый способ отказа они вводят, потому что каждая новая возможность приходит с новым режимом отказа, а фреймворк в основном посвящен второму. Отлично. Вот весь конвейер на одном экране. И поскольку у нас есть часть YDML, позвольте мне взглянуть на то, что происходит в нашем конвейере. Да, он работает. Я хочу добавить в него еще несколько функций. А затем я объясню, что я только что сделал. Да, вот вы. Вот весь конвейер на экране. Восемь станций, мы называем их силосами в Канбане, в подходе Канбан. Um, каждая единица работы, один запрос, течет слева направо. Да. Слева. Итак, у нас есть следующие силосы: студия, готово, человеческий обзор, развертывание и темный, и позвольте мне пройтись, потому что каждый позже покажет нам через эту карту, чтобы сделать, сделать и готово — это просто колонки, бэклог и точка обязательства. Итак, бэклог, а готово — это точка обязательства. А означает системный анализ, P — это развертывание, анализ агента. Он читает одну строку запроса. Позвольте мне показать вам одну, одну, одну строку запроса. Вот так, например, быстрая функция, самая быстрая функция для светового шоу, называющая самую быструю функцию доставки в цикле. Так что вы можете видеть, что это выглядит как одиночный, одиночный человек, как запрос, а не пользовательская история, с которой вы, возможно, знакомы в Scrum, как роль. Я хочу увидеть что-то, потому что у меня есть для, потому что я пойду за следующей ценностью, так что это просто однострочные требования. Да. Вы видите, позвольте мне переключиться на мою презентацию. Вот оно. Итак, агент SAP читает один запрос, пишет файлы спецификаций, чтобы соответствовать критериям приемки, и есть координационный тест-агент, очевидно, и человеческий обзор — это человек, это я, а развертывание, слияние и отправка — это то, что вживую. Теперь самое важное различие, весь этот разговор, посмотрите на цвета, посмотрите на цвета, некоторые станции, агенты, модель принимает решения, один — человек, а развертывание — детерминированный, простой код, без модели. Я вернусь к тому, почему это важно, почему это имеет значение, немного позже, и еще одна граница, нарисованная с помощью панели мониторинга, все нарисовано с помощью панелей мониторинга, все внутри — это фреймворк, движок, а приложение — это построение наблюдаемой панели мониторинга под названием CD Console, которая визуализирует, где находится этот самый класс, коробка вне коробки, но это разделение — разница между фреймворком и умным, и я буду защищать его до конца. CD — это движок, консоль — это просто то, что он строит сегодня. Да. Позвольте мне вернуться к доске проекта "сделать". Если один из тестовых элементов готов, и я ожидаю скоро провести обзор, я хотел бы добавить в этот конвейер еще несколько, еще несколько рабочих элементов. Но давайте продолжим с презентациями, потому что это важно сейчас. Как, как это работает точно. Что я сделал, чтобы добавить все это? Почти ничего. Нет стартового сервиса, нет темпа, нет LL-базы данных. Так что GitHub — это среда выполнения. GitHub Project — это машина состояний. Доска, колонки доски — это состояния, а перемещение карточки — это переход. Действия — это среда выполнения агента. Каждый агент — виртуальный. Мы увидим это позже с секретами и логами. Так что вы уже доверяете и комментируете проблемы — это шина контекста. Каждая станция выводит результат как комментарий, следующая станция читает эту ветку комментариев, которая также является вашим аудиторским следом. Так что позвольте мне показать вам фактический файл, потому что это немного реально. Мне нужно переключить браузер на курсор. Так что я хотел бы показать вам диспетчер. Вот он. Это диспетчер. Ядро, сердце фреймворка. Он решает, что делать дальше. Пул. Есть и другие переходы. Да, вы увидите это позже и сами изучите. Um, на каждом, он смотрит на доску, станция с ограничением рабочей нагрузки, ограничение, ограничение, и для любого слота он отправляет охранника, который запускает свежий вид для одного, который запускается, это агент, который выполняется в браузере, начиная с действия. Так что каждый агент — это рабочий процесс, один — фактический запуск. Так что вы можете видеть, что этот агент, диспетчер, который довольно часто диспетчер, диспетчер, агент, который просто останавливается, мы начинаем работать. Да, мы изучим это позже, что там происходит. Наш конвейер работает. Но важно то, что вы можете видеть здесь, агент SABA имеет ссылку, равную не более двум рабочим элементам, которые могут быть размещены здесь, и агент BA не может вытягивать работу слева, из готового к работе, потому что у него нет мощности. Почему у него нет мощности? Потому что ничего еще никто не вытянул карточки от него справа. Так почему? Потому что агент смерти и этот силос имеют ограничение WIP или могут его производить, потому что один, так что здесь может быть только одна карточка. Да. Как только это будет сделано, тестовые агенты, чья мощность или рабочая нагрузка, которая идет сюда, равна, вытягивает карточку слева, освобождая меч и видение одновременно. вытягивает новую карточку из M, обработанную карточку из силоса слева, потому что у него теперь есть мощность, и агент SB в это время вытягивает слева, потому что агент просто вытягивает из него. Так что этот конвейер работает как пул-система. Я могу сослаться на подход Канбан, в то время как система P здесь, но мы должны продолжить с этим там, потому что это довольно важно. Позвольте мне посмотреть. Да, мощность, мощность по требованию. Мощность по требованию. Нет пула простаивающих агентов, ожидающих. Ошибка, станция приветствуется, когда, когда есть работа и свободный слот, и она уходит, когда она сделана, ничего не стоит, да. В какой модели используется каждая станция? Нет никакой планки, это не доска. Позвольте мне показать. Я хочу включить настройки. Да, секреты действий и переменные прямо здесь. Так что вы можете видеть здесь модель, определение модели, модель разработки, модель исправления, которая используется агентом AIX. Я сказал, я сказал, я сказал вам об этом немного позже. Модель разрешения конфликтов слияния и некоторые другие резольверы конфликтов, которые используются August 4.8. Модель SABA, самая интересная, которую мы видели вживую. Модель SABA использует 4.6. Модель тестирования использует 4.6. Шесть самых дорогих — это проблемы разработки и ошибок, решаемые. Также мы видим здесь ограничения WIP. Разработка — это конфигурация, один на два, тестирование — два, как и раньше. Так что вы можете настроить это самостоятельно. Да. Измените переменную Varel, и экономика Ланса изменится. Так что нет никакого кода, прикрепленного и решения, сидящего на стороне плана. Да. Агенты, агенты, агенты, агенты — это действия, которые выполняются на раннерах GitHub, и они оставляют все агенты, оставляют аудиторские следы. Давайте посмотрим на аудиторские следы. Скажем, у нас есть человеческий обзор, который мы рассмотрим немного позже, в счетчике загрузки, скажем так. Итак, есть детали для анализа SAB, затронутые файлы, вы можете видеть, что это то, что агент подходит к решению о критериях приемки, что должно быть сделано. Это инструкции для агента разработки и для тестовых агентов, а также зависимости тестового агента HK, возможные узлы, три узла, так что есть реализация, где агент разработки работал в отчете о тестировании, конечно, у нас есть некоторые проблемы в обзоре. Я рассмотрю позже. Но то, что я хочу сделать, это одобрить некоторые карточки слепо. Но мне нужно запустить развертывание. Самое главное, мне нужен весь этот конвейер, чтобы я получил решения, я получаю решения. Скажем, я получаю их прямо сейчас. И позвольте мне сохранить агент развертывания. Я иду в действия. Давайте проверим, видите ли вы это. Видно. Я хочу взять агент развертывания и хочу запустить рабочий процесс. Что такое запуск агента развертывания? Запуск. Позвольте мне еще раз. Um, так что агент находится в процессе. Да. Мы просто проверяем карточки, или мы просто проверяем карточки. Позвольте мне посмотреть, поскольку это вживую. Да. Давайте поговорим о станциях. Станция контакты. Да. Теперь специализированные агенты, агент, который делает все, потому что роли дают вам контроль, разную модель для каждого этапа. Разный промпт, который вы можете настроить и версионировать, отдельное ограничение WIP, конечно, и когда что-то ломается, вы можете видеть, какая станция сломалась. Один мега-агент — это черный ящик с одним сборкой, и вот часть, которая вызвала провокацию, не скрипт. Каждый станция в той же форме, это та же форма, пять частей. Позвольте мне увидеть, пять частей. Я голосую за точку помощника в моторе и колонке доски. Диспетчер не знает и не заботится о том, что делает станция. Он просто запускает форму и поведение. То, что агент фактически делает, находится здесь, а затем в файле markdown. И позвольте мне снова переключиться на кашу. Я только что нашел его. Так что есть агент SAB, и то, что мы можем видеть здесь, вы — агент анализа, вы — системный аналитик, бизнес-аналитик для команды разработчиков программного обеспечения. Ваша работа — анализировать и направлять команду на запрос, сообщать и производить структурированный анализ, который разработчик, который также является агентом AR, может следовать для реализации решения. Опишите детерминированный процесс, который приводит к результату, который может быть прочитан, прочитан ваш общий проект, исследуйте кодовую базу, определите объем, рассмотрите крайние случаи, напишите анализ. Вы уже видели все части в аудиторском следе в комментариях, произведите ваш анализ в этой выдержке в формате markdown, эффект, первый подход и так далее. Итак, вы видели это. Я показал вам это немного раньше. И теперь позвольте мне, позвольте мне теперь вернуться к мы будем сканировать, что происходит. Нет, я просто хочу наполнить свой конвейер одной функцией, смотрящей. Да, давайте продолжим с презентациями. Поведение — это файл конфигурации, файл промпта, и у нас их три. И поскольку каждая станция, каждая станция имеет одинаковую форму, линия расширена. Скажем, я хотел новый этап, обзор безопасности, обзор безопасности или я не знаю, другие обзоры, и сидеть между тестированием и человеческим обзором. Я не собираюсь его строить. Но вот все, что нужно. Промпт, который проверяет часы из существующей станции, потому что форма идентична. Если мы работаем, используя колонку на доске для вещей, и новая книга существует, единственная часть сантехники — одна в диспетчемере. Да. Давайте посмотрим на диспетчер снова. Позвольте мне показать вам диспетчер. Извините. Так что позвольте мне показать вам диспетчер снова. Позвольте мне показать вам диспетчер, диспетчер и его часть диспетчера, диспетчер — это диспетчер. Так что вы должны подключить его в диспетчере, но это одна, одна дыра, я не могу спрятаться. Да, это довольно просто. Вы видите? Так что вы можете скачать и посмотреть позже. И давайте вернемся к станции. Так что вы знаете, как сделать станцию. Это вся суть. Нет изменений в существующих станциях. Вы не меняете ни одну существующую станцию. Вы добавляете V в линию, описывая ее, копируя рабочий процесс, копируя рабочий процесс, вставляя его на фабрику, что является инверсией контроля. Это то, что делает это свободным от скриптов. Да. Позвольте мне продолжить. Что ваша другая ответственность? Какая самая надежная часть этого? Агенты не получают вещи неправильно. Так как же построить что-то надежное из ненадежной части? Тот же механизм, который у нас есть. Во-первых, спецификация живет в тесте. Так что этот агент AB попытался установить критерии. Тестовый агент превратил их в щит, и код движется вперед только в том случае, если он проходит. Не выглядит ли он правильно? Соответствует ли он спецификации? Да. Давайте покажем. Позвольте мне показать вам тестового агента. Так что вы можете видеть, как работает тестовый агент. Нас больше всего интересуют, больше всего интересуют бронзовые. Бронзовые. Да. Вот тестовые стили, используйте описательные имена. Тесты не тестируют реализацию деталей. Тесты не имитируют, не пишут. Если тест требует конкретных тестовых данных, данные, созданные в тестовой настройке, не полагаются на существующие. Запустите полный тест перед завершением. Просто новый тест, и это был, это был промпт, и то, что вы получили, да. Так что мы можем, как вы видите. Да, как вы видите. Позвольте мне показать больше. Позвольте мне изменить размер для вас. Так что вы можете видеть больше. Отлично. Думаю, вы можете видеть больше. Теперь есть некоторые самоисправления. Так что скрипт не пойдет дальше. Карточка не пойдет дальше, пока не будут удовлетворены требования. Так что каждый тестовый агент имеет три попытки. Мы можем увидеть это немного позже. Позвольте мне показать. Да, ограниченное самоисправление, что это было. Но когда тест не проходит, линия не паникует, и она не просит меня исправить, отозвать карточку на месте и повторно запустить набор до трех раз. Три, не бесконечность, потому что бесконечность — это просто уязвимая ловушка и застрявшая проблема. После трех жизнь останавливается и передается мне. Есть изоляция. Каждая карточка работает в своей ветке. Агенты, проблемы агентов, агент наивен, агент может остановить друг друга, потому что они никогда не делят конфликты копирования, если они возникают позже, и один контроль, место слияния, и я покажу, что происходит там в момент. Позвольте мне посмотреть. Позвольте мне проверить экран. Да, вот мы. И давайте проверим, что происходит с, скажем, здесь. Да, я открыл. Так что вы можете видеть запрос на добавление вида колонки B в реальном времени. Запрос на запрос. Нет, это не запрос на запрос. Запросы на запросы там. Давайте проверим свежесть снимка, чтобы вы могли видеть там, основной агент фронта — 174. Так что каждый агент работает в своей ветке. Так что давайте продолжим. Давайте перейдем к развертыванию. Так что давайте проверим, что сейчас на продакшн-сайте. Да, есть некоторые продакшн-функции для реальных чисел. Цикл был довольно долгим для буферных отправленных элементов, и он стал больше для элементов, застрявших в человеческом обзоре, потому что они, время ожидания теперь прямо сейчас, потому что я говорю, и они сидят здесь. Да, давайте перейдем к концу. Два честных вещи, которые я носил, вы заняли последний шаг, запуск, запуск обоих вещей, вы уже заметили, что узлы GAP разработаны, когда слово продолжает развертывание, эта проблема не автоматизирована, экземпляр F одобрен, это человеческий запуск, я нажимаю бар, и это преднамеренно, абстракция для этого остановки, обещания, клип один, так что человек остается под контролем, и это та точка, которую я могу запустить. Он полностью продолжается с одним триггером, и вы показываете, я показываю вам, где, но я выбираю держать руку на нем. Правда. Само развертывание не содержит агента. Никакая модель не запускается в продакшене. Агент развертывает анализ и анализирует код, тестирует конфликт. Но релиз — это простой детерминированный код, слияние, сборка, развертывание и версия в дымовом тесте. Я не покажу вам агент развертывания. Да, есть агент развертывания. Так что нет никакого вызова LLM. Это просто детерминированный скрипт. Да, вы можете видеть это. Агент развертывания — это просто детерминированный, когда вы хотите, а затем делает одно утверждение: виртуальная жизнь по URL должна вызывать точный комментарий, который он только что построил. API здоровья до тех пор, пока это правда, а затем это плагин. Что насчет наблюдаемости? Есть наблюдаемость. Вы можете управлять тем, что вы можете видеть. Так что для подписания инструмента с самого начала, B сам по себе является уровнем наблюдаемости, поскольку вы можете понять, что порт сам по себе является уровнем наблюдаемости. Вы можете наблюдать за каждой попыткой агента, за логами, которые он потратил на один скрипт, сводит это в числа, которые действительно имеют значение, и позвольте мне запустить этот скрипт прямо здесь, в курсе. Агент запускает лог. Да, пока мы ждем, я просто хочу. Я просто хочу запустить. Нет, я ничего не хочу запускать. Мы должны подождать, и у нас будут числа в этом файле. Да, немного позже. Это работает. Позвольте мне вернуться. Да, вот мы. И, э, отлично. Пока мы ждем сбора данных, позвольте мне повернуть самую, возможно, самую важную часть, где это терпит неудачу, и потому что он печатает, что показывает только внешний мир, и я не спекулирую, все произошло во время сборки, которую я смотрел, и проблема номер один — неоднозначный запрос, заставляет агента работать усердно, и он задается вопросом, резервный вариант — это резервный вариант. Анализ, форма гита, спецификация становится контрактом, все остальное проверяется против, нет спецификации, нет хорошего результата. Следующая проблема: две функции касаются одного и того же файла, две из них могут как панель мониторинга, так и конфликт слияния и изоляция развертывания скрывали это до слияния, а затем резольвер агентской базы исправляет это и случайное развертывание. Конфликт стал шагом, а не кризисом. Шаг, этап, остановка, использование. Иногда элементы просто остаются в столбце и файлы журналов, и повторно отправляют ту же ветку, и ничего не теряется. Ничего не отправляется сломанным. Остановка линий сама по себе — это функция, и честная граница. Агенты превосходны, маленькие, хорошо масштабированные тесты, большие изменения. Они борются с неоднозначными спецификациями и большими перекрестными факторами. Реальное узкое место никогда не было моделью. Это хорошие проблемы с кодовой базой с функциями, редактирование, редактирование. Так что агенты не сталкиваются. Я думаю, что в большей модели действительно то, что вам нужно. Да. Это причина, по которой фреймворк аккордеон один, диспетчер владеет циклом, он вызывает вашу станцию, а не наоборот. Это версия контроля. Два, каждая станция находится в том же контракте. Да. И три, поведение — это внешняя библиотека промптов для доски — это машина состояний. Пять, сборка лаборатории в соответствии с соглашениями, яркий тест, и это, это искра, которую я просто отложил. Шесть моделей и лимиты — это конфигурация, а не один на этом G. Так что вы слышите это от меня первым. Сегодня движок отправил несколько таких. Кей — это агент. CD — это агент. CD-контроль — это пример сборки. Полное их разделение — следующий шаг, и эта работа находится в отчете. Так что, я думаю, это все. Продолжение предложенного развертывания CC с агентами в L. Да. И если вы хотите получить ключ, все это с открытым исходным кодом, и ссылки на экране, а приложение работает прямо сейчас. Спасибо 42, и спасибо за просмотр, и я Деннис, и идите строить фабрику. Да.