Multi-Agent Software Factory — Agents IA autonomes orchestrant le cycle de vie complet du produit
- Qu'est-ce que c'est ?
- Prérequis
- Installation
- Démarrage rapide
- Structure du projet
- Technologies utilisées
- Phases du cycle de vie
- Statut actuel
- Contribuer
Software Factory est une plateforme multi-agents autonome qui orchestre le cycle de vie complet du produit via des agents IA intelligents. De l'idéation au déploiement, elle coordonne des agents spécialisés gérant les personas, les exigences, la conception, le développement, les tests et l'amélioration continue.
Chaque agent est responsable d'une phase spécifique du cycle de vie et collabore de manière autonome pour livrer un produit de qualité.
- Python 3.10 ou supérieur
- Docker et Docker Compose
- Node.js 18+ (pour Playwright)
- pip (gestionnaire de paquets Python)
# Cloner le projet
git clone https://github.com/votre-repo/software-factory.git
cd software-factory
# Construire et lancer les services
docker-compose up --build# Cloner le projet
git clone https://github.com/votre-repo/software-factory.git
cd software-factory
# Créer un environnement virtuel
python -m venv venv
source venv/bin/activate # Linux/Mac
# ou
.\venv\Scripts\activate # Windows
# Installer les dépendances Python
pip install -r requirements.txt
# Installer les dépendances Node.js pour Playwright
npm install
npx playwright install --with-deps# Mode développement
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
# Mode production
uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4L'API sera accessible sur http://localhost:8000
La documentation Swagger est disponible sur http://localhost:8000/docs
# Exécuter tous les tests E2E
pytest tests/e2e/ -v
# Ou avec Playwright directement
npx playwright test
# Exécuter un test spécifique
npx playwright test tests/e2e/test_app.py --headedsoftware-factory/
├── app/
│ ├── __init__.py
│ ├── main.py # Point d'entrée FastAPI
│ ├── api/ # Routes et contrôleurs
│ │ ├── __init__.py
│ │ ├── agents.py # Endpoints des agents
│ │ └── projects.py # Endpoints projets
│ ├── agents/ # Implémentation des agents IA
│ │ ├── __init__.py
│ │ ├── base_agent.py # Classe de base
│ │ ├── persona_agent.py # Agent persona
│ │ ├── requirements_agent.py
│ │ ├── design_agent.py
│ │ ├── development_agent.py
│ │ ├── testing_agent.py
│ │ └── improvement_agent.py
│ ├── models/ # Modèles de données
│ │ ├── __init__.py
│ │ └── schemas.py
│ └── services/ # Services métier
│ ├── __init__.py
│ └── orchestrator.py # Orchestrateur principal
├── tests/
│ ├── __init__.py
│ ├── e2e/ # Tests E2E Playwright
│ │ ├── __init__.py
│ │ ├── conftest.py # Configuration pytest
│ │ ├── test_app.py # Tests principaux
│ │ └── pages/ # Page Objects
│ │ ├── __init__.py
│ │ └── app_page.py
│ └── unit/ # Tests unitaires
├── docker-compose.yml # Configuration Docker
├── Dockerfile # Image Docker
├── requirements.txt # Dépendances Python
├── package.json # Dépendances Node.js
├── pytest.ini # Configuration pytest
├── playwright.config.ts # Configuration Playwright
└── README.md # Ce fichier
| Technologie | Version | Usage |
|---|---|---|
| Python | 3.10+ | Langage principal |
| FastAPI | 0.104+ | Framework API REST |
| Uvicorn | Latest | Serveur ASGI |
| Pydantic | 2.x | Validation des données |
| Playwright | Latest | Tests E2E automatisés |
| pytest | 8.x | Framework de test |
| Docker | 24+ | Conteneurisation |
| Node.js | 18+ | Runtime pour Playwright |
┌─────────────────────────────────────────────────────────────────────┐
│ CYCLE DE VIE DU PRODUIT │
├─────────────┬─────────────┬─────────────┬─────────────┬────────────┤
│ PERSONA │ REQUIREMENTS │ DESIGN │ DEVELOPMENT │ TESTING │
│ AGENT │ AGENT │ AGENT │ AGENT │ AGENT │
├─────────────┴─────────────┴─────────────┴─────────────┴────────────┤
│ IMPROVEMENT AGENT │
│ (Amélioration continue) │
└─────────────────────────────────────────────────────────────────────┘
- Persona Agent — Définition des personas utilisateurs
- Requirements Agent — Spécification des exigences
- Design Agent — Conception de l'architecture
- Development Agent — Génération du code
- Testing Agent — Tests automatisés (Playwright E2E)
- Improvement Agent — Analyse et optimisation continues
| Phase | Statut | Description |
|---|---|---|
| Persona Agent | ✅ Terminé | Génération de personas utilisateur |
| Requirements Agent | ✅ Terminé | Extraction des exigences |
| Design Agent | ✅ Terminé | Conception architecturale |
| Development Agent | ✅ Terminé | Génération de code |
| Testing Agent | ✅ Terminé | Tests automatisés |
| Playwright E2E Execution | ✅ Terminé | Tests E2E fonctionnels |
| Improvement Agent | 🔄 En cours | Optimisation continue |
| Orchestrateur | ✅ Terminé | Coordination multi-agents |
- Tests E2E (Playwright) : ✅ Opérationnels
- Tests unitaires : ✅ Opérationnels
- Couverture API : ✅ Endpoints principaux testés
- Forkez le projet
- Créez une branche feature (
git checkout -b feature/nouvelle-fonctionnalite) - Committez vos changements (
git commit -am 'Ajout nouvelle fonctionnalité') - Pushsez sur la branche (
git push origin feature/nouvelle-fonctionnalite) - Ouvrez une Pull Request
Ce projet est sous licence AGPL v3 — voir le fichier LICENSE pour plus de détails.
Développé avec 🤖 par une équipe d'agents IA autonomes