Параллельные агенты
Как запускать несколько агентов в одном репозитории без конфликтов — 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.
- Следите за бюджетами. Четыре агента тратят в четыре раза быстрее.
Ревью
Читайте, что изменил агент, на панели «Изменения», откатывайте или принимайте отдельные фрагменты, отправляйте агенту комментарии и запускайте ревью кода на четырёх уровнях глубины.
Навыки
Упакуйте инструкции, скрипты и справочные материалы в навыки SKILL.md, которые агент загружает, когда они нужны для задачи.