Алекс Черныш создал Bernstein, открытую систему для одновременного управления десятками кодинговых ИИ-агентов. Проект поддерживает Claude Code, Codex, GitHub Copilot и более 40 других инструментов, работает внутри закрытого контура и сохраняет проверяемую историю всех действий. Сейчас разработчик готовит механизм, который позволит направлять простаивающих агентов на помощь open-source-проектам.

Идея Bernstein появилась во время работы Черныша над проектом для конкурса Agentic Legal RAG. Его решение заняло 38-е место среди 80 финалистов, но параллельно обнаружилась другая проблема — для разработки требовалось управлять несколькими кодинговыми агентами, приостанавливать и продолжать их работу, менять провайдеров и при необходимости восстанавливать последовательность действий.
Готовые инструменты не обеспечивали нужной воспроизводимости, поэтому Черныш начал разрабатывать собственный оркестратор. Первый релиз был сравнительно простым, однако со временем Bernstein превратился в систему для управления целым флотом агентов, которые получают задания из общего бэклога и работают параллельно.
«Самое интересное в Bernstein для меня не то, что агенты пишут код, а то, что системе не нужно верить на слово».
Алекс Черныш, автор и мейнтейнер Bernstein
Координация в проекте возложена на детерминированный планировщик, написанный на Python. Языковая модель участвует в разбиении цели на задачи и их выполнении. Очередность запуска, повторные попытки, проверка результатов и слияние кода контролируются обычной программой.
Такое разделение позволяет воспроизводить работу управляющего контура. Ответы языковых моделей при повторном обращении могут отличаться, но Bernstein сохраняет, какую задачу получил каждый агент, какие файлы изменил, какие проверки прошел и почему его результат был принят или отклонен.
Рабочий цикл состоит из четырех стадий:
- Сначала исходная задача разбивается на небольшие части.
- Затем для каждой из них запускается отдельный короткоживущий агент.
- После завершения работы система проверяет тесты, типы, линтеры и другие заданные условия.
- В основную ветку попадают только изменения, которые прошли контроль.
Каждый агент работает в изолированном Git worktree и не вмешивается в изменения соседних исполнителей. Проверка также отделена от разработки, поэтому агент не может самостоятельно одобрить созданный им код. По наблюдениям Черныша, короткоживущие агенты лучше справляются с узкими заданиями и реже теряют нужный контекст.
Задачи можно объединять в планы и сценарии, описанные декларативно. При проектировании системы разработчик ориентировался на подходы Ansible, Kubernetes и Airflow, где пользователь задает желаемый результат, а инфраструктура управляет исполнителями и их состояниями.
Bernstein работает с Claude Code, Codex, GitHub Copilot, Gemini CLI, Aider и десятками других инструментов. Агенты разных провайдеров могут участвовать в одном проекте, а состояние задач хранится в локальных файлах. Система поддерживает работу на локальном компьютере, в корпоративной инфраструктуре, облаке и изолированной среде без доступа в интернет.
Следующим направлением развития станет программа добровольных агентов. Пользователи смогут передавать свободные агентные мощности open-source-проектам, которым нужна помощь с тестами, документацией, исправлением ошибок и другими формализуемыми задачами.
Черныш сравнивает эту модель с SETI@Home. В известном распределенном проекте добровольцы предоставляли свободные вычислительные мощности своих компьютеров для анализа радиосигналов. В случае Bernstein участники будут предоставлять настроенных кодинговых агентов.
«Проект волонтерский, рук не хватает, так что я одинаково рад и pull request, и подробному отчету о баге».
Алекс Черныш, автор и мейнтейнер Bernstein
Первые элементы этого механизма появились в версии 3.16.0. Система уже умеет работать с манифестом добровольного проекта, формировать профиль изолированной среды и проверять параметры агента. Полноценное распределение заданий между участниками пока находится в разработке.