L’architecture du système
  1. Ce que beaucoup appellent un agent tient dans ce point. Le reste, c’est le système.Un modèle de langage branché sur une API avec un prompt : c’est ce point lumineux. Autour de lui, vous allez voir ce qui le gouverne : 23 agents répartis en 8 domaines, un orchestrateur, 4 validateurs et une mémoire. Chaque chiffre de cette page est recompté dans son code au moment où elle est construite.
  2. Le modèle n’est qu’un port.Un connecteur parmi 18, derrière une interface commune. Le système ne l’appelle qu’en dernier recours : avant lui, il y a des règles, une mémoire, un orchestrateur et un planificateur.
    Connecteurs
    18 · 10 sortants, 8 entrants
    Interfaces communes
    3
    Appel au modèle
    niveau 3 du routeur, le dernier
  3. 261 modules. 818 dépendances.Chaque point est un fichier Python que le serveur charge, chaque trait un import réel, suivi depuis api/server.py. Puis chaque module rejoint la couche qui l’héberge : la tour est faite de son propre code.
    Lignes
    184 549
    Fonctions
    4 175
    Classes
    276
    Paquets
    11
  4. La porte : 2 ports, pas un de plus.nginx est seul à répondre au monde. Le 80 renvoie vers le 443 ; derrière, TLS, 2 domaines, et 3 zones de débit comptées par adresse.
    Ports publics
    80 · 443
    TLS
    1.2 · 1.3
    Zones de débit
    api 30/min · site 300/min · admin 600/min
    Corps max · lecture max
    100 Mo · 300 s
  5. Un seul processus. C’est voulu.uvicorn, 1 worker : l’ordonnanceur des tâches vit dans le processus de l’API, deux workers en feraient deux. Chaque requête traverse 4 middlewares, et 8 limiteurs de débit tiennent les points sensibles.
    Serveur
    FastAPI · uvicorn · asyncio
    Workers
    1
    Middlewares
    CORS · no-store · audit · métriques
    Limiteurs applicatifs
    8
  6. 548 routes. Une alvéole chacune.567 déclarées, 548 servies, en 74 familles : console d’administration, espace client, authentification, mémoire, acquisition, projets, agenda… Chaque couleur est une méthode HTTP.
    GET
    277
    POST
    239
    PATCH
    17
    DELETE
    12
    WebSocket
    3
  7. Rien n’entre sans être validé.4 validateurs examinent chaque demande : sa logique, sa cohérence avec la mémoire, la stabilité du système, la gouvernance. Verdict : accepter, annoter ou refuser.
    Longueur
    8 000 caractères au plus, alerte à 4 000
    Disjoncteur
    3 échecs en 300 s · sortie après 2 succès
    Débit
    30 demandes par 60 s
  8. Le modèle parle en dernier.Niveau 1 : le système répond seul. Niveau 2 : les règles déclarées par chaque agent, fortes puis faibles. Niveau 3 seulement : le modèle. Puis le gatekeeper classe le risque avant toute exécution.
    Confiance des règles
    fortes 0,97 · faibles 0,90
    Stratégies
    SINGLE · PARALLEL · SEQUENTIAL · DIRECT
    Gatekeeper
    4 niveaux de risque · 8 motifs critiques, veto immédiat
  9. 8 domaines. 23 agents. Chacun son délai.Prospection, boîte de réception, planification, recherche, agenda, veille, finance, juridique… Chaque agent est enregistré avec ses capacités, ses règles de routage et un délai au-delà duquel il est coupé.
    Les plus longs
    prospector 600 s · planner, inbox 300 s · research, mobile 240 s
    Profil api_cloud
    14 agents coupés à 45 s
  10. Un plan devient un graphe.Au plus 8 étapes. Tri topologique de Kahn : ce qui ne dépend de rien part ensemble, par lots. Une étape qui échoue est rejouée ; si elle casse, ses descendants sont bloqués, jamais exécutés sur un résultat faux.
    Tentatives
    2
    Attente
    1 s, ×2, plafond 5 s
    Délais
    45 s par étape · 120 s par plan
  11. HEAM-MCAE : une mémoire qui calcule.Session, faits, épisodes, sens. Les souvenirs proches fusionnent, ceux qu’on rappelle se renforcent, les autres s’effacent selon une courbe d’oubli. L’oubli archive, il ne supprime pas.
    Rétention
    R = e−t/S, S = 1,8n · w
    Fusion
    similarité de Jaccard ≥ 0,55
    Oubli
    R < 0,20 après 3 jours
    Promotion
    3 rappels · critique à 8
  12. 27 bases. 93 tables.SQLite, une base par sujet : acquisition, mémoire épisodique, tableau noir, gouvernance, file d’envoi, facturation, agenda… Chaque schéma est écrit dans le code et versionné avec lui.
    Bases
    27
    Tables distinctes
    93
    Déclarations CREATE TABLE
    102
  13. 48 tâches. Personne ne les lance.Déclarées au démarrage, sur une horloge UTC : le moteur d’objectifs chaque minute, la surveillance toutes les 30 s, les relances, la relève des réponses, la consolidation de la mémoire, les rapports à heure fixe.
    À intervalle
    15
    À heure fixe, UTC
    33
    Verrou de tick
    en base ; s’il est illisible, le cycle saute
  14. Il agit dans le monde réel.18 connecteurs : e-mail, SMS, WhatsApp, CRM, agenda, paiement, sources publiques, transcription, modèle. Un e-mail de campagne passe 20 contrôles de rédaction, puis attend une validation humaine.
    Sortants · entrants
    10 · 8
    Contrôles de rédaction
    20
    Relances
    arrêtées dès qu’on leur répond
  15. Rien n’est livré sans preuve.Chaque mise en ligne reconstruit l’image depuis un clone propre, pose un filet de secours, interroge l’image neuve avant de basculer, puis vérifie le service en production.
    Témoins dans l’image
    445
    Témoins en service
    468
    Suites de tests par déploiement
    10
    Tests dans le dépôt
    3 311
  16. Tout ça tourne avant la première ligne de votre application.Une architecture écrite, mesurée, testée, déployée, et comptée ici depuis son propre code.
  • Code261 modules, 818 imports, recomptés depuis api/server.py.
  • Routes548 servies sur 567 déclarées.
  • Agents23, dans 8 domaines.
  • Tâches48 planifiées.

Pas un modèle branché sur une API.

Un système de 261 modules, 548 routes et 23 agents, que je conçois, écris et maintiens. C’est avec lui, et de cette manière, que je construis les applications de mes clients.

Sur mesure, sur vos règles, et vérifiable.

Et si on construisait la vôtre ?

Une heure d’entretien pour lister ce que votre application doit faire, et vous dire franchement ce qui vaut la peine d’être construit.

Réserver l’entretien d’une heure