Новейшая разработка OpenAI, ИИ-агент Codex, представляет собой новаторский подход к кодированию – среду "vibe-coding", основанную на интерфейсе, подобном ChatGPT. Хотя эта концепция поначалу может показаться пустой тратой времени, возможности нового агента Codex поистине впечатляют.
OpenAI обозначила Codex как предварительную версию для исследований, что указывает на то, что он все еще находится в активной разработке. В настоящее время он доступен для подписчиков ChatGPT Pro, Enterprise и Team, и в ближайшем будущем планируется расширить доступность для пользователей Plus и Edu.
Согласно заявлению OpenAI, название Codex связано с развивающимся инструментом кодирования с 2021 года. В данном обсуждении "Codex" относится к недавно анонсированной версии.
Codex размещается на серверах OpenAI и интегрируется с репозиториями GitHub. Демонстрации показывают, что Codex функционирует как дополнительный программист в команде.
Ему можно поручить исправить ряд ошибок и выполнить задачу соответствующим образом. Он также запрашивает одобрение на изменение кода, хотя, похоже, способен автономно изменять код.
Codex может анализировать и модифицировать код, выявлять конкретные проблемы, определять области для улучшения и выполнять другие задачи по кодированию и обслуживанию. Каждая задача инициирует новую виртуальную среду, позволяя ИИ справляться со всем: от концепции и проектирования до модульного тестирования.
Сдвиг парадигмы в кодировании
Это означает подлинный сдвиг в парадигме кодирования. Ранее помощь ИИ в кодировании в основном включала функции автозаполнения, автоматически генерирующие строки или блоки кода на основе существующего кода.
Технология продвинулась до такой степени, что ИИ может писать или отлаживать небольшие сегменты кода. Это тот аспект, который меня особенно интересовал в отношении тестов программирования ZDNET.
Еще одна роль ИИ – анализ всей системы. Недавно я исследовал новый инструмент Deep Research, который может деконструировать все базы кода и предоставлять обзоры кода и рекомендации.
Codex теперь достигает точки, когда целые задачи программирования можно доверить ИИ в облаке, подобно делегированию задач другим программистам в команде или младшим программистам, изучающим сопровождение кода.
OpenAI описывает это как "разработку программного обеспечения, изначально предназначенную для агентов, где ИИ не только помогает вам в работе, но и выполняет работу самостоятельно".
В демонстрационном видео было показано, как Codex может управлять несколькими задачами одновременно, каждая из которых работает в отдельной изолированной виртуальной среде.
Программисты назначали задачи агенту, который затем выполнял работу независимо. По завершении агент предоставлял результаты тестов и предлагал изменения кода.
В демонстрации Codex выполнял исправление ошибок, сканирование на предмет опечаток, предлагал варианты задач и выполнял общепроектный рефакторинг (изменение кода для улучшения структуры без изменения поведения).
Опытным разработчикам и проектировщикам знакомо описание требований и проверка чужой работы. Использование Codex не приведет к значительным изменениям для них. Однако разработчикам, которым не хватает сильных навыков формулирования требований и проверки, управление Codex может показаться немного сложным.
Несмотря на это, если инструмент работает так, как было продемонстрировано, Codex позволит небольшим командам и отдельным разработчикам достигать большего, сокращать количество повторяющихся задач и более эффективно реагировать на сообщения о проблемах.
Возможные недостатки и стратегии смягчения
Первые эксперименты с возможностями кодирования ChatGPT выявили тенденцию к потере концентрации или отклонению от намеченного направления. Хотя это не является катастрофическим для отдельных блоков кода, это может привести к непреднамеренным и проблемным последствиям, если агенту кодирования разрешено работать с ограниченным надзором.
Чтобы решить эту проблему, OpenAI обучила Codex придерживаться инструкций, изложенных в файле AGENTS.md. Этот файл, расположенный в репозитории, позволяет программистам и командам управлять поведением Codex. Он может включать инструкции по соглашениям об именах, правилам форматирования и любым другим логичным рекомендациям, желательным на протяжении всего процесса кодирования. По сути, он расширяет настройки персонализации ChatGPT до командной среды, ориентированной на репозиторий.
Кроме того, OpenAI представила версию Codex под названием Codex CLI, которая запускается локально на машине разработчика. В отличие от облачного Codex, который работает асинхронно и предоставляет отчеты по завершении, локальная версия работает через командную строку программиста и функционирует синхронно.
По сути, программист вводит инструкцию и ждет, пока процесс Codex CLI вернет результат. Это позволяет программистам работать в автономном режиме, используя локальный контекст своей активной машины разработки.
Исследовательский прототип с многообещающим потенциалом
Демонстрация была впечатляющей, но разработчики подчеркнули, что то, что они показывали и выпускали, является исследовательским прототипом. Хотя он предлагает то, что они назвали "волшебными моментами", он все еще требует значительной разработки.
Я пытаюсь понять конкретные последствия этой технологии для будущего разработки и моего собственного процесса разработки. Моим основным продуктом является плагин WordPress с открытым исходным кодом, с проприетарными дополнительными плагинами. Codex потенциально может анализировать общедоступный репозиторий базового плагина с открытым исходным кодом.
Однако сможет ли Codex управлять связью между общедоступным репозиторием и несколькими частными репозиториями в рамках одного общего проекта? И как он будет работать, когда тестирование включает в себя не только мой код, но и запуск целой дополнительной экосистемы – WordPress – для оценки производительности?
Как соло-программист, я осознаю потенциальные преимущества такого инструмента, как Codex. Даже профессиональная подписка за 200 долларов в месяц может быть стоящей. Наем штатного программиста обойдется значительно дороже, если я смогу получить от этого ощутимую, монетизируемую выгоду.
Как опытный менеджер команды и коммуникатор, я чувствую себя комфортно, делегируя задачи чему-то вроде Codex. Это не сильно отличается от общения с членом команды в Slack.
Тот факт, что Codex предоставляет рекомендации, черновики версий и ожидает моего одобрения, дает ощущение безопасности по сравнению с тем, чтобы просто позволить ему свободно работать в моем коде. Это открывает интригующие возможности для нового жизненного цикла разработки, где люди определяют цели, AI составляет черновики потенциальных реализаций, а затем люди либо утверждают, либо перенаправляют AI на другую итерацию.
Неотвеченные вопросы и будущие последствия
Основываясь на моем предыдущем опыте использования ИИ для кодирования, Codex потенциально может сократить время обслуживания и ускорить доставку исправлений пользователям. Однако его эффективность в добавлении новых функций на основе документа спецификаций остается неясной. Точно так же еще предстоит определить сложность изменения функциональности и производительности после внедрения Codex.
Стоит отметить, что кодирование AI развивается во многих компаниях аналогичными темпами. Вскоре я опубликую еще одну статью об AI агенте GitHub Copilot’s Coding Agent, который имеет некоторые общие функции с Codex.
В этой статье я выразил опасения, что эти агенты кодирования могут вытеснить младших и начинающих программистов. Помимо последствий для работы людей, возникает также вопрос о критических возможностях обучения, которые могут быть утрачены, если мы делегируем среднюю фазу карьеры разработчика ИИ.
Индустрия программного обеспечения "В неизвестность"
В мультфильме Диснея "Холодное сердце 2" есть песня под названием "В неизвестность", которую исполняет Идина Мензел. Песня отражает внутренний конфликт главного героя между поддержанием статус-кво и погружением "в неизвестность".
С разработкой программного обеспечения на основе агентов, помимо простого кодирования AI, вся индустрия программного обеспечения отправляется в путешествие "в неизвестность". По мере того, как мы все больше полагаемся на системы на основе ИИ для разработки нашего программного обеспечения, количество квалифицированных специалистов по обслуживанию, вероятно, уменьшится. Это приемлемо до тех пор, пока ИИ продолжает эффективно функционировать и остается доступным. Однако позволяем ли мы исчезнуть важным навыкам и приносим в жертву хорошо оплачиваемую работу ради удобства делегирования еще не разумной облачной инфраструктуре?
Время покажет ответы, и, надеюсь, это откровение не произойдет, когда у нас не останется времени.
Рассмотрите ли вы возможность делегирования реальных задач по разработке такому инструменту? Как вы думаете, какое долгосрочное влияние это окажет на команды разработчиков или отдельных разработчиков? И беспокоитесь ли вы о потере критических навыков или ролей по мере того, как большая часть жизненного цикла кода доверяется ИИ?