Перейти к содержанию

Параллельная работа агентов в изолированных git-worktree

Что это и зачем нам

С точки зрения нашего опыта Orca — это замена стандартным терминалам (iTerm, PowerShell, cmd и т. п.) для работы с агентами. Вместо того чтобы запускать Claude Code, Codex или другой CLI-агент в обычном терминале, мы получаем среду, заточенную именно под управление несколькими агентами одновременно. Сам проект позиционируется шире — как ADE (Agent Development Environment), но его ядро — это терминал ghostty-класса со сплитами, поверх которого и строится вся оркестрация. Это открытый инструмент (лицензия MIT) для macOS, Windows и Linux.

Ключевая идея — изолированные git-worktree

Каждая задача выполняется в собственном изолированном git-worktree — без переключения веток и без stash. git worktree — это отдельный рабочий каталог со своими файлами и своей веткой, который «разделяет всё, кроме пофайловых данных worktree, таких как HEAD, index» с основным репозиторием (git-scm). Правки в одной сессии физически не касаются файлов другой, поэтому агенты не мешают друг другу, а конфликты откладываются на этап merge, где их ловит штатный git, а не тихие коллизии во время работы (Claude Code Docs).

Отсюда главный сценарий Orca: один и тот же запрос можно распараллелить сразу на несколько агентов («fan one prompt across five agents»), сравнить их результаты и слить (merge) лучший вариант. Агенты при этом могут быть разными — Claude Code, Codex, Cursor, Gemini, OpenCode и другие подключаются своими подписками.

Контекст: приём не уникален для Orca

Стоит держать в голове, что сама техника параллельных worktree — это общий подход, а не эксклюзив Orca. Например, у Claude Code есть встроенный флаг --worktree/-w, который создаёт изолированный worktree и запускает сессию в нём. Ценность Orca — в удобной обёртке: единый дашборд статусов агентов, сплиты терминала, review диффов и т. д.

Подводные камни

Внешние руководства отмечают то, о чём стоит помнить: worktree — это «чистый» checkout, поэтому нетрекаемые файлы (.env, свой node_modules) в него не попадают — зависимости приходится ставить в каждом worktree заново (MindStudio), а Claude Code решает это через файл .worktreeinclude (Claude Code Docs). Удалить можно только «чистый» worktree — без незакоммиченных изменений и нетрекаемых файлов (git-scm). На практике без спец-инфраструктуры комфортно управляются 3–5 параллельными агентами — дальше растут накладные расходы на координацию и review (MindStudio).

Источники