Crews — Multi-Agent Collaboration
A Crew is a team of agents working together toward a shared goal. One agent decomposes the work, others execute their specialisations, and a reviewer validates the results before synthesis.
Scenario: A PR agency uses a 3-agent crew to produce press releases. The Coordinator decomposes the brief, a Copywriter drafts the release, a Fact Checker reviews claims, and the Coordinator synthesises the final approved version.
Crew member roles
| Role | Responsibility |
|---|---|
| coordinator | Decomposes the goal into tasks and synthesises the final result. Every crew has exactly one coordinator. |
| worker | Executes assigned tasks. The workhorse of the crew. |
| qa | Validates output quality. Can request revisions before the coordinator synthesises. |
Per-member permission policies
Each crew member can be given an individual policy that constrains what the agent is allowed to do during
execution. Policies are stored in the member's config
JSONB field and enforced by CrewOrchestrator at runtime.
| Field | Description |
|---|---|
| tool_allowlist | Array of tool IDs the agent may use. If set, the agent cannot call tools outside this list. |
| max_steps | Maximum number of execution steps allowed for this member in a single crew run. |
| max_credits | Credit budget cap for this member. Execution stops when the member's spend reaches this limit. |
// POST /api/v1/crews (or PUT /api/v1/crews/CREW_ID)
{
"name": "PR Agency Crew",
"members": [
{
"agent_id": "agt_01jq...",
"role": "worker",
"workerConstraints": {
"tool_allowlist": ["tool_web_search", "tool_fetch_url"],
"max_steps": 20,
"max_credits": 500
}
}
]
}
Process types
Sequential
Agents execute one at a time. Each agent receives the previous agent's output. Predictable, auditable, but slower.
Parallel
All agents execute simultaneously on independent sub-tasks. Fastest option. Results merged by the coordinator.
Hierarchical
Tree structure. The coordinator assigns sub-tasks to workers who may delegate further. Best for complex, decomposable goals.
Running a crew
From the crew detail page, click Execute or navigate to
/crews/{id}/execute.
Provide a goal and optional context. The crew starts immediately.
curl -X POST https://fleetq.169.58.89.204.sslip.io/api/v1/crews/CREW_ID/execute \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"goal": "Write a press release for our Series B funding announcement",
"context": "Amount: $12M. Lead investor: Acme Ventures. Use case: AI for e-commerce."
}'
Under the hood: CrewOrchestrator
The CrewOrchestrator runs a 4-step loop:
DecomposeGoal
Execute tasks
ValidateTaskOutput
SynthesizeResult
Crew artifacts
Each crew execution automatically collects artifacts from task outputs via CollectCrewArtifactsAction.
View and download artifacts from the execution detail page.
MCP tools
| Tool | Purpose |
|---|---|
| crew_list | List crews with filtering |
| crew_get | Get crew details including members |
| crew_create | Create a new crew with members |
| crew_update | Update crew configuration |
| crew_execute | Start a crew execution |
| crew_execution_status | Check execution progress |
| crew_executions_list | List past executions |
API endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/crews | List crews |
| GET | /api/v1/crews/{id} | Get crew details |
| POST | /api/v1/crews | Create crew |
| PUT | /api/v1/crews/{id} | Update crew |
| DELETE | /api/v1/crews/{id} | Delete crew |
| POST | /api/v1/crews/{id}/execute | Start execution |
| GET | /api/v1/crews/{id}/executions | List executions |
| GET | /api/v1/crews/{id}/executions/{eid} | Execution detail |