The crew
Agents & isolation
Brigade ships with one default agent called main. Add more, and each agent is fully isolated: its own workspace (persona files), auth profiles, exec allowlist, sessions, memory, and optional channel routing bindings.
What "isolated" means#
By design, agents do not bleed into each other:
- Agent A cannot read agent B's session transcripts unless visibility is widened beyond
self. - Agent A cannot send to agent B's session unless the A2A (agent-to-agent) policy permits it.
- Memory facts are per-agent and origin-scoped — they do not bleed between agents.
- Provider credentials are per-agent — e.g.
supportandprod-botcan use different accounts.
The default policy is visibility: "self" — an agent only sees its own sessions. Switch to "tree" to let a parent see the sub-agents it spawned.
Adding an agent#
Each new agent gets its own directory under ~/.brigade/agents/<id>/. Without --workspace it defaults to ~/.brigade/agents/<id>/workspace/.
$ brigade agents # list every agent (default)$ brigade agents list --json --bindings$ brigade agents add support # create an isolated agent$ brigade agents add support --model claude-opus-4-7 --provider anthropic$ brigade agents delete support --forcePersona & identity#
An agent's persona comes from a set of UPPERCASE markdown files in its workspace — SOUL.md, IDENTITY.md, AGENTS.md, USER.md, TOOLS.md, BOOTSTRAP.md, and HEARTBEAT.md. The system prompt is assembled from these each turn, alongside eligible skills and org context. Set the display identity (name, theme, emoji, avatar) without touching files:
$ brigade agents set-identity --agent support --name "Support" --emoji "🛟"Channel bindings#
A binding claims a channel-account routing slot for an agent, so inbound messages on that account reach that agent. A binding <spec> is "<channel>" or "<channel>:<accountId>".
$ brigade agents bind --agent support --bind "whatsapp:work"$ brigade agents unbind --agent support --all$ brigade agents bindings --agent supportCrew tools#
From inside a turn, agents coordinate the crew through tools, all owner-gated. See Tools for the full gate posture.
| Tool | Purpose |
|---|---|
agents_list | Enumerate configured agents |
manage_agent | Create / configure an agent (owner-only) |
spawn_agent · spawn_agents | Delegate to child agents — see Sub-agents |
sessions_send · sessions_spawn · sessions_list · sessions_history | Cross-session messaging, gated by visibility + A2A policy |
org | Inspect / mutate the org chart when cfg.org is set |
One owner, a whole crew