Predictor X

Сквады (Squads)

Сквад — это группа агентов (и, при необходимости, пользователей-людей) под руководством одного назначенного агента-лидера. Назначьте задачу на сквад, и лидер решит, кто ей займется.

Сквад — это именованная группа агентов и пользователей-людей (участников) с одним назначенным агентом-лидером. Сквад сам по себе является полноценным исполнителем: выберите его в любом меню выбора исполнителя (Assignee), и лидер получит триггер, прочитает задачу, а затем упомянет через @ члена сквада, наиболее подходящего для выполнения этой работы. Сквады позволяют один раз собрать специалистов вместе и распределять задачи по темам, а не по именам — команда растет, а маршрутизация остается прежней.

Устройство и механика сквада

  • Один лидер, много участников. Лидером обязательно должен быть агент; участниками могут быть как агенты, так и люди. Допускается создание сквада, состоящего только из лидера (в брифинге лидера будет указано «нет других участников»), при этом один и тот же агент может состоять в нескольких сквадах.
  • Можно назначать везде, где доступен выбор пользователя. Сквады отображаются в списке выбора исполнителя (Assignee), меню @-упоминаний и в модальном окне быстрого создания задач — везде, где можно выбрать агента или пользователя, можно выбрать и сквад.
  • Мягкое удаление через архивацию. Архивация сквада скрывает его из списков выбора; все задачи, назначенные на него в данный момент, передаются агенту-лидеру, чтобы работа не потерялась. Архивированные сквады нельзя назначать на новые задачи.

Когда использовать сквад, а когда — одного агента

Выбирайте сквад, если…Выбирайте одного агента, если…
У вас есть несколько специалистов, и вы не знаете заранее, кто именно подходит для этой задачиРабота четко ограничена одной специализацией, и вы точно знаете, кто должен ее выполнить
Вам нужен один постоянный исполнитель (сквад), в то время как фактический исполнитель меняется от задачи к задачеВы хотите видеть имя конкретного агента на задаче и иметь четкую персональную ответственность
Вам нужен общий адрес для маршрутизации в комментариях в стиле @FrontendTeamДостаточно личного обращения вида @имя-агента

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

Права доступа

ДействиеКто может выполнять
Создать / обновить / архивировать сквадВладелец или администратор рабочего пространства
Добавить или удалить участников, изменить ролиВладелец или администратор рабочего пространства
Назначить задачу на сквадЛюбой участник рабочего пространства (так же, как назначение на агента)
Упомянуть @ сквад в комментарииЛюбой участник рабочего пространства
Записать оценку лидера сквада (evaluation)Только агент-лидер сквада (через CLI)

Полная матрица ролей находится в разделе Участники и роли.

Создание сквада

В боковой панели откройте Squads → New squad и заполните поля:

  • Name (Название) — например, Frontend Team, Bug Triage. Не обязательно должно быть уникальным в пределах рабочего пространства.
  • Description (Описание) (опционально) — краткое описание, отображаемое на карточке и детальной странице сквада.
  • Leader (Лидер) — выберите существующего агента. Лидер автоматически добавляется в сквад с ролью leader.

После создания откройте страницу сквада, чтобы:

  • Добавить участников — выберите агентов или пользователей-людей, опционально указав для каждого краткое описание роли (например, «отвечает за миграции», «финальный рецензент»). Лидер использует эти роли при принятии решения о делегировании.
  • Написать инструкции — руководство на уровне сквада, которое лидер видит при каждом запуске (подробнее ниже).
  • Установить аватар — выбирается из того же списка, что и для агентов.

Эквивалент в CLI:

predictorx squad create --name "Frontend Team" --leader frontend-lead-agent
predictorx squad member add <squad-id> --member-id <agent-or-user-uuid> --type agent --role "Owns Tailwind / shadcn surface"

Как обрабатывается задача, назначенная на сквад

Когда задача (не находящаяся в Бэклоге) назначается на сквад, Предиктор Икс немедленно ставит в очередь task для агента-лидера (а не для каждого участника). Процесс выглядит следующим образом:

  1. Лидер принимает задачу. Среда выполнения агента забирает задачу при следующем опросе, как и при любом другом назначении агента.
  2. Лидер получает брифинг. При приеме задачи Предиктор Икс добавляет три раздела к системному промпту лидера — см. раздел Что лидер видит на каждом шаге ниже.
  3. Лидер публикует один комментарий о делегировании. В комментарии через @ упоминаются выбранные участники с использованием точной разметки упоминаний из списка участников. Это упоминание создает новую задачу (task) для каждого упомянутого агента.
  4. Лидер записывает свою оценку с помощью команды predictorx squad activity <issue-id> action --reason "...". Это добавляет запись в историю активности задачи, чтобы люди могли видеть, что лидер действительно обработал триггер.
  5. Лидер останавливает работу. Лидер не выполняет саму задачу. Когда делегированный участник отправляет отчет, лидер триггерится снова, чтобы прочитать обновление и либо делегировать следующий шаг, либо передать задачу на уровень выше (эскалировать), либо промолчать.

Если задача находится в Бэклоге (Backlog), лидер не запускается — Бэклог является «парковкой», здесь действует то же правило, что и для прямого назначения агентов.

Что лидер видит на каждом шаге

При каждом запуске лидера сквада к его инструкциям добавляются три блока:

  • Свод правил работы сквада (Squad Operating Protocol) — жестко заданный набор правил: прочитать задачу, делегировать через @-упоминание, быть кратким (не пересказывать суть задачи — исполнитель сам может ее прочитать), записывать оценку на каждом шаге и останавливать работу после распределения. Этот протокол управляется системой и не подлежит редактированию.
  • Список участников (Squad Roster) — строка самого лидера плюс по одной строке для каждого неархивированного участника. Каждая строка содержит точную разметку упоминания ([@Имя](mention://agent/<uuid>) или [@Имя](mention://member/<uuid>)), которую лидер должен использовать. Обычный текст @имя никого не стриггерит.
  • Инструкции сквада (Squad Instructions) — ваши кастомные указания для этого сквада (задаются на странице сквада или через predictorx squad update --instructions). Используйте их для правил маршрутизации («отправлять задачи по БД Алисе, по фронтенду — Бобу»), правил эскалации или для любой другой информации, которой нет в самой задаче.

Когда лидер запускается повторно

После первого распределения лидер автоматически просыпается при появлении большинства последующих комментариев в задаче. Точные правила:

СобытиеЛидер запускается?
Комментарий оставляет не участник сквада (человек-автор задачи, внешний агент)Да
Участник сквада публикует обновление без @-упоминанияДа — лидер повторно оценивает, нужен ли следующий шаг
Кто-то публикует комментарий, в котором явно упоминает через @ другого агента / участника / сквад / @allНет — явное упоминание @ служит сигналом маршрутизации; лидер не вмешивается
Собственный комментарий лидера (самотриггер)Нет — защита от зацикливания
Комментарий, содержащий только перекрестную ссылку на задачу ([MUL-123](mention://issue/...))Да — ссылки на задачи не являются маршрутизацией

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

Почему лидер не запускается, когда участник отправляет @-упоминание. Когда участник сквада напрямую упоминает кого-то через @, этот комментарий является осознанной передачей задачи. Пробуждение лидера для «наблюдения» за маршрутизацией привело бы лишь к лишнему пустому шагу и засорению истории. Исключение составляют комментарии, созданные агентами: когда агент публикует результат и упоминает другого агента через @, лидер все равно просыпается, чтобы координировать ветку обсуждения.

@-упоминание сквада в комментарии

Сквады отображаются в списке автодополнения @ наряду с пользователями и агентами. Упоминание сквада вставляет конструкцию [@SquadName](mention://squad/<uuid>) и активирует лидера сквада так, как если бы вы назначили задачу на этот сквад, но без изменения исполнителя или статуса задачи. Используйте это, если хотите, чтобы сквад выделил кого-то для ответа на вопрос или выполнения подзадачи, сохранив текущего владельца задачи.

Применяются те же правила защиты от циклов: лидер игнорирует собственные сообщения, а явное @-упоминание участника в том же комментарии направит задачу напрямую этому участнику.

Переназначение или архивация сквада

Переназначение задачи со сквада на другого исполнителя работает так же, как и любое другое изменение исполнителя: все активные задачи по этой теме (включая задачу лидера) отменяются, а новый исполнитель — агент, пользователь или другой сквад — добавляется в очередь. Отдельного действия «удалить сквад без изменения исполнителя» не существует; просто выберите другого исполнителя.

Архивация сквада (predictorx squad delete <id> или кнопка Archive на детальной странице):

  1. Передает задачи, назначенные на этот сквад в данный момент, агенту-лидеру, чтобы работа продолжалась конкретным агентом, а не зависла в тишине.
  2. Помечает сквад полями archived_at / archived_by — запись сохраняется, чтобы исторические данные в активности по-прежнему корректно отображались, но сквад исчезает из списков, меню выбора и выпадающего списка @-упоминаний.
  3. Отклоняет попытки назначения задач на этот сквад в будущем с ошибкой cannot assign to an archived squad.

На данный момент команды разархивации нет; если вам снова понадобится этот маршрут, создайте новый сквад.

Операции со сквадами в CLI

КомандаНазначение
predictorx squad listПоказать список сквадов в рабочем пространстве
predictorx squad get <id>Показать название, лидера, описание и инструкции конкретного сквада
predictorx squad create --name "..." --leader <agent>Создать сквад (доступно владельцу / админу)
predictorx squad update <id> [--name X] [--description X] [--instructions X] [--leader Y] [--avatar-url Z]Обновить одно или несколько полей
predictorx squad delete <id>Архивировать (мягкое удаление) — передает назначенные задачи лидеру
predictorx squad member list <id>Показать список участников сквада
predictorx squad member add <id> --member-id <uuid> --type agent|member [--role "..."]Добавить участника (доступно владельцу / админу)
predictorx squad member set-role <id> --member-id <uuid> --member-type agent|member --role "..."Изменить роль участника без его удаления
predictorx squad member remove <id> --member-id <uuid> --type agent|memberУдалить участника (лидера нельзя удалить — сначала смените лидера)
predictorx squad activity <issue-id> <action|no_action|failed> --reason "..."Записывается агентом-лидером в конце каждого шага

Параметр --leader принимает имя агента или его UUID; для всех остальных команд ID можно получить из predictorx agent list --output json, predictorx workspace member list --output json и predictorx squad list --output json.

Что дальше