Представьте, что вы ставите перед собой задачу разработать новый UI-компонент. Стандартный сценарий: вы придумываете описание, отправляете запрос в LLM (Large Language Model, крупные языковые модели вроде Claude или GPT) и надеетесь получить адекватный код. Но любой, кто хоть раз пользовался AI-кодогенераторами, знает, что вероятность успеха не так высока, как хотелось бы. Что если одновременно запустить несколько таких агентов, а затем просто выбрать лучший результат?
Именно так и сделал Николас Хами, автор недавней статьи на своём блоге. Но вместо того, чтобы запускать процессы вручную и постоянно путаться в коде, он применил элегантное решение, сочетая Git Worktrees и Tmux. Итог оказался настолько впечатляющим, что Николас не только стал «евангелистом параллелизма», но и начал разработку инструмента для автоматизации этого подхода. Почему это важно и что это значит для будущего разработки — давайте разбираться.
🧩 Почему один агент – это мало?
Когда Николас захотел реализовать переключатель (Toggle) для своей библиотеки компонентов, он запустил сразу четырёх агентов (два Claude Code и два Codex), каждый в отдельном Git Worktree.
Результаты были показательными:
- 🟢 Один агент выдал почти готовое решение.
- 🔴 Остальные три агента ошиблись — кто-то не справился с дизайном, кто-то с логикой.
Простая математика показала: если шанс успеха одного агента примерно 25%, то запуск четырёх агентов даёт 68% вероятности получить рабочее решение сразу.
- 📈 Вероятность успеха одного агента: ~25%
- 📊 Вероятность успеха при четырёх параллельных агентах: 68% (1 - 0.75^4 ≈ 0.68)
Это резко снижает затраты времени, а стоимость запуска агентов (в данном случае всего около 40 центов) выглядит просто ничтожной по сравнению с сэкономленными 20-30 минутами работы.
⚙️ Под капотом: как работает Git Worktrees и Tmux?
Для параллельного запуска Николас использует две проверенные временем технологии:
- 🌳 Git Worktrees – это возможность иметь несколько независимых рабочих директорий, подключённых к одному репозиторию. Каждый агент получает своё пространство, благодаря чему их изменения не пересекаются и не конфликтуют.
- 📺 Tmux – инструмент, позволяющий разделять терминал на несколько независимых сессий и окон, удобно мониторить работу всех агентов одновременно.
На практике всё выглядит примерно так:
- Создаётся несколько worktrees (git worktree add ...).
- Запускается Tmux-сессия с отдельной вкладкой для каждого агента.
- Каждый агент получает свой промпт и работает независимо.
- В конце автор проверяет результаты и выбирает лучшую ветку для объединения.
🥲 Проблемы текущего подхода: когда автоматизации не хватает
Параллельный подход великолепен, но, как и любое ручное решение, имеет недостатки:
- 🗂 Путаница в ветках: сложно отслеживать, какая ветка на какой коммит базируется.
- 📋 Повторная отправка запросов: один и тот же промпт приходится вставлять вручную каждому агенту.
- 🛠 Сложности с предварительным просмотром: запускать сервер и помнить порты для каждой директории неудобно.
- 🚨 Ручное создание Pull Request'ов: много лишних действий по коммиту и отправке результатов на ревью.
Именно это вдохновило Николаса и его коллегу Дензелла начать разработку инструмента, который получил название uzi.
🚧 uzi: инструмент, который упрощает параллельную работу AI-агентов
Идея uzi проста и гениальна одновременно — автоматизировать всю ручную работу и сделать управление несколькими AI-агентами максимально комфортным. Вот некоторые команды, которые планируется реализовать в uzi:
- 🎯 uzi start --agents claude:3,codex:2 --prompt "Реализовать фичу X"
Автоматически запускает три агента Claude и два Codex с одинаковым промптом в отдельных worktrees. - 📜 uzi ls
Показывает все активные сессии, ветки и их статус. - 🚀 uzi exec --all -- yarn dev
Запускает команду сразу во всех worktrees, например, сервер для предварительного просмотра. - 📣 uzi broadcast -- "Исправьте предыдущий код с акцентом на Y"
Отправляет дополнительный промпт всем запущенным агентам одновременно. - ✅ uzi checkpoint --agent claude-1 --message "Первоначальная реализация"
Создаёт контрольную точку (чекпоинт), коммитит изменения и перебазирует рабочую ветку. - 🗑️ uzi kill --agent codex-2
Завершает работу указанного агента и удаляет ненужную ветку.
Это позволит экономить часы ручной работы, сделав процесс почти автоматическим.
🌍 Параллелизм — будущее не только разработки
Но параллелизм, как подчёркивает автор, имеет потенциал далеко за пределами написания кода. Представьте такие сценарии:
- ⚖️ Юридические задачи: Юрист может запустить несколько агентов для анализа и редактирования контрактов, выбирая лучшее из множества вариантов.
- 📢 Маркетинг и аналитика: Маркетолог запускает сразу несколько AI-аналитиков, получая разные ракурсы одного и того же отчёта для принятия более взвешенных решений.
Таким образом, параллелизм уже выходит за рамки кодинга, открывая новые возможности для более качественных решений практически в любой сфере.
💡 Моё личное мнение
Я убеждён, что подход Николаса не просто интересен, но и крайне перспективен. Git Worktrees и Tmux сами по себе не новые технологии, но сочетание их с AI-кодогенераторами — это именно то, что превращает искусственный интеллект из модной игрушки в мощнейший инструмент разработчика. Автоматизация же процесса с помощью инструментов вроде uzi обещает нам новую волну продуктивности и удобства в ближайшие годы.
Вместо того чтобы вручную перебирать варианты, мы можем запустить параллельно десяток AI-ассистентов и просто выбирать лучшее из того, что они предлагают. Думаю, через несколько лет это станет обычной практикой во многих индустриях.
🔗 Полезные ссылки: