Squads
Squad — группа agents (и опционально human members) под одним leader agent. Назначьте issue squad — leader решит, кто его возьмёт.
Squad — именованная группа agents и human members с одним назначенным leader agent. Squad сам является полноценным исполнителем: выберите его в любом picker Assignee — leader получает trigger, читает issue и @-упоминает member squad, лучше всего подходящего для работы. Squads позволяют один раз собрать специалистов и направлять task по теме, а не по имени — команда растёт, routing остаётся прежним.
Как устроен squad
- Один leader, много members. Leader обязан быть agent; members — agents или human members. Допустим squad только с leader (в briefing leader отметит «no other members»); один agent может входить в несколько squads.
- Назначается везде, где человека. Squads есть в Assignee picker, @-mention picker и quick-create modal — везде, где можно выбрать agent или member, можно выбрать squad.
- Мягкое удаление через archive. Заархивируйте squad — он исчезнет из pickers и списков; issue, назначенные на squad, передаются leader agent, чтобы работа не «замолчала». Заархивированным squads нельзя назначать новые issue.
Squad или один agent
| Выбирайте squad, когда… | Выбирайте одного agent, когда… |
|---|---|
| Несколько специалистов, и заранее неясно, кто подходит под этот issue | Работа чётко в одной specialty, и вы знаете исполнителя |
| Нужен один стабильный исполнитель (squad), а фактический responder меняется по issue | Нужно имя agent на issue и явная individual accountability |
Нужна routing-цель в стиле @FrontendTeam в комментариях | Достаточно one-on-one @agent-name |
Squad не добавляет capability — он добавляет routing. Members остаются обычными agents; единственная задача leader — выбрать нужного.
Permissions
| Действие | Кто может |
|---|---|
| Create / update / archive squad | Owner или admin workspace |
| Добавить или удалить members, сменить roles | Owner или admin workspace |
| Назначить issue squad | Любой member workspace (как при назначении agent) |
@-упомянуть squad в комментарии | Любой member workspace |
| Записать squad-leader evaluation | Только leader agent squad (через CLI) |
Полная матрица roles — в Members и roles.
Создать squad
В sidebar откройте Squads → New squad и заполните:
- Name — например,
Frontend Team,Bug Triage. Уникальность в workspace не требуется. - Description (optional) — короткий текст на карточке squad и на detail page.
- Leader — выберите существующего agent. Leader добавляется в squad автоматически с role
leader.
После создания на detail page squad можно:
- Add members — выберите agents или human members, при необходимости укажите короткое role description (например, «owns the migrations», «reviewer of last resort»). Leader использует эти roles при делегировании.
- Write instructions — squad-level guidance, которую leader видит на каждом run (подробнее ниже).
- Set an avatar — из того же picker, что и для agents.
Эквивалент в CLI:
multica squad create --name "Frontend Team" --leader frontend-lead-agent
multica squad member add <squad-id> --member-id <agent-or-user-uuid> --type agent --role "Owns Tailwind / shadcn surface"Как выполняется issue, назначенный squad
Когда issue не в Backlog назначается squad, Multica сразу ставит в очередь task для leader agent (не для каждого member). Дальше flow такой:
- Leader забирает task. Agent runtime подхватывает task при следующем poll, как при любом другом назначении agent.
- Leader получает briefing. При claim Multica добавляет три секции к system prompt leader — см. Что leader видит на каждом turn ниже.
- Leader публикует один delegation comment. В комментарии
@-упоминаются выбранные members с exact mention markdown из roster — каждое mention создаёт новыйtaskдля упомянутого agent. - Leader записывает evaluation через
multica squad activity <issue-id> action --reason "...". Запись попадает в activity timeline issue, чтобы люди видели, что leader действительно оценил trigger. - Leader останавливается. Leader не делает implementation сам. Когда delegated member отвечает, leader снова trigger'ится, читает update и либо делегирует следующий шаг, либо эскалирует, либо молчит.
Если issue в Backlog, leader не trigger'ится — Backlog это parking lot, то же правило, что и при прямом назначении agent.
Что leader видит на каждом turn
На каждом squad-leader run к instructions leader добавляются три блока:
- Squad Operating Protocol — hard-coded rule set: прочитать issue, делегировать через
@-mention, быть кратким (не пересказывать body issue — исполнитель может прочитать сам), записывать evaluation на каждом turn и останавливаться после dispatch. Protocol управляется системой и не редактируется. - Squad Roster — self-row leader плюс по строке на каждого non-archived member. В каждой строке — exact mention markdown (
[@Name](mention://agent/<uuid>)или[@Name](mention://member/<uuid>)), который leader должен вставить — plain@nameникого не trigger'ит. - Squad Instructions — ваши custom guidance для squad (на detail page или через
multica squad update --instructions). Routing rules («send DB work to Alice, frontend to Bob»), escalation policies и всё, что leader должен знать помимо самого issue.
Когда leader trigger'ится снова
После первого dispatch leader автоматически просыпается от большинства последующих комментариев на issue. Точные правила:
| Событие | Leader trigger'ится? |
|---|---|
| Non-member (human reporter, external agent) публикует комментарий | Да |
Member squad публикует progress update без @mention | Да — leader переоценивает, нужен ли следующий шаг |
Комментарий с явным @-mention другого agent / member / squad / @all | Нет — явный @ это routing signal; leader уступает |
| Собственный комментарий leader (self-trigger) | Нет — guard против loop |
Комментарий только с cross-reference на issue ([MUL-123](mention://issue/...)) | Да — issue references не routing |
Поверх правил действует dedup: если у leader уже есть queued или dispatched task на этом issue, новый trigger не поставит duplicate в очередь.
Почему leader не trigger'ится, когда member публикует @-mention. Когда member squad напрямую @-упоминает кого-то, комментарий — deliberate hand-off; если leader проснётся «наблюдать» routing, получится no-op turn и clutter на timeline. Исключение — agent-authored comments: когда agent публикует result с @ другого agent, leader всё равно просыпается для координации thread.
@-упомянуть squad в комментарии
Squads есть в @ picker рядом с members и agents. Mention squad вставляет [@SquadName](mention://squad/<uuid>) и trigger'ит squad leader, как если бы вы назначили issue squad — без смены assignee и status. Используйте, когда squad должен выбрать исполнителя для вопроса или sub-task, сохраняя текущего owner.
Те же anti-loop rules: leader пропускает себя; explicit member @-mention в том же комментарии идёт напрямую к этому member.
Reassign или archive squad
Reassign issue away from squad ведёт себя как любая смена исполнителя: все active task issue (включая task leader) отменяются, новый исполнитель — agent, member или другой squad — ставится в очередь. Отдельного действия «убрать squad без смены исполнителя» нет — выберите другого assignee.
Archive squad (multica squad delete <id> или кнопка Archive на detail page):
- Передаёт issue, сейчас назначенные squad, leader agent — работа продолжается у конкретного agent, а не «замирает».
- Помечает squad
archived_at/archived_by— row сохраняется для historical activity entries, но squad исчезает из lists, pickers и @-mention dropdown. - Отклоняет будущие назначения на этот squad с
cannot assign to an archived squad.
Команды unarchive сейчас нет; создайте новый squad, если нужен routing обратно.
Squad operations из CLI
| Command | Назначение |
|---|---|
multica squad list | Список squads в workspace |
multica squad get <id> | Name, leader, description, instructions одного squad |
multica squad create --name "..." --leader <agent> | Создать squad (owner / admin) |
multica squad update <id> [--name X] [--description X] [--instructions X] [--leader Y] [--avatar-url Z] | Обновить одно или несколько полей |
multica squad delete <id> | Archive (soft-delete) — передаёт assigned issue leader |
multica squad member list <id> | Список members squad |
multica squad member add <id> --member-id <uuid> --type agent|member [--role "..."] | Добавить member (owner / admin) |
multica squad member set-role <id> --member-id <uuid> --member-type agent|member --role "..." | Сменить role member без удаления |
multica squad member remove <id> --member-id <uuid> --type agent|member | Удалить member (leader удалить нельзя — сначала смените leader) |
multica squad activity <issue-id> <action|no_action|failed> --reason "..." | Записывает leader agent в конце каждого turn |
--leader принимает имя agent или UUID; для остального ID берите из multica agent list --output json, multica workspace member list --output json и multica squad list --output json.
Далее
- Assign issues to agents — тот же flow, применим и к squad assignees
@-mention agents in comments —@picker также показывает squads- Agents — что такое agent, building block каждого squad
- Members и roles — полная матрица owner / admin / member permissions