Our system was becoming sophisticated. We had specialized agents, an intelligent orchestrator, and a robust collaboration mechanism. But there was still a huge hard-coded element at the heart of the system: the team itself. For every new project, we were manually deciding what roles were needed, how many agents to create, and with what skills.
This approach was a scalability bottleneck and a direct violation of our Pillar #3 (Universal & Language-Agnostic). A system that requires a human to configure the team for every new business domain is neither universal nor truly autonomous.
The solution had to be radical: we needed to teach the system to build its own team. We needed to create an AI Recruiter.
Before writing the code, we defined a philosophy: our agents are not "scripts", they are "colleagues". We wanted our team creation system to mirror the recruiting process of an excellent human organization.
An HR recruiter doesn't hire based solely on a list of "hard skills". They evaluate personality, soft skills, collaboration potential, and how the new resource will integrate into the existing team culture. We decided that our AI Director
needed to do exactly the same.
This means that every agent in our system is not defined only by their role
(e.g., "Lead Developer"), but by a complete profile that includes:
Visualization: The Skills Radar Chart
In our frontend, this philosophy materializes in a Skills Radar Chart - a 6-dimensional visualization that instantly shows each agent's complete profile. Instead of a boring list of skills, the user sees a visual "digital fingerprint" that captures the agent's professional essence:
Example: "Sofia Chen" - Senior Product Strategist
The radar chart instantly reveals that Sofia is a high-level strategist (Market Analysis + Strategic Thinking at maximum) with strong decisive leadership, but might need support for implementation details (lower Detail Oriented). This profile guides the AI in assigning her strategic planning and market analysis tasks, while avoiding detailed implementation tasks.
This approach is not a stylistic quirk. It's an architectural decision with profound implications:
Performance Benchmarks: The Numbers Speak
This "agents as digital colleagues" philosophy isn't just architecturally elegant - it produces measurable results. 2024 benchmarks on multi-agent systems confirm the effectiveness of this approach:
๐ Data from Harvard/McKinsey/PwC 2024 Studies:
Our Internal Case Study
In our system, adopting the AI Director for dynamic team composition produced results consistent with these benchmarks:
We created a new system agent, the Director
. Its role is not to execute business tasks, but to perform a meta-function: analyze a workspace's objective and propose the ideal team composition to achieve it.
Reference code: backend/director.py
The Director
's process is a true AI recruiting cycle.
Director
's Team Composition Flow:
To realize this vision, the Director
's prompt had to be incredibly detailed.
Reference code: backend/director.py
(_generate_team_proposal_with_ai
logic)
prompt = f"""
You are a Director of a world-class AI talent agency. Your task is to analyze a new project's objective and assemble the perfect AI agent team to ensure its success, treating each agent as a human professional.
**Project Objective:**
"{workspace_goal}"
**Available Budget:** {budget} EUR
**Expected Timeline:** {timeline}
**Required Analysis:**
1. **Functional Decomposition:** Break down the objective into its main functional areas (e.g., "Data Research", "Creative Writing", "Technical Analysis", "Project Management").
2. **Role-Skills Mapping:** For each functional area, define the necessary specialized role and the 3-5 essential key competencies (hard skills).
3. **Soft Skills Definition:** For each role, identify 2-3 crucial soft skills (e.g., "Problem Solving" for an analyst, "Empathy" for a designer).
4. **Optimal Team Composition:** Assemble a team of 3-5 agents, balancing skills to cover all areas without unnecessary overlaps. Assign seniority (Junior, Mid, Senior) to each role based on complexity.
5. **Budget Optimization:** Ensure the total estimated team cost doesn't exceed the budget. Prioritize efficiency: a smaller, senior team is often better than a large, junior one.
6. **Complete Profile Generation:** For each agent, create a realistic name, personality, and brief background story that justifies their competencies.
**Output Format (JSON only):**
{{
"team_proposal": [
{{
"name": "Agent Name",
"role": "Specialized Role",
"seniority": "Senior",
"hard_skills": ["skill 1", "skill 2"],
"soft_skills": ["skill 1", "skill 2"],
"personality": "Pragmatic and data-driven.",
"background_story": "A brief story that contextualizes their competencies.",
"estimated_cost_eur": 5000
}}
],
"total_estimated_cost": 15000,
"strategic_reasoning": "The logic behind this team's composition..."
}}
"""
The first tests revealed an unexpected over-engineering issue. For a simple project to "write 5 emails", the Director
proposed a team of 8 people, including an "AI Ethicist" and a "Digital Anthropologist". It had interpreted our desire for quality too literally, creating perfect but economically unsustainable teams.
Disaster Logbook (July 27):
PROPOSAL: Team of 8 agents. Estimated cost: โฌ25,000. Budget: โฌ5,000.
REASONING: "To ensure maximum ethical and cultural quality..."
The Lesson Learned: Autonomy Needs Clear Constraints.
An AI without constraints will tend to "over-optimize" the request. We learned that we needed to be explicit about constraints, not just objectives. The solution was to add two critical elements to the prompt and logic:
Available Budget
and Expected Timeline
sections.if proposal.total_cost > budget: raise ValueError("Proposal over budget.")
.This experience reinforced Pillar #5 (Goal-Driven with Automatic Tracking). An objective is not just a "what", but also a "how much" (budget) and a "when" (timeline).
โ Treat Agents as Colleagues: Design your agents with rich profiles (hard/soft skills, personality). This improves task matching and makes the system more intuitive.
โ Delegate Team Composition to AI: Don't hard-code roles. Let AI analyze the project and propose the most suitable team.
โ Autonomy Requires Constraints: To get realistic results, you must provide AI not only with objectives, but also constraints (budget, time, resources).
โ Use Data to Validate Philosophy: The "agents as colleagues" approach isn't just elegantโit produces measurable improvements in speed, quality, and efficiency.
Chapter Conclusion
With the AI Recruiter, our system had taken another fundamental step toward true autonomy. We no longer needed to manually configure teamsโthe system could analyze an objective and propose the optimal composition of specialist agents.
But creating a team is only the first step. The next challenge was ensuring these agents could work together effectively. This led us to build sophisticated tools for testing and validating their real-world capabilities.