Параллельные агенты

Как запускать несколько агентов в одном репозитории без конфликтов — worktree, субагенты, workflow, корректировка на ходу и доска, — и что пока в предварительной версии.

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

Что работает уже сейчас

Один worktree на каждого, кто пишет

Worktree (отдельная рабочая копия) — это второй checkout вашего репозитория на собственной ветке. Изменения в одном worktree не затрагивают ни вашу рабочую копию, ни другие worktree, поэтому агенты в разных worktree могут править одни и те же файлы, не мешая друг другу.

  • Сессии можно запускать в собственном worktree. Запускайте сессию в worktree каждый раз, когда хотите, чтобы второй агент работал в том же репозитории, что и первый.
  • Дорожки гонки в git-репозитории всегда получают по собственному worktree. См. Гонка.
  • Субагенты, которые вносят изменения, могут запросить worktree с помощью isolation: worktree в своём определении. Worktree создаётся от ветки родительской сессии.
  • Субагенты только для чтения (исследование, поиск, ревью) работают в папке родителя, поэтому остаются быстрыми.

Worktree хранятся в каталоге данных Cusp (по умолчанию ~/.cusp/worktrees/; чтобы изменить, задайте worktreeDir) и никогда — внутри вашего репозитория.

В пределах одной папки у Cusp один пишущий: основная сессия редактирует рабочую область, а помощники, которым нужно писать, получают собственный worktree.

Субагенты и workflow

Сессия может передавать работу субагентам и запускать несколько из них сразу. Каждый работает в своём контексте и возвращает результат, так что контекст родителя не забивается всем, что прочитал субагент.

Для более широкого распараллеливания агент может написать workflow — короткий скрипт, который запускает агентов параллельно или цепочкой, с фиксированной структурой, которую можно прочитать до запуска. Запуск workflow — изменяющее действие, поэтому в режимах по умолчанию, планирования и авто он запрашивает разрешение. Сохранённые workflow подхватываются из .cusp/workflows/ и ~/.cusp/workflows/ (и их аналогов в .claude). Чтобы отключить workflow, задайте "disableWorkflows": true в настройках или CUSP_DISABLE_WORKFLOWS=1.

Корректировка на ходу

Чтобы изменить курс агента, не нужно ждать, пока он закончит.

  • Сообщения, которые вы отправляете, пока сессия работает, ставятся в очередь. Их можно редактировать или удалять, и они отправляются по порядку, когда сессия освобождается.
  • Отправить сейчас (⌘↵ / Ctrl+Enter на сообщении в очереди) доставляет сообщение в текущий ход. Агент прочитает его на следующем шаге, между вызовами инструментов, и скорректирует работу.
  • Нажмите Esc, чтобы сразу прервать ход.

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

Доска

Доска (на боковой панели) показывает каждую сессию карточкой в одной из пяти колонок:

КолонкаСессии, которые
РаботаетВыполняют ход
Ждёт васЖдут разрешения, ответа или подтверждения плана
Готово к ревьюЗакончили с изменениями, которые вы ещё не смотрели
ГотовоЗакончили работу
ОшибкаОстановились с ошибкой

Когда одновременно работают больше пяти сессий, доска подсказывает, что узким местом стало ревью. Самое время разобрать Входящие и колонку «Готово к ревью», прежде чем запускать новые.

В предварительной версии

Функции ниже спроектированы и реализованы в виде протестированной библиотеки, но пока не работают в демоне (daemon) и не видны в приложении. Они перечислены, чтобы вы знали, что впереди, а не как то, чем можно пользоваться сегодня.

ФункцияЧто она будет делатьА пока
Общие лимиты запросовОдин планировщик делит лимит запросов каждого провайдера между всеми запущенными агентами, подстраивает параллелизм по заголовкам провайдера и отступает при ошибках квоты, чтобы параллельные агенты не вызывали волны ошибок 429Каждая сессия сама повторяет запросы при ошибках лимита. Ограничивайте большие запуски несколькими агентами на ключ провайдера
Аренда файловПишущие агенты объявляют на общей доске, какие файлы редактируют, и пересекающаяся работа помечается до того, как возникнет конфликтДайте каждому пишущему агенту собственный worktree
Очередь слиянияГотовая работа вливается по одному изменению: перебазирование на базовую ветку, запуск ваших проверок, разрешение конфликтов агентом, затем слияние (merge). Сбои попадают во ВходящиеСливайте ветки worktree сами или попросите агента в той сессии
Центр управленияДерево всех запусков в реальном времени с паузой, возобновлением, отменой и изменением бюджета для любой ветвиПользуйтесь боковой панелью, доской и Входящими

Советы

  • Давайте каждому параллельному агенту чётко отделённую задачу. Параллельная работа окупается на независимых изменениях и редко помогает, когда всем агентам нужны одни и те же файлы.
  • Смело используйте субагентов только для чтения для исследования. Они дешёвые и не требуют worktree.
  • Следите за бюджетами. Четыре агента тратят в четыре раза быстрее.

На этой странице