Наверх

Kiro vs программисты: кто останется без работы?

AWS выпустила Kiro — ИИ-помощника для генерации кода. Удобный инструмент или риск для качества разработки? Наш вердикт.

5.08.2025
3:48
Kiro

Kiro — это новая интегрированная среда разработки Amazon Web Services для создания программных проектов с использованием агентного ИИ. Разработчик, использующий Kiro, создаёт спецификацию для нужной программы, а Kiro с помощью Claude Sonnet (3.7 или 4.0) итеративно генерирует набор требований, проектную документацию и список задач для создания приложения. Вы можете контролировать каждый этап процесса, вносить изменения в спецификации или команды или позволить системе работать в автоматическом режиме.

Мне удалось установить копию Kiro, пока она была доступна в режиме открытого предварительного просмотра. С тех пор она доступна только в списке ожидания, так как спрос быстро превысил возможности. Даже после того, как AWS увеличила мощности в выходные после первого предварительного просмотра Kiro, я всё равно сталкивался с тайм-аутами в Claude Sonnet API. Но здесь я сосредоточусь на общем дизайне и особенностях IDE, а не на проблемах с производительностью.

Видео от DGL.RU

Создание проекта Kiro

Kiro создан на основе форка Visual Studio Code, поэтому пользователям VS Code будет легко освоиться. Непонятно, почему Kiro — это отдельный продукт, а не просто набор плагинов для IDE VS Code — возможно, это сделано для того, чтобы не конкурировать с собственным Copilot от Microsoft. Тем не менее вы можете перенести плагины из существующей установки VS Code в Kiro, если хотите использовать их в процессе разработки в Kiro, или просто установить их из открытого магазина VSX.

Когда вы открываете новую папку с проектом в Kiro, вам предлагается шаблон сонета Клода, который можно использовать для «описания» (максимально общего описания вашего проекта с последующим углублением) или «спецификации» (формального проектирования, как описано выше). Вариант «описания» подходит для простых разовых проектов, и я использовал его для создания проекта на Python, который проверяет, не являются ли виртуальные среды для других проектов на Python недействительными. Проверить, работает ли полученный код, было несложно, поскольку из-за недавнего обновления системы у меня появились десятки проектов с неработающими виртуальными средами.

Kiro

Для выбора «спецификации» я подготовил более амбициозный проект: генератор статических сайтов с интерфейсом командной строки. Здесь Kiro использует ваши подсказки для создания документов с требованиями, дизайном и списком задач, чтобы настроить пошаговый процесс создания.

Вы также можете создать «управляющую» документацию, в которой будут прописаны постоянные правила интерпретации ваших инструкций для Kiro: каким должен быть ваш проект, какой стек для него использовать и как размещать файлы в репозитории. Эти документы можно создать в начале работы над проектом, а затем вносить в них изменения по мере развития проекта или создавать их постфактум и использовать для внесения любых улучшений в код с помощью ИИ.

Сгенерированный документ с требованиями соответствует привычному шаблону «пользовательская история»/«ЕСЛИ/ТОГДА», используемому в гибкой методологии разработки:

Kiro

В техническом задании описываются компоненты и архитектура приложения. Оно может быть гораздо более подробным, чем документ с описанием технического стека.

Kiro

В списке задач подробно описан каждый этап разработки проекта. Он интерактивный, и вы можете запустить его, нажав на автоматически сгенерированные ссылки «Начать» или «Повторить» на каждом этапе:

Kiro

Сопровождаем Kiro на протяжении всего процесса разработки

Для каждого элемента в списке задач Kiro предоставляет информацию в режиме реального времени о том, что он делает, какие файлы редактирует и какие команды ему нужно выполнить. На каждом этапе вы можете вмешаться вручную, изменив файлы или команды, которые нужно выполнить.

Kiro

У вас есть возможность перевести Kiro в режим автопилота и позволить ему генерировать как можно больше данных самостоятельно, но я решил контролировать каждый шаг, чтобы детально изучить обратную связь. Это оказалось необходимым, так как мне приходилось постоянно вмешиваться — например, следить за тем, чтобы все команды Python выполнялись с помощью py (в Windows). Попытка заставить Kiro делать это постоянно сработала только один раз, и изменение руководящих документов с явным указанием на это тоже не помогло.

Выполнение многих автоматизированных действий в Kiro занимает несколько минут, поэтому вы можете переключиться на другую задачу в другом окне, а Kiro отправит вам уведомление в системном трее, когда вам нужно будет уделить ему внимание. Если вам нужно прервать работу и вернуться к ней позже — например, чтобы перезапустить Kiro для обновления, — он перечитает документацию по вашему проекту, чтобы понять, на чем остановился. Однако на это уходит несколько минут, и я не раз сталкивался с тайм-аутами API при попытке возобновить сеанс.

Один любопытный недостаток Kiro в работе с кодом заключается в том, что он, похоже, не выполняет механическую проверку линтингом или синтаксисом перед запуском. Во многих примерах кода — как в исходном, так и в тестовом — были синтаксические ошибки, которые можно было легко обнаружить с помощью отдельного этапа проверки линтингом.

Kiro

Разработка через тестирование в Kiro

На каждом этапе разработки проекта Kiro пишет модульные тесты и пытается их проверить. Если тест не проходит, Kiro описывает, что, по его мнению, пошло не так, пытается изменить тест и повторяет попытку.

Один из первых примеров проблемного теста был связан с сервером предварительного просмотра для генератора статических сайтов. В написанном тесте не учитывалась необходимость остановки сервера после завершения тестирования. После того как я объяснил проблему Kiro, он предложил несколько исправлений:

Kiro

Первый предложенный набор исправлений не решил проблему. Тогда Киро предложил полностью переписать тесты:

Kiro

Эти тесты по-прежнему не проходили, поэтому система вернулась назад и попробовала другой подход. Для этого потребовалось заменить все вызовы неудачных тестов, что потребовало дополнительных попыток (и нескольких тайм-аутов Claude). К сожалению, после очередного тайм-аута Kiro снова решил, что тест всё ещё выполняется (хотя это было не так), и мне пришлось перезапустить весь этот этап, чтобы избежать новых проблем.

Я также обнаружил, что сгенерированный набор тестов очень хорошо проверяет одни вещи и совсем не проверяет другие. Например, на последних этапах интеграции тесты не проходили, потому что в образце контента, созданном для генератора статических сайтов, не было шаблонов. Несмотря на то, что об этом говорилось в тесте, Kiro не создал ни одного из недостающих шаблонов к моменту выполнения последнего пункта контрольного списка. Кроме того, один из примеров постов о «лучших практиках Python» был бессмысленным набором слов.

Заключительные мысли

К настоящему моменту большинство людей осведомлены о ограничениях и явных опасностях, связанных с кодом, сгенерированным ИИ. Итеративный подход Kiro, основанный на документации и рекомендациях, направлен на решение обеих этих проблем, но даже эти решения имеют свои ограничения. Например, ограничения, связанные с размером контекста при использовании генеративного ИИ, по-прежнему приводят к проблемам при создании проектов, состоящих из нескольких файлов. Кроме того, поскольку проектная документация оценивается так же, как и любые другие инструкции, отправляемые модели, нет никакой гарантии, что оценка будет последовательной.

Код, сгенерированный ИИ, также часто бывает многословным или избыточно сложным, и код, сгенерированный Kiro, не исключение. Сгенерированная программа для проверки виртуальной среды состояла из 230 строк на Python и включала различные параметры командной строки (в том числе опцию экспорта в JSON), которые удобны и полезны, но не были запрошены явно. Для базовой версии этого инструмента потребовалось бы не более двух десятков строк кода.

Другая серьёзная проблема Kiro заключается в том, что вся его полезная функциональность основана на API Claude Sonnet, а постоянные тайм-ауты и потеря контекста делают его использование неудобным. Стоит пересмотреть Kiro, когда его серверная часть будет расширена для поддержки полноценного релизного продукта. Хотя я могу представить себе конкурирующую версию этого продукта, которая использует компактную локальную модель для тех, у кого достаточно мощный компьютер для её запуска.

Конец хаосу в программировании: AWS запускает Kiro, агентную ИИ-среду разработки

Сердар Егильальп

Сердар Егильальп

Он пишет о технологиях уже тридцать лет. За это время он получил несколько наград. Их дали за лучшие обучающие статьи, которые помогают программистам. Но ему этого мало. Поэтому он ещё и записывает еженедельные видео. Там он делится советами и полезными техниками.

Источник: Infoworld
Теги:
Подпишитесь на наши новости:
Нажимая кнопку «Подписаться», вы принимаете «Пользовательское соглашение» и даёте согласие с «Политикой обработки персональных данных»