Le pipeline d'agents IA

Une issue GitHub arrive, une pull request mergée en ressort. Entre les deux : classification automatique, routage intelligent, implémentation parallèle, tests rigoureux et documentation vivante. Le tout orchestré sans que vous leviez le petit doigt.

Classification automatique

Arbre de décision des routes

Chaque tâche est automatiquement classifiée sur l'une des 5 routes du pipeline. La complexité croissante détermine le nombre d'agents mobilisés et la rigueur des gates qualité.

DIRECTMinimale

Réponse textuelle

Réponse à une question, commande /slash, information. Aucun agent spécialisé — pas de modification de fichier.

Tokens~5 KCoût~0,002 $
Agents : Aucun
SIMPLEFaible

Modification ciblée

Correction ou ajout limité à un fichier. L'agent adapte le code existant sans planification préalable.

Tokens~50 KCoût~0,02 $
Agents : Front ou Back → Tester
ADAPTModérée

Adaptation transversale

Modification impactant 2–3 fichiers. L'agent search cartographie les dépendances avant modification.

Tokens~120 KCoût~0,06 $
Agents : Search → Front ou Back → Tester
MEDIUMÉlevée

Fonctionnalité multi-fichiers

Feature complète avec planification, génération de tests et revue de code automatisée.

Tokens~400 KCoût~0,20 $
Agents : Search → Planner → Front + Back → Tester → Reviewer
FULLMaximale

Feature complexe avec contrats

Fonctionnalité majeure nécessitant contrats TypeScript, parallélisme front+back, gates qualité et documentation.

Tokens~550 KCoût~0,27 $
Agents : Search → Planner → Contract → Front + Back → Tester → Reviewer → Writer

Coûts estimés avec la tarification API DeepSeek V4 Pro (juin 2026). Tokens et coûts réels variables selon la complexité et le volume.

Visualisation

Pipeline complet

Le diagramme ci-dessous illustre le flux complet : de l'issue GitHub au merge final. Chaque étape est automatisée. Les tâches MEDIUM et FULL activent le parallélisme front+back et les gates qualité (tester + reviewer).

graph TB
    ISSUE["📋 Issue GitHub"] --> PRESEARCH["🔍 Pre-search<br/>Étape 0.3"]
    PRESEARCH --> CLASSIFY["🧠 Orchestrator<br/>Classification tâche"]

    CLASSIFY --> ADAPT["🔄 ADAPT"]
    CLASSIFY --> SIMPLE["🔧 SIMPLE"]
    CLASSIFY --> MEDIUM["📦 MEDIUM"]
    CLASSIFY --> FULL["🏗️ FULL"]



    SIMPLE --> IMPL_SIMPLE["💻 Front ou Back<br/>Implémentation"]
    IMPL_SIMPLE --> TEST["🧪 Tester<br/>Génération + exécution tests"]

    ADAPT --> SEARCH_ADAPT["🔎 Search<br/>Cartographie"]
    SEARCH_ADAPT --> IMPL_ADAPT["💻 Front ou Back<br/>Implémentation"]
    IMPL_ADAPT --> TEST

    MEDIUM --> SEARCH_MED["🔎 Search<br/>Cartographie"]
    SEARCH_MED --> PLAN["🧩 Planner<br/>Planification"]
    PLAN --> IMPL_MEDIUM["💻 Front + Back<br/>Parallèle"]
    IMPL_MEDIUM --> TEST

    FULL --> SEARCH_FULL["🔎 Search<br/>Cartographie"]
    SEARCH_FULL --> PLAN_FULL["🧩 Planner<br/>Planification"]
    PLAN_FULL --> CONTRACT["📝 Contract<br/>Types + API"]
    CONTRACT --> IMPL_FULL["💻 Front + Back<br/>Parallèle"]
    IMPL_FULL --> TEST

    TEST --> REVIEW["👁️ Reviewer<br/>Audit qualité"]
    REVIEW -->|"✅ Approuvé"| WRITER["✍️ Writer<br/>Documentation"]
    REVIEW -->|"❌ Rejeté"| FIX["🔄 Corrections"]
    FIX --> TEST

    WRITER --> COMMIT["📝 Commit + Push"]
    COMMIT --> PR["🔀 Pull Request"]
    PR --> MERGE["🎉 Merge"]


    style ISSUE fill:#0E0C09,stroke:#7A8899,color:#F5F0EB
    style PRESEARCH fill:#0E0C09,stroke:#7A8899,color:#7A8899
    style CLASSIFY fill:#0E0C09,stroke:#7A8899,color:#7A8899
    style SIMPLE fill:#0E0C09,stroke:#7A8899,color:#F5F0EB
    style ADAPT fill:#0E0C09,stroke:#7A8899,color:#F5F0EB
    style MEDIUM fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style FULL fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style REVIEW fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style MERGE fill:#0E0C09,stroke:#7A8899,color:#7A8899
    style WRITER fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style PLAN fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style PLAN_FULL fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style CONTRACT fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style FIX fill:#0E0C09,stroke:#C4780D,color:#C4780D
    linkStyle 21 color:#0E0C09
    linkStyle 22 color:#0E0C09
Contrôle qualité

Gates qualité automatisées

Deux gates successives garantissent que chaque modification est testée et revue avant d'atteindre la branche principale.

Tester

Génération systématique de tests, exécution et mesure de couverture. Seuil bloquant : 80 %.

  • Génération automatique de tests unitaires et d'intégration
  • Exécution complète de la suite de tests
  • Mesure de couverture (seuil : ≥ 80 %)
  • Catégorisation des erreurs pour retry granulaire
  • Rapport détaillé avec actions correctives

Reviewer

Audit de sécurité, qualité et cohérence du code ET des tests générés. Approbation ou rejet avec liste précise des corrections.

  • Security score ≥ 1.0 (aucune vulnérabilité critique)
  • Quality score ≥ 0.85 (code propre, maintenable)
  • Vérification des limites de diff (pas de modification massive non justifiée)
  • Audit des tests générés (pas de faux positifs, couverture réelle)
  • Approbation/rejet avec liste exhaustive des issues
💻Implémentation
🧪TesterSeuil : ≥ 80 %
👁️ReviewerScore : ≥ 0.85
PR Validée
Workflow automatisé

Intégration Git native

Le pipeline Swarm est pensé pour le flux GitHub : chaque étape, de la création de branche au merge, est automatisée. Deux scripts automatisent le workflow Git : setup.ts initialise la branche et l'environnement, finish.ts nettoie, documente et prépare la PR.

Issue GitHub

Tout commence par une issue. La Swarm analyse le titre et la description pour classifier automatiquement la tâche.

Branche

Création automatique d'une branche feature/ suivant la convention swarm-issue-{n}-{description}.

Commits

Commits atomiques avec messages conventionnels (feat:, fix:, docs:). Un commit par étape majeure.

Pull Request

Création automatique de la PR avec description générée, checklist et lien vers l'issue.

Merge

Après approbation des gates et revue humaine optionnelle, merge automatique dans la branche principale.

gitGraph
   commit id: "main"
   branch feature/swarm-issue-N
   commit id: "implémentation"
   commit id: "tests validés"
   checkout main
   merge feature/swarm-issue-N tag: "squash merge"
   commit id: "main (post-merge)"
Configuration

Fichiers Swarm

Deux fichiers de configuration gouvernent l'état et la mémoire du pipeline entre les sessions.

.swarm-queue.json

File d'attente des tâches pour les sessions multi-tâches. Permet au Swarm de traiter jusqu'à 5 tâches indépendantes en parallèle.

{
  "sessionId": "uuid",
  "tasks": [
    {
      "id": "T1",
      "route": "MEDIUM",
      "status": "pending|in_progress|done|failed",
      "agent": "front",
      "description": "..."
    }
  ],
  "maxParallel": 5,
  "maxCycles": 5
}
.agent-memory.json

Mémoire persistante des métriques et de l'historique des sessions. Alimente les tableaux de bord et l'optimisation continue.

{
  "sessions": [
    {
      "id": "uuid",
      "route": "MEDIUM",
      "tokensUsed": 400000,
      "cost": 0.20,
      "duration": "3m42s",
      "testsPassed": 12,
      "coverage": 87
    }
  ],
  "aggregates": {
    "totalSessions": 42,
    "totalTokens": 16800000,
    "totalCost": 8.40,
    "avgCoverage": 85
  }
}