Agentic Teams
Teams of specialist agents that take an objective, plan it and run it.
Maturity: Beta. Statements on this page were traced to QuoxCORE code on 2026-10-30.
| At a glance | |
|---|---|
| What it is | Teams of specialist agents. You give a team an objective, an orchestrator agent breaks it into tasks, and the tasks run as a workflow. |
| Where it runs | In the tasks service on your QuoxCORE server. Each organisation's teams, objectives and schedules are separate. |
| When to reach for it | You have a goal that needs several specialists, or work that should repeat on a schedule, with approval points you control. |
| How to start | Install the demo pack (a quoxcore team and a secops team), then submit an objective to a team. |
What a team is
A team is a named group of agents with an orchestrator, members and policies. It is defined by a JSON manifest, so a team can be exported from one QuoxCORE server and installed on another.
{
"id": "secops",
"type": "team",
"version": "1.0.0",
"displayName": "SecOps team",
"orchestrator": { "agentId": "sentinel", "domains": ["security"] },
"members": [
{ "agentId": "nova", "role": "specialist", "domains": ["network"] },
{ "agentId": "cipher", "role": "specialist", "domains": ["cryptography"] }
],
"policies": {
"requireApprovalBeforeStart": true
}
}
A team also has a topology, which shapes how the orchestrator plans the work:
| Topology | Plan shape |
|---|---|
| Star (default) | Independent tasks, one per specialist, run in parallel. |
| Hierarchical | Work packages handed to sub-orchestrators. |
| Pipeline | Sequential stages, each finishing before the next. |
| Mesh | Cross-referencing tasks with a final synthesis. |
Objectives and how they run
An objective is a goal submitted to a team. The orchestrator decomposes it into tasks with dependencies between them. The objective then runs as a QuoxFlow workflow, with each task as an agent step in the order its dependencies allow. See Workflows for the engine underneath, and QuoxEngine for decomposition and performance scoring.
An objective moves through these states: pending, decomposed, running, then completed. A task finishes as completed, failed or skipped, and the final status of the objective is decided from those outcomes.
If the team has requireApprovalBeforeStart set, the objective waits for a person to start it after decomposition.
Cancelling marks an objective cancelled. To stop an agent that is actively running, use the emergency stop or DEFCON (see DEFCON), which halt execution at the safety gate.
Schedules
A schedule creates an objective for a team on a cron expression and timezone.
| Preset | Cron |
|---|---|
| Every hour | 0 * * * * |
| Daily at 09:00 | 0 9 * * * |
| Weekdays at 09:00 | 0 9 * * 1-5 |
| Weekly on Monday at 09:00 | 0 9 * * 1 |
| Monthly on the 1st | 0 9 1 * * |
- Auto-disable. After a run of consecutive failures (3 by default, set per schedule with
maxConsecutiveFailures), the schedule disables itself. - Approval. A scheduled objective stops at
decomposedunless the team hascanStartWithoutApprovalset. Without it, a person starts the run. - Overlap. The
allowOverlappolicy controls whether a schedule may start a run while its previous run is still going. - Daily limits. Scheduled runs honour a daily run limit, checked when a run starts. Limits count per calendar day in UTC:
maxDailyTokens,maxDailyToolCallsandmaxUnattendedObjectives. With no limit set, there is no cap.
Team rooms
Creating or installing a team provisions a chat room for it, so people can follow the team's work in the same place they talk to it.
Export and install
Export a team as a manifest and install it on another server. A pack bundles several teams for one install: the demo pack contains a quoxcore team and a secops team.
API
All routes are on the tasks service and need an authenticated session. Request bodies use snake_case for objectives (team_id, not teamId).
| Method | Path | Purpose |
|---|---|---|
| GET | /api/teams | List installed teams |
| GET | /api/teams/:teamId | Get one team |
| POST | /api/teams/create | Create a team (displayName, orchestratorAgentId, members, policies) |
| POST | /api/teams/install | Install a team from { manifest } |
| POST | /api/teams/install-pack | Install a pack from { packManifest, teamManifests } |
| PATCH | /api/teams/:teamId | Update a team |
| DELETE | /api/teams/:teamId | Remove a team |
| GET | /api/teams/:teamId/export | Export a team manifest |
| GET, POST | /api/teams/:teamId/schedules | List or create schedules |
| PATCH, DELETE | /api/teams/:teamId/schedules/:id | Update or delete a schedule |
| POST | /api/teams/:teamId/schedules/:id/toggle | Enable or disable a schedule |
| POST | /api/teams/:teamId/schedules/:id/trigger | Run a schedule now |
| GET, POST | /api/objectives | List or create objectives |
| POST | /api/objectives/:id/start | Start an objective |
Creating an objective for a team:
{
"title": "Review web-01 firewall rules",
"team_id": "secops",
"require_approval_before_start": true
}
Limits
- Scheduled runs honour a daily run limit, checked when a run starts. That is the only limit this page describes.
- Daily limits apply to scheduled runs only. Objectives you submit by hand are not checked against them.
- Cancelling marks an objective cancelled. To stop an agent that is actively running, use the emergency stop or DEFCON (see DEFCON), which halt execution at the safety gate.
- Agent assignment is made by the orchestrator. The learning router can override it, but it needs a QuoxMind edition: see the store.
- Exporting a team exports that team. There is no whole-pack export.
Related
- Agents: the agents that fill a team.
- DEFCON: halting execution.
- Workflows: the engine objectives run on.
- QuoxMind: the learning router edition.
- QuoxEngine: decomposition and performance scoring.
- Store: editions.
Last verified 2026-10-30 against QuoxCORE origin/main (tasks service).