How to Implement Custom Agent Teams in aios-core: Complete Developer Guide
You implement custom agent teams by creating YAML bundle files in the .aios-core/development/agent-teams/ directory, defining agents, workflows, and quality gates, then referencing the team identifier in your story files to automatically load the configured automation pipeline.
The SynkraAI/aios-core framework organizes AI agents into reusable teams that enforce specific quality gates and automation workflows. When you implement custom agent teams, you create modular YAML specifications that the installer discovers automatically and the CLI activates during story execution.
Understanding the Agent Team Architecture
Canonical Directory Location
Agent teams reside in the .aios-core/development/agent-teams/ directory. While the logical name agent-teams can resolve to a top-level folder, the canonical location is under development/ to align with the framework's structure (e.g., development/agents/, development/skills/).
According to the source code in packages/installer/src/installer/aios-core-installer.js, the installer maps the logical path agent-teams to development/agent-teams during the resolution phase.
How the Installer Discovers Teams
The framework uses the .aios-core/install-manifest.yaml to track team definitions. The installer reads every *.yaml file under the resolved agent-teams folder and registers the team in the internal registry:
# .aios-core/install-manifest.yaml (excerpt)
- path: development/agent-teams/team-all.yaml
- path: development/agent-teams/team-fullstack.yaml
- path: development/agent-teams/team-qa-focused.yaml
When you run npm run install or aios install, the new team becomes available immediately without manual registry updates.
Structure of a Custom Agent Team YAML
A team bundle is a single YAML file containing several top-level sections. The framework validates these sections during the setup phase.
Core Sections
bundle: Human-readable metadata includingname,icon, anddescription.agents: List of agent identifiers (e.g.,dev,qa,github-devops) that belong to the team.workflows: Paths relative to.aios-core/workflows/that the team executes automatically.tasks: Paths relative to.aios-core/tasks/for ad-hoc invocations.purpose: Free-form text describing the team's objective.when_to_use: Bullet list of specific lifecycle moments (e.g., "Before marking stories Ready for Review").
Quality Gates and Integrations
quality_gates: Structured checks forpre_commit,pre_pr,pre_merge, andpre_deployment. Each gate specifies thetrigger,agent,checks(commands), andthreshold(pass criteria).coderabbit_integration: Optional configuration for CodeRabbit scans (e.g.,enabled: true).
Step-by-Step Guide to Implement Custom Agent Teams
Step 1: Create the Team Definition File
Navigate to .aios-core/development/agent-teams/ and create a new YAML file. Use a descriptive prefix like team- followed by your team purpose:
touch .aios-core/development/agent-teams/team-dev-ops.yaml
Step 2: Define Agents and Workflows
Edit the YAML file to include the bundle metadata and list the agents your team requires. Reference existing workflow files from the .aios-core/workflows/ directory:
bundle:
name: Team DevOps
icon: 🚀
description: Automates CI/CD pipelines and deployment safety checks.
agents:
- github-devops
- devops
workflows:
- ci-pipeline.yaml
- deploy-safety.yaml
Step 3: Configure Quality Gates
Add the quality_gates section to enforce automated checks at specific lifecycle points. Define the triggering agent, the commands to run, and the success threshold:
quality_gates:
pre_pr:
trigger: Before creating PR
agent: github-devops
checks:
- coderabbit --prompt-only --base main
- npm run lint
- npm test
threshold: 0 CRITICAL, lint PASS, tests PASS
Step 4: Register and Activate the Team
Save the file and run the installer to register the team in the framework's internal registry:
npm run install
# or
aios install
Once installed, reference the team in any story YAML file using the team key:
team: team-dev-ops
When you execute aios start <story-name>, the CLI automatically loads the associated agents, executes the defined workflows, and injects the quality gate checks into the story lifecycle.
Practical Code Examples
Minimal DevOps Team Configuration
This complete example demonstrates a production-ready team bundle located at .aios-core/development/agent-teams/team-dev-ops.yaml:
bundle:
name: Team DevOps
icon: 🚀
description: Automates CI/CD pipelines and deployment safety checks.
agents:
- github-devops
- devops
workflows:
- ci-pipeline.yaml
- deploy-safety.yaml
tasks:
- infra-provision.md
purpose: |
Provides end-to-end automation for continuous integration, delivery,
and post-deployment validation.
when_to_use:
- After a story reaches "Ready for Review"
- During PR creation
- Before production deployment
quality_gates:
pre_pr:
trigger: Before creating PR
agent: github-devops
checks:
- coderabbit --prompt-only --base main
- npm run lint
- npm test
threshold: 0 CRITICAL, lint PASS, tests PASS
Referencing Teams in Story Files
To activate a team for a specific story, add the team key to the story YAML:
# .aios-core/stories/feature-login.yaml
title: "Login UI"
team: team-dev-ops # matches the file name without the .yaml extension
steps:
- description: "Implement login page"
owner: dev
status: pending
When you run aios start feature-login, the CLI will:
- Load the
github-devopsanddevopsagents. - Execute
ci-pipeline.yamlanddeploy-safety.yamlat the appropriate gates. - Enforce the
pre_prquality gate defined in the team.
Verifying Team Registration via CLI
After installation, confirm your team is available:
$ aios teams list
Available agent teams:
• team-all
• team-fullstack
• team-ide-minimal
• team-no-ui
• team-qa-focused
• team-dev-ops ← your custom team
The teams list command reads the registry built by the installer, which scans the agent-teams directory defined in packages/installer/src/installer/aios-core-installer.js.
Summary
- Location matters: Place custom team YAML files in
.aios-core/development/agent-teams/to align with the framework's canonical structure. - Installer automation: The
aios-core-installer.jsmaps the logical pathagent-teamsto the development directory and auto-discovers new YAML files duringnpm run install. - Required structure: Every team needs a
bundlesection (metadata) andagentslist; optionally includeworkflows,tasks,quality_gates, andcoderabbit_integration. - Activation: Reference the team filename (without extension) in story YAML files using the
teamkey, then runaios startto load agents and enforce gates automatically.
Frequently Asked Questions
What is the difference between .aios-core/agent-teams/ and .aios-core/development/agent-teams/?
The canonical location is .aios-core/development/agent-teams/. According to the installer logic in packages/installer/src/installer/aios-core-installer.js, the logical name agent-teams resolves to the development/agent-teams subdirectory. While creating a top-level agent-teams folder may work due to path aliasing, placing files under development/ ensures compatibility with the framework's directory conventions and documentation references.
Can I reference multiple agent teams in a single story?
No, the story YAML specification supports a single team key per story. When you declare team: team-name, the CLI loads that specific team's agents, workflows, and quality gates into the story lifecycle. If you need capabilities from multiple teams, you should create a composite team YAML that includes the union of agents and workflows from both teams, or refactor your teams to be more inclusive.
How do quality gates enforce checks automatically?
Quality gates defined in the quality_gates section (such as pre_pr, pre_merge, or pre_deployment) specify a trigger condition, an agent responsible for execution, and a list of checks (shell commands or scripts). When the story reaches the corresponding lifecycle phase—for example, before creating a PR—the CLI invokes the specified agent to run the checks. The threshold field defines pass criteria (e.g., "0 CRITICAL, lint PASS"), and the story cannot proceed until these criteria are met.
Is CodeRabbit integration mandatory for custom agent teams?
No, the coderabbit_integration section is optional. You can create fully functional custom teams without enabling CodeRabbit scans. When present, this section typically contains an enabled: true flag and optional configuration parameters that trigger CodeRabbit analysis during quality gate execution. Teams focused on local development or internal tooling may omit this section entirely while still leveraging all other framework features like custom workflows and agent orchestration.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →