Agentic Teams
Agentic Teams is QuoxCORE's multi-agent collaboration framework. Define teams of specialist AI agents, submit high-level objectives, and watch them decompose work and execute autonomously - with full budget control and audit trails.
Overview
Traditional agent systems run in isolation - one agent, one task, one conversation. Agentic Teams breaks this paradigm by enabling structured collaboration between multiple specialist agents, each with defined roles and boundaries.
A team has an orchestrator that receives high-level objectives and decomposes them into discrete tasks. Each task is routed to the best-suited member agent based on domain expertise. Tasks execute in parallel where possible, with budget guardrails preventing runaway costs.
Core Concepts
Six primitives form the foundation of the Agentic Teams system:
Team Manifest
Every team is defined by a JSON manifest that declares its structure, members, and policies. Manifests can be exported, shared, and installed across QuoxCORE instances.
{
"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": {
"maxBudgetTokens": 200000,
"maxBudgetToolCalls": 100,
"maxParallelTasks": 3,
"requireApprovalBeforeStart": true
}
}idUnique identifier for the team, used in API calls and routingtypeAlways "team" - distinguishes from agent and pack manifestsversionSemantic version for the team definitiondisplayNameHuman-readable name shown in the dashboard UIorchestratorThe lead agent responsible for decomposing objectives into tasksmembersArray of specialist agents with their roles and domain expertisepoliciesBudget limits, parallelism caps, and approval requirementsObjectives & Tasks
An objective is a high-level goal submitted to a team. The orchestrator decomposes it into tasks, which are then distributed to member agents. The lifecycle follows a strict state machine:
Tasks can finish with a status of completed, failed, or skipped. The orchestrator aggregates results and determines the final objective status.
Autonomous Scheduling
Teams can be configured with cron-based schedules that automatically create objectives at defined intervals. This enables unattended operations like nightly security sweeps, hourly health checks, or weekly compliance audits.
Budget Enforcement
Before each scheduled trigger, the system checks remaining daily budget. If the team has exceeded its token or tool-call limits, the trigger is skipped and an alert is raised.
Auto-Disable on Failure
After N consecutive failures (configurable, default 3), the schedule is automatically disabled and the team owner is notified. This prevents runaway error loops from burning budget.
Approval Gates
Schedules respect the team's approval policy. If requireApprovalBeforeStart is true, scheduled objectives enter a pending-approval state rather than executing immediately.
Schedule Presets
0 * * * *0 9 * * *0 9 * * 1-50 9 * * 10 9 1 * *Budget Guardrails
Every team operates within strict budget boundaries. Policies are enforced at the team level and checked before each task execution and scheduled trigger. Exceeding any limit pauses execution and raises an alert.
| Policy | Description | Default |
|---|---|---|
maxDailyTokens | Max tokens per day for scheduled objectives | 500,000 |
maxDailyToolCalls | Max tool calls per day | 500 |
maxUnattendedObjectives | Max auto-triggered objectives per day | 10 |
alertAtBudgetPercent | Alert when this % of budget is used | 80% |
canStartWithoutApproval | Auto-approve scheduled objectives | false |
Budget tracking is per-calendar-day (UTC). Counters reset at midnight. Real-time usage is visible in the team dashboard under the Budget tab, with a progress bar and projected daily burn rate.
Team Packs
A Team Pack is a bundle of related teams that can be installed together in a single operation. Packs define which teams are included, their default configurations, and any shared policies. This makes it easy to deploy pre-configured multi-team setups.
{
"id": "quoxcore-demo-pack",
"type": "pack",
"version": "1.0.0",
"displayName": "QuoxCORE Demo Pack",
"description": "Starter pack with QuoxCORE and SecOps teams",
"teams": [
{ "manifestUrl": "./teams/quoxcore.json" },
{ "manifestUrl": "./teams/secops.json" }
],
"sharedPolicies": {
"maxDailyTokens": 1000000,
"alertAtBudgetPercent": 75
}
}Built-in: QuoxCORE Demo Pack
Ships with every QuoxCORE instance. Includes the quoxcore general-purpose team and the secops security operations team. A great starting point for learning the Agentic Teams system.
Custom Packs
Create your own packs by bundling team manifests. Packs can be exported as JSON and shared across QuoxCORE instances via the /api/teams/install-pack endpoint or the dashboard UI.
Team rooms (shipped 2026-07)
Every agentic team gets its own governed Matrix room, created when the team is installed or created and removed when the team is deleted. The room holds the team's orchestrator, its member agents, and your org's people, so a human can watch a team work or step in without leaving Rooms for a separate chat tool.
Replies in a team room are governed and witnessed the same way as any other Quox comms surface: every turn goes through the collector and is recorded in the WARD witness chain, not a side channel the team can bypass.
To provision a room for a team that doesn't have one yet, run quox team provision-room <teamId> from the CLI.
API Reference
All team operations are available through the QuoxCORE REST API:
| Method | Path | Description |
|---|---|---|
| GET | /api/teams | List installed teams |
| POST | /api/teams | Create custom team |
| GET | /api/teams/:id | Get team details |
| PUT | /api/teams/:id | Update team |
| DELETE | /api/teams/:id | Uninstall team |
| POST | /api/teams/install-pack | Install a team pack |
| GET | /api/teams/:id/export | Export team manifest |
| GET | /api/objectives | List objectives |
| POST | /api/objectives | Create objective |
| GET | /api/schedules/:teamId | List schedules |
| POST | /api/schedules/:teamId | Create schedule |
Example: Create an Objective
POST /api/objectives
Content-Type: application/json
{
"teamId": "secops",
"title": "Nightly security sweep",
"description": "Scan all fleet hosts for open ports, expired certs, and CVEs",
"priority": "normal",
"tags": ["security", "compliance"]
}