ГлавнаяБлогAI-помощь в Open Source: как не потеряться между качеством и запретами
Карьера

AI-помощь в Open Source: как не потеряться между качеством и запретами

Разбираем, почему AI-ассистированные проекты блокируют в сообществах. Узнайте, как отличить качественный код от «сгенерированного мусора» и что делать разработчику.

Al
Редакция Algolitalgolit.ru
12 мин чтения27 июля 2026 г.

Зачем читать эту статью?

Вы написали open-source проект с помощью AI, но вас забанили на Reddit и Hacker News? Знакомая ситуация. В статье разберём, почему сообщества отвергают AI-ассистированные проекты, и предложим критерии, которые отличают качественную работу от автоматически сгенерированного мусора.

История Open Vectorizer: от блокировок до осознания

Я работал над Open Vectorizer — движком для векторизации растровых изображений в SVG, написанным на Rust. Проект компилируется в WebAssembly, имеет воспроизводимый бенчмарк и конкурирует с Potrace и VTracer. Я хотел поделиться им, найти контрибьюторов. И тут начались проблемы.

Hacker News: Show HN не для новичков

Open Vectorizer идеально подходил для Show HN: open source, технический, интересный алгоритм, бенчмарки. Но Hacker News временно ограничил Show HN для новых пользователей из-за наплыва незнакомых с сообществом людей. Справедливо, но досадно.

Reddit: r/rust и требование «без AI»

Попробовал r/rust. Пост автоматически удалили. Сабреддит требует сертифицировать, что проект не содержит значительного AI-контента. Я не мог этого гарантировать: Open Vectorizer разрабатывался с существенной AI-помощью. Пришлось отказаться.

r/opensource: AI = бан

Даже в r/opensource, где MIT-лицензия и поиск контрибьюторов, правила гласят: «Весь AI-контент — низкокачественный и заслуживает бана». Я оценил иронию: у меня open-source проект, я ищу людей, но сообщества не дают рассказать о нём, потому что машины помогли писать код.

Проблема: AI ≠ низкое качество

Я понимаю, почему существуют эти правила. AI сделал производство «объектов, похожих на софт», невероятно дешёвым. Можно попросить агента построить базу данных, опубликовать 20 000 строк на GitHub через час и не знать, работает ли это. Сообщества завалены таким мусором. Но фильтр «использовался ли AI?» — плохой прокси для «это низкокачественный мусор?». Это не одно и то же.

Что вообще значит «сгенерировано AI»?

Представьте пять разработчиков:

  • A пишет всё вручную, но использует автодополнение IDE.
  • B использует GitHub Copilot для завершений.
  • C просит агента реализовать отдельные функции по детальным спецификациям.
  • D проектирует архитектуру, пишет тесты, оценивает результаты, делегируя реализацию AI.
  • E пишет: «сделай мне векторизатор» и публикует результат.

Какие проекты AI-сгенерированы? Очевидная разница между D и E. Но проводить границу по количеству напечатанных символов — неверно. И это различие будет только размываться.

Open Vectorizer как пример

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

Позже я вернулся к задаче с AI-помощью. Мы исследовали, не использовать ли машинное обучение. Обсуждали обучение маленькой vision-модели на синтетических данных SVG→PNG. Возможно, сработало бы, но я решил иначе.

Вместо этого алгоритм был перепроектирован. Ключевое осознание: антиалиасные пиксели — не просто шум, они содержат информацию о покрытии геометрии. Open Vectorizer теперь использует эту информацию для восстановления границ с субпиксельной точностью, обнаруживает углы и примитивы, генерирует кандидаты, растеризует их и сравнивает с исходником. Так он может превратить растровый круг в настоящий SVG-круг, а не в набор кривых Безье.

AI помог разработать эту систему. Сам векторизатор AI не использует. Так является ли Open Vectorizer AI-сгенерированным? Формально да. Но это описание ничего не говорит о его качестве.

AI нашёл баг в бенчмарке

При подготовке визуального сравнения AI-агент обнаружил, что наш подсчёт узлов был неверным. Разные SVG-генераторы закрывают пути по-разному. Бенчмарк случайно давал Open Vectorizer на один узел меньше, а Potrace — на один больше. Неудобный баг, когда пытаешься показать, что твой софт проще. Мы исправили, перегенерировали таблицы. Числа Open Vectorizer ухудшились: VTracer начал обходить его по числу узлов в 5 случаях из 17 вместо 2. Мы задокументировали причины и добавили в TODO. Точность при этом воспроизвелась идеально. Вот процесс разработки, который я хочу видеть, независимо от того, содержит ли человек, нашедший баг, углерод.

Судите артефакт

Возможно, вопросы об AI-ассистированных open-source проектах должны быть другими. Вместо «Писал ли AI значительные части?» спросите:

  • Может ли мейнтейнер объяснить архитектуру?
  • Доступен ли исходный код?
  • Есть ли осмысленные тесты?
  • Можно ли независимо воспроизвести утверждения?
  • Прозрачны ли бенчмарки?
  • Раскрыты ли слабые места?
  • Проверяет ли мейнтейнер изменения и берёт ли ответственность?
  • Понимаются и исправляются ли баги?
  • Поддерживается ли проект после первой генерации?
  • Могут ли контрибьюторы оспаривать технические решения?

Эти вопросы говорят о проекте гораздо больше. И они одинаково применимы к человеческому коду. Люди, кстати, производят ужасный код задолго до ChatGPT.

AI-помощь не снимает ответственности

Это не аргумент, что AI-код автоматически хорош. Наоборот. Если AI-агент ввёл уязвимость — это моя проблема. Если алгоритм непонятен — я не должен его публиковать. Если он выдумал результаты бенчмарка — я отвечаю за ложную информацию. Использование AI не снижает стандарты. Оно увеличивает бремя на мейнтейнера доказать, что результат работает. Вот почему важны воспроизводимость, тесты, признание превосходства конкурентов. «Я использовал AI» — не защита от плохой инженерии. Но и не должно автоматически дисквалифицировать хорошую.

Ирония для open source

Самое странное: я хочу, чтобы Open Vectorizer стал менее зависим от меня и моих AI-агентов. Я хочу, чтобы кто-то, разбирающийся в вычислительной геометрии, сказал, что подгонка кривых глупая. Чтобы Rust-разработчик ускорил декомпозицию покрытия. Чтобы эксперт по SVG улучшил восстановление штрихов. Чтобы кто-то предложил алгоритм, который я не рассматривал. Я хочу людей-контрибьюторов. Но чтобы их найти, я должен показать проект людям. Категорическое отвержение AI-ассистированных проектов создаёт странный цикл: проекты, разработанные с AI, имеют меньше шансов стать коллаборативными. Это контрпродуктивно.

Практический вывод: что делать прямо сейчас

Нам нужно лучшее различие. Не «человеческое vs AI», а «поддерживаемая инженерия vs сгенерированный мусор». Кто-то принимал решения? Оценивал вывод? Понимал его? Тестировал? Будет поддерживать? Может защитить утверждения? Несёт ответственность? Эти вопросы сложнее модерировать. Но они важны. AI-ассистированная разработка никуда не денется. И по мере улучшения инструментов определение того, напечатана ли функция человеком, сгенерирована Copilot или реализована агентом, станет бессмысленным. Софт всё равно должен работать. Кто-то должен нести ответственность. И если он делает что-то интересное, я хочу иметь возможность рассказать об этом другим разработчикам.

#AI-ассистированная разработка#open source#качество кода#модерация сообществ#ответственность разработчика
Al
Редакция Algolit

Пишем про алгоритмы, подготовку к собеседованиям и карьеру в IT — так, чтобы было понятно и полезно.

Хочешь закрепить знания на практике?

Решай задачи на Algolit — интерактивная платформа для обучения

Начать бесплатно →