Muyue 5a2ca101f8 Fix ES6 import/export mismatch in collaborate.js routes
- Import db module at top of file using ES6 import
- Remove dynamic require() call that was causing ReferenceError
- Database sessions now load correctly through GET /api/collaborate endpoint
2025-10-19 16:28:15 +02:00

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

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

Installation

1. Backend

cd backend
npm install
cp .env.example .env
# Éditer .env et ajouter votre MISTRAL_API_KEY
npm start

2. Frontend

cd frontend
npm install
npm run dev

3. Accéder à l'application


Flux Utilisateur

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

Description
No description provided
Readme MIT 430 KiB
Languages
Vue 54.5%
JavaScript 42.6%
CSS 2.6%
HTML 0.3%