agora-ai/README.md
Muyue 33e2434e71 Update README documentation for current architecture
- Update objective to reflect N agents (3-50) instead of fixed 7 roles
- Update AI layer to reference mistral-large-2411 model
- Add section-based editing and convergence details
- Remove outdated 'network monitoring' feature
- Add session discovery features
- Update features list to include: dynamic agents, random names, raised hand animation, real-time visualization
- Update usage guide to reflect new session discovery UI
- Update example to use dynamic agents with random names
- Clarify automatic process and consensus convergence
- Add info about accessing previous sessions
2025-10-18 23:53:02 +02:00

216 lines
7.7 KiB
Markdown

# Project Agora
## Description
Project Agora est une plateforme web permettant à plusieurs intelligences artificielles de **collaborer** pour concevoir une architecture logicielle complète à partir d'une **description de projet** et optionnellement d'une **documentation contexte**.
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**, avec un nombre d'agents flexible et configurable :
- **Agents dynamiques** (3-50) avec des noms aléatoires pour la diversité
- Chaque agent à une perspective unique sur l'architecture logicielle
- Les agents se spécialisent naturellement dans différents domaines
L'aspect le plus crucial de ces IA réside dans leur capacité à **collaborer itérativement** pour améliorer collectivement la spécification architecturale. Le processus s'arrête naturellement quand **tous les agents convergent** (plus aucune amélioration n'est proposée sur N tours consécutifs).
---
## 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 (mistral-large-2411)
- **Storage**: SQLite pour persistance complète
- **Real-time**: WebSocket pour streaming temps réel des modifications
- **Design**: Glassmorphism avec animations fluides
### 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
### Conception Collaborative par IA
- **N agents dynamiques** (3-50) : Nombre configurable pour chaque session
- **Noms aléatoires** : Chaque agent a un nom unique pour meilleure clarté
- **Création itérative** : SYSTEM crée la structure de base
- **Tours de table automatiques** : Chaque agent revoit et peut modifier une section
- **Document évolutif** : Amélioration progressive à chaque passage
- **Opérations supportées** : Modification, création, ou suppression de sections
- **Convergence naturelle** : Arrêt automatique quand N agents de suite ne proposent aucun changement
- **Traçabilité complète** : Historique de toutes les modifications avec agent, raison, et round
- **Format Markdown** : Output toujours en Markdown (.md)
- **Context files** : Support d'upload de fichiers MD/TXT en entrée (optionnel)
- **Session discovery** : Accès facile aux sessions précédentes avec filtres et stats
- **Real-time visualization** : Observation des changements en direct via WebSocket
### Système multi-agents IA
- **Intégration Mistral AI** (mistral-large-2411) pour génération intelligente et contextualisée
- **System prompts intelligents** : Prompt générique paramétré par agent
- **Contexte intelligent** : Les agents voient le document actuel et sa version antérieure
- **Section-based editing** : Les agents modifient une section à la fois pour cohérence
### Interface et visualisation
- **Saisie de prompt** décrivant le projet souhaité
- **Upload optionnel** de fichiers contexte (MD/TXT)
- **Sélection dynamique** du nombre d'agents (3-50)
- **Visualisation en temps réel** des modifications via WebSocket
- **Timeline interactive** montrant chaque round et les agents ayant participé
- **Raised hand animation** montrant l'agent actuel qui réfléchit/modifie
- **Affichage interactif** du document Markdown avec syntaxe colorée
- **Session discovery** avec stats (complétées, en cours, total)
- **Filtres par statut** pour accéder facilement aux sessions
- **Historique des sessions** accessible depuis la page d'accueil
### Architecture et stockage
- **API REST** pour gestion des sessions collaboratives
- **WebSocket** pour streaming temps réel des modifications d'agents
- **Base SQLite** pour persistance des sessions, versions et historique complet
- **Versioning intelligent** : Chaque modification crée une version avec métadonnées (agent, raison, round)
---
## 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 Backend
participant Agents
User->>Backend: Project description + optional context file
Backend->>Agents: Lead Architect creates initial document
Agents-->>Backend: Document v1
Backend->>Agents: Round 1: Review and improve
Agents-->>Backend: Updates proposed
Backend->>Agents: Round 2-N: Review updated document
Agents-->>Backend: More updates OR no changes
Backend-->>User: Final Markdown document + history
```
---
## Utilisation
### Étapes
1. **Accédez à la page d'accueil** : Consultez les sessions précédentes
- Visualisez les stats (complétées, en cours, total)
- Filtrez par statut si nécessaire
- Cliquez sur une session pour la reprendre
2. **Ou créez une nouvelle session** :
- Décrivez le projet en détail
- Ajouter un contexte (optionnel) : Upload un fichier MD ou TXT
- Sélectionnez le nombre d'agents (3-50)
- Lancez "Start Design Session"
3. **Observez la collaboration** :
- Visualisez le document en temps réel
- Consultez la timeline avec les rounds et les agents ayant participé
- Voir l'animation "main levée" pour l'agent actuel
4. **Processus automatique** :
- Chaque agent revoit le document
- Peut modifier, créer, ou supprimer une section
- Les rounds se font automatiquement
- Le processus s'arrête quand consensus est atteint
5. **Résultat** :
- Document Markdown téléchargeable
- Historique complet des modifications
- Session reste accessible pour consultation
### Exemple
Entrée:
```
Plateforme gestion projets temps réel, équipes distribuées,
gestion tâches, communication, partage fichiers, 10K+ users
```
Processus (avec 7 agents aux noms aléatoires):
- Round 1: SYSTEM crée la structure de base
- Round 2: Chaque agent revoit et propose des améliorations
- Round 3+: Itération jusqu'à convergence
Résultat: Spécification architecturale Markdown complète avec traçabilité des changements
---
## Licence
MIT License — Open-source