Поскольку инструменты программирования искусственного интеллекта, такие как GitHub Copilot, Anthropic Claude и ChatGPT Codex, становятся все более популярными в средах разработки, крупные организации также начали широко применять код с использованием искусственного интеллекта в программном обеспечении корпоративного уровня. Например, Microsoft утверждает, что AI Copilot ежемесячно проверяет и влияет на сотни тысяч запросов на включение. Сообщество теперь также имеет более четкие письменные рекомендации о том, как код, сгенерированный ИИ или сгенерированный с помощью, можно использовать в ядре Linux в соответствии с требованиями.

Недавно документ о требованиях к коду с использованием ИИ привлек внимание Hacker News. Этот документ публично размещен в официальном репозитории Linux под именем Линуса Торвальдса в форме RST, специально для того, чтобы предоставить рекомендации и ограничения для разработчиков, которые хотят использовать инструменты искусственного интеллекта для внесения кода в ядро ​​​​Linux.

Согласно документу, прежде всего, весь код, сгенерированный с помощью ИИ, должен полностью следовать существующему процессу человеческой разработки, включая требования к процессу и стилю, указанные в файлах development-process.rst, coding-style.rst, submitting-patches.rst и других. В то же время код также должен соответствовать существующим требованиям соответствия, например, оставаться совместимым с лицензией только GPL-2.0, правильно использовать идентификатор лицензии SPDX и соблюдать все правила, перечисленные в License-rules.rst.

С точки зрения подписи и идентификации ответственности в правилах подчеркивается, что сам ИИ-агент не должен использовать метку Signed-off-by. Эта метка предназначена только для рецензентов-людей, поскольку только люди могут юридически сертифицировать Сертификат происхождения разработчика (DCO). Разработчики-люди, отправляющие исправления, должны лично проверять весь код, сгенерированный ИИ, чтобы убедиться, что он соответствует лицензионным требованиям, и использовать свою собственную отметку «Подписано» на исправлении, чтобы четко нести единоличную ответственность за все внесенные изменения.

Документ также требует явного указания участия ИИ, чтобы сообщество могло отслеживать эволюцию доли ИИ в разработке ядра Linux. Это делается с помощью тега «Assisted-by» в запросах на включение и следуя единообразному формату:AGENT_NAME:MODEL_VERSION [ИНСТРУМЕНТ1] [ИНСТРУМЕНТ2]. Среди них AGENT_NAME — это имя используемого инструмента или платформы AI, MODEL_VERSION — конкретная версия модели, а TOOL1 и TOL2 в квадратных скобках — дополнительные специальные инструменты анализа, такие как coccinelle, разреженный, smatch, clang-tidy и т. д.

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

узнать больше:

https://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst