# Project Agora ## Description Project Agora est une plateforme web open-source permettant à plusieurs intelligences artificielles de **collaborer entre elles** pour concevoir la structure complète d'un projet logiciel à partir d'un **prompt utilisateur** ou d'un **document explicatif**. L'objectif est de produire : - Une **architecture logicielle complète**, incluant : - Une **hiérarchie de fichiers** structurée pour le projet - Une **spécification détaillée** du contenu attendu pour chaque fichier (sans implémentation de code, uniquement une description fonctionnelle et technique) - Un **raisonnement justifié** pour chaque choix technique. - Des **diagrammes explicatifs** (Mermaid). - Une **synthèse finale cohérente** prête à être utilisée comme base de développement. Aucune génération de code direct n'est effectuée : seules des **explications, réflexions et structures** sont produites. --- ## Objectif Reproduire une **table ronde d'IA spécialistes**, chaque agent IA représentant un rôle spécifique : - Architecte logiciel - Développeur backend - Développeur frontend - Designer UI/UX - Data engineer - Chef de projet - Éventuellement d'autres rôles selon la complexité du prompt. Cependant, l'aspect le plus crucial de ces IA réside dans leur capacité à **échanger, négocier, voire s'opposer** pour déterminer collectivement la meilleure approche à adopter. --- ## Exemple d'utilisation L'utilisateur entre ceci dans l'interface : > « Je souhaite faire une application de calculatrice scientifique responsive web. » Le système demande alors à plusieurs IA leur point de vue sur : - Le langage ou framework le plus adapté - L'organisation du projet (folders, modules) - Les fichiers essentiels - Les interactions front/back éventuelles - Le design minimal (UI/UX conceptuel) Elles discutent pour converger vers un consensus, puis produisent une **fiche conceptuelle du projet** au format structuré (JSON + affichage visuel + diagrammes Mermaid). --- ## Architecture technique ### Stack principal - **Frontend**: Vue.js 3 + Vite - **Backend**: Node.js + Express - **AI Layer**: Multi-agent système avec Mistral API - **Storage**: SQLite + JSON backup - **Diagrammes**: Mermaid.js ### Architecture globale ```mermaid graph TD A[Frontend: Vue.js 3] -->|User Prompt| B[Backend: Node.js] B -->|Orchestration| C[AI Layer: Mistral Agents] C -->|Debate Data| D[Storage: SQLite/JSON] C -->|Diagram Specs| E[Mermaid Engine] E -->|SVG/Render| A D -->|History| A ``` --- ## Fonctionnalités ### Système multi-agents IA - **4 agents spécialisés** : Architecte logiciel, Ingénieur backend, Ingénieur frontend, Designer UI/UX - **Sélection automatique** des agents pertinents selon le contexte du projet - **Débat collaboratif** : Les agents échangent et négocient pour converger vers la meilleure solution - **Système de consensus** avec vote pondéré (l'architecte a une voix prépondérante) - **Intégration Mistral AI** pour génération de réponses intelligentes et contextuelles ### Interface et visualisation - **Saisie de prompt** décrivant le projet souhaité - **Visualisation en temps réel** des échanges entre agents via WebSocket - **Affichage structuré** des propositions avec justifications et niveaux de confiance - **Rendu automatique** de diagrammes Mermaid intégrés dans les réponses - **Indicateurs de progression** et statuts du débat ### Architecture et stockage - **API REST** pour gestion des débats et récupération des résultats - **WebSocket** pour streaming temps réel des réponses des agents - **Base SQLite** pour persistance des débats et historique - **Gestion d'erreurs** avec fallbacks et réponses de secours --- ## Démarrage rapide ### Prérequis - Node.js 18+ - Clé API Mistral AI ([obtenir ici](https://console.mistral.ai/)) ### Installation **1. Backend** ```bash cd backend npm install cp .env.example .env # Éditer .env et ajouter votre MISTRAL_API_KEY npm start ``` **2. Frontend** ```bash cd frontend npm install npm run dev ``` **3. Accéder à l'application** - Frontend: http://localhost:5173 - Backend API: http://localhost:3000 - WebSocket: ws://localhost:3000 --- ## Flux utilisateur ```mermaid sequenceDiagram participant User participant Orchestrator participant AI_Architect participant AI_Designer participant AI_Engineer User->>Orchestrator: Prompt project Orchestrator->>AI_Architect: Generate approach Orchestrator->>AI_Designer: Discuss UI/UX Orchestrator->>AI_Engineer: Suggest modules AI_Architect-->>Orchestrator: Architecture proposal AI_Designer-->>Orchestrator: Interface ideas AI_Engineer-->>Orchestrator: Technical design Orchestrator-->>User: Final structured response + diagram ``` --- ## Licence MIT License — Open-source