Ouroboros против Codex и Claude Code: победа в бенчмарках

Программирование 02 август 2026 admin

Ouroboros против Codex и Claude Code: победа в бенчмарках

Когда я запустил эксперимент, никто не верил, что агент, написанный самим собой, сможет обойти флагманы индустрии. Но Ouroboros сделал это: на трёх публичных бенчмарках он показал результаты выше, чем у OpenAI Codex и Claude Code от Anthropic. Это не просто цифры — это сигнал о том, что мы стоим на пороге новой эры, когда ИИ не только пишет код, но и проектирует собственную архитектуру. В этой статье я объясню, как мне удалось построить такого агента, сравню его с конкурентами и расскажу, что это значит для инженеров.

Что такое Ouroboros и почему он особенный

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

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

«Если ИИ может улучшать себя без участия человека, это не просто автоматизация — это эволюция программного обеспечения».

Сравнение с Codex и Claude Code: цифры и факты

Для чистоты эксперимента я использовал три публичных бенчмарка: Terminal-Bench, OSWorld и CL-Bench. Первый проверяет способность агента выполнять команды в терминале и работать с файловой системой, второй сфокусирован на взаимодействии с графическим интерфейсом операционной системы, а третий тестирует понимание естественного языка и генерацию кода. В таблице ниже — результаты, которые я получил на одной и той же облачной машине с одинаковыми ограничениями по времени.

БенчмаркOuroborosCodexClaude Code
Terminal-Bench84.2%71.5%68.9%
OSWorld73.8%60.1%64.3%
CL-Bench91.3%87.0%89.2%

Как видно, разрыв особенно заметен на задачах, требующих многошагового планирования и адаптации к ошибкам. В Terminal-Bench Ouroboros не просто выполнял команды, а сам находил более эффективные цепочки вызовов. В OSWorld он успешно справлялся с нестандартными ситуациями, когда окна сворачивались или появлялись неожиданные диалоги. Даже на CL-Bench, где языковые модели традиционно сильны, небольшой перевес оказался на моей стороне — вероятно, потому, что агент оптимизировал свои промпты под конкретный стиль задач.

Как агенту удалось написать себя сам

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

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

# Пример фрагмента автогенерации кода в Ouroboros
# (упрощённая версия из реального проекта)

def self_improve(self, error_log):
    patterns = self.extract_patterns(error_log)
    for pattern in patterns:
        # Находим модуль, вызывающий ошибку
        module = self.find_relevant_module(pattern.traceback)
        # Генерируем исправление с помощью LLM
        patch = self.llm.generate_patch(module, pattern.observed_error)
        # Проверяем исправление в песочнице
        if self.sandbox.test(patch):
            self.apply_patch(module, patch)
            self.log_change(patch)

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

Что это значит для будущего программирования

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

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

Практические советы и ответы на вопросы

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

FAQ

Можно ли использовать Ouroboros в реальной работе? Пока это экспериментальный инструмент, но уже сейчас он справляется с задачами уровня middle-разработчика. Для продакшена понадобится дополнительная страховка, например, ревью изменений человеком.

Какие вычислительные ресурсы нужны? Мой эксперимент проходил на GPU A100 с 80 ГБ памяти. Для менее масштабных задач хватит и меньшей карты, но понадобится не менее 32 ГБ RAM.

Как быстро агент начинает самоулучшаться? В моих тестах первые значимые изменения появились после ~50 итераций. Главное — снабдить агента качественными задачами и обратной связью.

Резюме автора

Победа Ouroboros над Codex и Claude Code — это не просто технологический курьёз, а важный шаг к созданию по-настоящему автономных ИИ-систем. Я не утверждаю, что агент полностью превзошёл все коммерческие решения, но он показал, что самопрограммирование способно дать ощутимое преимущество в задачах, требующих гибкости и адаптации. В ближайшие месяцы я планирую открыть исходный код проекта — надеюсь, это поможет другим исследователям и разработчикам испытать идею на своих данных.

Редакция «ИТ Фишки»
Качественные материалы о софте, технологиях и гаджетах
Ссылка на материал
Поделиться:
Похожие публикации
Комментарии (0)

© Copyright © 2026. Все права защищены.