Эксперимент Anthropic с Си компилятором

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

 

Организация эксперимента

Исследователь Anthropic Николас Карлини инициировал эксперимент, задействовав 16 экземпляров модели Claude Opus 4.6. Каждый агент функционировал в изолированной среде Docker и имел доступ к общей кодовой базе через Git-репозиторий. Центрального координатора не существовало — агенты самостоятельно выбирали задачи, ориентируясь на состояние проекта.

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

Процесс занял около двух недель. За это время было проведено почти 2000 рабочих сессий через сервис Claude Code. Стоимость использования API составила приблизительно 20 000 долларов, без учёта расходов на обучение модели, инфраструктуру и подготовку тестовой среды.

 

Технический результат

В итоге агенты написали компилятор объёмом около 100 000 строк кода на языке Rust. Получившаяся программа способна:

  • компилировать ряд крупных открытых проектов (PostgreSQL, SQLite, Redis, FFmpeg, QEMU);
  • проходить примерно 99 % тестов GCC;
  • собирать загружаемое ядро Linux версии 6.19 для архитектур x86, Arm и RISC-V.

При этом компилятор нельзя назвать полноценной альтернативой GCC или Clang. Он не поддерживает компиляцию 16-битного машинного кода, что требует подключения GCC на определённом этапе сборки. Ассемблер и линкер работают нестабильно, а итоговый машинный код уступает по эффективности зрелым компиляторам.

Кроме того, качество исходного кода на Rust оказалось функциональным, но далёким от стандартов, которых придерживаются опытные системные программисты.

 

Ограничения автономной разработки

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

Фактически проявился типичный эффект сложных программных систем: рост объёма кода усложняет понимание архитектуры. Для автономных ИИ-агентов это стало критическим фактором.

Дополнительные трудности возникли при работе с тестированием. Большие объёмы текстового вывода перегружали контекстное окно модели, из-за чего она теряла фокус на текущей задаче. Для решения проблемы была разработана система кратких отчётов с записью детализированных логов во внешние файлы.

Ещё одной особенностью стало отсутствие у модели «ощущения времени»: агенты могли длительное время выполнять тесты без ощутимого прогресса. В результате был внедрён ускоренный режим проверки — от 1 % до 10 % тестовых сценариев.

В ситуациях, когда агенты не могли устранить ошибку при сборке ядра Linux, в качестве эталонного инструмента временно использовался GCC. Он компилировал основную часть кода, а ИИ-агенты дорабатывали проблемные фрагменты.

 

Чистая разработка и инженерные решения

Принципиальным моментом стало то, что компилятор создавался в «чистой комнате»: агенты не имели доступа к интернету и не могли использовать внешние источники. Это исключало прямое заимствование кода и делало проект экспериментом в автономной генерации системного программного обеспечения.

Подготовка инфраструктуры оказалась даже более трудоёмкой, чем сама генерация кода. Необходимо было спроектировать среду, в которой агенты могли эффективно координировать действия, не создавая хаоса в репозитории.

Модель распределённой работы через Git фактически стала новым форматом коллективной ИИ-разработки — без централизованного управления, но с механизмами саморегуляции.

 

Значение эксперимента

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

Эксперимент Anthropic показывает, что ИИ способен:

  • координировать коллективную работу;
  • самостоятельно распределять задачи;
  • поддерживать большой кодовый проект в рабочем состоянии;
  • интегрироваться в существующие инженерные процессы.

При этом остаётся очевидным, что полностью автономная разработка сложных систем пока недостижима. Человеческий контроль, архитектурное планирование и оптимизация остаются критически важными.

 

Сравнение: GCC и компилятор, созданный ИИ-агентами Anthropic

Параметр

GCC (GNU Compiler Collection)

ИИ-компилятор Anthropic

Статус проекта

Зрелый промышленный инструмент

Экспериментальный прототип

Год начала разработки

1987

2025 (в рамках эксперимента)

Разработчики

Международное сообщество

16 автономных ИИ-агентов Claude

Язык реализации

C и C++

Rust

Объём кодовой базы

Миллионы строк кода

~100 000 строк кода

Поддержка архитектур

Широкий спектр (x86, ARM, RISC-V, PowerPC и др.)

x86, ARM, RISC-V (ограниченно)

Поддержка 16-битного кода

Полная

Отсутствует

Оптимизация машинного кода

Высокоуровневая, зрелые алгоритмы оптимизации

Базовая, уступает GCC

Прохождение тестов GCC

100 % (эталон)

~99 %

Работа ассемблера и линкера

Стабильная

Нестабильная

Производительность сгенерированного кода

Оптимизированная

Менее эффективная

Участие человека

Активная разработка и поддержка

Минимальное вмешательство в процессе генерации

Доступ к интернету при разработке

Да (традиционный процесс)

Нет («чистая комната»)

Назначение

Промышленное использование

Демонстрация возможностей ИИ

Ключевые различия

1. Зрелость и надёжность.
GCC — это десятилетиями развиваемый инструмент с глубокой оптимизацией, широкой аппаратной поддержкой и стабильной экосистемой. ИИ-компилятор — это экспериментальная реализация, подтверждающая возможность автономной разработки, но не готовая к промышленной эксплуатации.

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

3. Архитектурная устойчивость.
GCC обладает продуманной архитектурой и поддерживает множество режимов сборки. В ИИ-проекте проявилось ограничение автономных агентов: по мере роста кодовой базы управление сложностью становится проблемой.

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

 

Проект Anthropic с участием 16 ИИ-агентов продемонстрировал, что современные модели способны выходить за рамки генерации отдельных функций или фрагментов кода. Они могут участвовать в создании крупного программного продукта, координируя действия в распределённой среде.

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

Лого

Spartacus_85 [Admin]

Администратор сайта — это специалист, который отвечает за техническую поддержку и бесперебойную работу веб-ресурса.



0 Комментарий(я)

Зарегистрируйтесь чтобы оставить комментарий