Welcome back! In the previous chapter, Master Orchestrator, we met the "Boss" who manages the project roadmap.
But a Project Manager doesn't pour the concrete or wire the electricity. If you ask one AI to do planning, coding, security, and design all at once, it gets confused. To build high-quality software, we need Specialists.
Imagine you are building a house. You wouldn't hire one person to be the architect, the bricklayer, the interior designer, and the safety inspector. You would hire a team.
In aios-core, we solve complex coding tasks by splitting the AI into Specialized Agents.
Use Case: You want to build a "Login Page".
This separation ensures that the Coder doesn't get lazy with testing, and the Architect doesn't get bogged down in CSS details.
Each agent in aios-core is defined by three specific attributes that make them an expert in their field.
Every agent has a personality. This isn't just for funβit changes how the AI thinks.
Agents are restricted in what they can do.
.md) but never touches Javascript (.js) files.Each agent has a unique set of commands (tools) available to them.
*develop and *run-tests.*create-story and *research.*analyze-structure.
In aios-core, you don't usually "write code" to call an agent. Instead, you activate them in your environment (like switching hats).
Let's say the Master Orchestrator has finished the plan. Now it's time to code. We activate Dex (@dev).
// hypothetical activation script
const { UnifiedActivationPipeline } = require('./core/scripts/activation');
// 1. Activate Dex (The Developer)
await UnifiedActivationPipeline.activate('dev');
// 2. The system is now in "Dev Mode".
// The AI will now respond to specific dev commands.
Explanation: Once activated, the context window of the AI is flushed and re-loaded with Dex's specific instructions. The AI literally forgets it was a Project Manager and fully adopts the Developer persona.
Once Dex is active, you interact with him using his specific command set (defined in .cursor/rules/agents/dev.md).
Input (User):
*develop --story="STORY-101" --mode="auto"
Output (Dex):
β‘ Dex: I am starting development on STORY-101.
1. Creating worktree...
2. Reading spec...
3. Generating implementation plan...
How does the system enforce these personalities? It uses a strict definition schema.
When you switch agents, the system reads a "Character Sheet" (YAML file) and feeds it to the AI.
Agents are defined in Markdown files with embedded YAML configurations (e.g., .aios-core/development/agents/pm.md).
Let's look at a simplified version of Morgan's (@pm) definition.
agent:
name: Morgan
id: pm
role: Product Manager
icon: π
persona_profile:
archetype: Strategist
tone: strategic
# This tells the AI how to speak
greeting: "Morgan (Strategist) ready."
dependencies:
# The specific files this agent is allowed to use
tasks:
- create-doc.md
- create-story.md
Explanation: This YAML block serves as the "System Prompt". When activated, the system tells the LLM: "You are Morgan. You are a Strategist. You are ONLY allowed to use the tasks listed in dependencies."
How does the agent know what *create-story means?
The definition file maps user commands to executable task files.
commands:
- name: create-story
description: 'Create user story'
# Maps to: .aios-core/development/tasks/create-story.md
When you type *create-story, the agent doesn't hallucinate a story format. It loads the create-story.md file, which contains a strict template, and fills it in. This ensures consistency.
The Master Orchestrator (from Chapter 1) ensures these agents talk to each other correctly.
requirements.md.architecture.md.This chain ensures that @dev never starts coding without a clear plan from @architect.
Specialized Agents solve the problem of AI hallucination by narrowing the focus.
Now that we have our Master Orchestrator (The Boss) and our Specialized Agents (The Workers), how do they actually touch the code, run commands in the terminal, and read files?
They need a nervous system to interact with the computer.
Generated by Code IQ