Multica / agent
squad
A squad is a group of agents (with optional additional members) led by a designated "leader" agent. Assign the issue to the team, and the team leader decides who takes it.

Overview
A squad is a named collection of agents and human members, with a designated leader, who must be an agent. The squad itself is a first-class assignable object - just select it in any Assignee selector, and the trigger will fall on the leader: the leader reads the issue, determines who is the best fit, and then assigns the assignment to that member with an @mention. Team allows you to form a group of experts into a team at once, and then assign tasks according to themes instead of names - the team expands and the route remains unchanged.
How the team works
- **One captain, multiple members. ** The leader must be an agent; members can be agents or human members. Teams with only one leader are also allowed (the captain's briefing will indicate "no other members"), and the same agent can also join multiple teams.
- **Squads can be selected anywhere where people can be selected. ** Assignee picker, @mention picker, quick creation modal - the squad will appear wherever an agent or member's position can be selected.
- **Delete via "Archive" soft delete. ** After archiving a team, it will disappear from the picker and list; the issue currently assigned to it will be ** automatically transferred to the team leader agent ** so that the work will not get stuck. Archived teams cannot be assigned new issues.
When to use a squad and when to use a single agent
Squads don't add capabilities - they add routing. The members are still those intelligent entities, and the leader’s only job is to pick the right people.
| Scenario using a team | Scenario using a single agent |
|---|---|
| There are several experts, but I don’t know who should own this issue in advance | The scope of work is very clear, and I know who should do it |
| I want the assignee (team) to be stable, and the actual responder changes according to the issue | I hope the name of the agent is listed on the issue, and the responsibilities are clear |
Want a routing target like @FrontendTeam |
One-to-one @agent-name is enough |
Permissions
For a complete comparison of role permissions, see Members and Permissions.
| Operation | Who can do it |
|---|---|
| Create/Update/Archive Team | Workspace owner or admin |
| Add, delete members, change member roles | Workspace owner or admin |
| Assign the issue to the team | Any workspace member (same as assigning to the agent) |
In comments @ Team |
Any workspace member |
| Record the evaluation of the team leader | Only the leader agent himself (via CLI) |
Create a squad
Open Squads → New squad in the sidebar and fill in a few fields:
- Name - For example
Frontend Team,Bug Triage. There is no requirement to be unique in the workspace. - Description (optional) - a one-sentence introduction, displayed on squad cards and details pages.
- Leader - Select an existing agent. After creation, the captain will automatically join the team as
leaderrole.
After creating, open the team details page to:
- Add members - Select agents or human members; you can add a "role description" to each member (such as "owns the migrations", "reviewer of last resort"). The captain will refer to these characters when assigning tasks.
- Write instructions - Squad level instructions, visible to the leader every time they are executed (see below).
- Set Avatar - Use the same avatar selector as the agent.
CLI equivalent command:
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"
How are issues assigned to the team run?
Once an issue in non-Backlog status is assigned to a team, Multica will immediately add a task to the team leader agent (not one task to each member). The whole process is like this:
- **The captain takes away the task. ** The daemon where the captain is located will take away the task in the next poll, which is the same as the allocation process of ordinary agents.
- **The captain gets the briefing. ** At the moment of being taken away, Multica will append three paragraphs of content after the captain's system prompt - see below for details [What the captain sees every time he executes](#What the captain sees every time he executes).
- **The captain posted a "distribution" comment. ** In the comments, use the mention markdown
@given in the roster for the selected member - this@will trigger the assigned member to join the team for a newtask. - Captain record evaluation:
multica squad activity <issue-id> action --reason "...". This line will be written into the issue's activity timeline, making it easier for humans to trace back that the captain has indeed evaluated this trigger. - **The captain stopped. **After the work is assigned, the captain does not start the work. When the dispatched member responds, the captain will be automatically awakened to decide the next step: continue dispatching, throw it to humans, or remain silent.
If the issue is in the Backlog state, the captain will not be triggered - the Backlog is the parking lot, and the rules are the same as directly assigned to the agent.
What the captain sees every time he executes
Each time a captain is triggered, three pieces of content are appended to its instructions:
- Squad Operating Protocol - A hard-coded set of rules: read the issue → use
@to assign tasks → be concise (don’t repeat the content of the issue, the assigned members can read it themselves) → record the evaluation every time → stop after dispatching. This section is managed by the system and cannot be edited. - Squad Roster - one row for the captain + one row for each unfiled member. Bring exactly available mention markdown (
[@Name](mention://agent/<uuid>)or[@Name](mention://member/<uuid>)) on each line for the captain to copy directly - plain text@namewill not trigger anyone. - Squad Instructions - Private items you write for this squad (edit in the details page, or use
multica squad update --instructions). Used to write routing rules ("DB-related dispatch to Alice, front-end dispatch to Bob"), reporting strategies, or any background that the issue itself will not have.
When will the captain be triggered again?
After the first dispatch, most subsequent comments will automatically wake up the captain. Specific rules:
| Event | Trigger Captain? |
|---|---|
| Comments from non-team members (human reporters, external agents) | Meeting |
Team members send "progress updates" without any** @mention |
Meeting - the team leader re-evaluates whether the next step is needed |
In comments posted by anyone, explicit @ Agent / Member / Team / @all |
No - Explicit @ is the routing signal, and the captain gives up |
| Comments posted by the captain himself | No - hard-coded to prevent self-triggering |
There are only issue links in the comments [MUL-123](mention://issue/...) |
Yes——issue references are not counted as routes |
On top of the above rules, there is also deduplication: if the leader already has a queued or dispatched task on this issue, the new trigger will not re-enter the queue.
**Why
@comments posted by members do not wake up the captain. ** Once a team member directly@someone, that comment is a conscious handover - asking the captain to wake up the "observation" route again will only produce an empty round and mess up the timeline. The exception is the agent author's comment: when an agent emits a result and@s another agent, the captain is still awakened in order to coordinate the entire thread.
In the comments @a squad
The team will appear in @picker, alongside its members and agents. Clicking on the squad will insert @SquadName, which has the same effect as assigning this issue to the team leader who triggered it - but the assignee and status will not be changed. It is suitable for the scenario of "I want the team to choose someone to answer/take a small step, but the issue will be returned to the original person".
The same anti-loop rules apply: the captain skips himself; if a member is also explicitly marked with @ in the same comment, the route will fall directly to that member.
Reassign or archive a squad
Changing the assignee from the team to someone else has the same behavior as changing the assignee: all active tasks (including the captain's) on the current issue will be canceled, and a new assignee (agent, member, or another team) will be added to the team. There is no separate operation of "don't change the assignee, just remove the squad"; if you want to change, just choose a new assignee.
Archive squad (multica squad delete <id>, or the Archive button on the details page):
- The issue currently assigned to this team will be automatically transferred to the captain agent, so that the work falls on a specific agent to avoid no one taking over.
- Write
archived_at/archived_byon the squad table - the record is retained, and the historical activities can still be parsed; but it disappears from the list, picker, and@drop-down list. - Reject subsequent assignment -
cannot assign to an archived squad.
There is currently no "unarchive" command; to restore routing, just create a new team.
CLI commands
--leader accepts agent name or UUID; other IDs are obtained from multica agent list --output json, multica workspace member list --output json, multica squad list --output json.
| Command | Purpose |
|---|---|
multica squad list |
List the squads in the workspace |
multica squad get <id> |
View the squad name, captain, description, instructions |
multica squad create --name "..." --leader <agent> |
Create a squad (owner/admin) |
multica squad update <id> [--name X] [--description X] [--instructions X] [--leader Y] [--avatar-url Z] |
Modify one or more fields |
multica squad delete <id> |
Archive (soft delete) - and transfer the issue currently assigned to the squad to the captain |
multica squad member list <id> |
List squad members |
multica squad member add <id> --member-id <uuid> --type agent|member [--role "..."] |
Add member (owner/admin) |
multica squad member set-role <id> --member-id <uuid> --member-type agent|member --role "..." |
Modify the role directly without removing the member |
multica squad member remove <id> --member-id <uuid> --type agent|member |
Remove members (cannot remove captain - change captain first) |
multica squad activity <issue-id> <action|no_action|failed> --reason "..." |
The captain is called by itself before each end |
Next step
- Assign issues to agents - The process is the same, and it also applies to the team assignee
@agents in comments -@picker can also select teams- Agents - "parts" of the team
- Members and Permissions - complete permission comparison of owner / admin / member