J'ai câblé une carte électronique dont les composants raisonnent
Quand on parle d'agents IA, une image domine : un assistant qui répond. On lui écrit, il répond, on lui réécrit. C'est une conversation. Et une conversation a un défaut que personne ne nomme : elle ne se mesure pas. Si la réponse est bonne, tant mieux. Si elle est fausse, on recommence. Il n'y a rien entre les deux — pas de point où poser une sonde.
J'ai fini par construire autre chose, sans l'avoir décidé au départ. En regardant ce que ça devenait, le mot juste n'était pas « assistant ». C'était carte électronique.
Quatre pièces, et c'est tout
Le composant. Un agent qui fait une seule chose, et qui refuse une seule chose. Pas un agent qui « sait tout faire » : un agent qui relit, ou un agent qui vérifie, ou un agent qui cherche. Un composant qui fait deux métiers, on ne peut plus le tester. On ne sait plus lequel des deux a échoué.
La connexion. Entre deux composants, le travail ne circule pas tout seul : il faut que la connexion s'ouvre. Quelqu'un — une personne ou un composant — laisse passer, ou non. C'est la différence entre chaîner des appels et câbler une autorité. Dans une conversation, tout ce qui est dit est disponible tout de suite. Sur une carte, le signal attend.
Le fusible. Il ne discute pas, il ne propose pas d'alternative, il coupe. Un fusible qui demanderait la permission avant de fondre ne servirait à rien — la surcharge serait déjà passée. Les miens sont du code déterministe : même entrée, même verdict, deux fois de suite. Zéro modèle, zéro jeton, zéro hésitation.
Le signal. Une donnée qui avance d'une connexion à l'autre, et qu'on peut regarder à chaque point du parcours. C'est ça, la propriété qu'une conversation ne donne jamais.
Ce que ça change, concrètement
Un assistant qui se trompe, on le reformule. Une carte qui se trompe, on sait où. On met la sonde sur la connexion précédente : le signal était bon avant, mauvais après. Le composant fautif est nommé en trente secondes.
Le test devient possible. On ne teste pas une conversation : on la relit et on décide qu'elle « a l'air bonne ». On teste un circuit : on injecte une entrée connue, on regarde ce qui sort, on compare. Et surtout, on rejoue — le même test, demain, dans un mois, après avoir changé une pièce.
Il y a une conséquence que je n'avais pas prévue. Elle est devenue la plus utile : la puce est interchangeable. Le composant qui raisonne peut être remplacé par un autre modèle — d'un autre fournisseur, d'une autre génération — sans redessiner la carte. Ce qui tient l'ensemble, ce n'est pas le modèle : ce sont les connexions et les fusibles. Le jour où un fournisseur s'éteint, ferme, ou triple ses prix, la carte continue de fonctionner. Je l'ai vérifié en le faisant.
Est-ce que ça existe déjà ? Oui, en partie
Je ne vais pas prétendre avoir inventé le graphe orienté. Des outils enchaînent déjà des étapes et des décisions : des moteurs de flux de travail qui existent depuis des années, des bibliothèques récentes qui organisent les appels de modèles en nœuds et en arêtes. La forme n'est pas neuve. Quiconque connaît le domaine le verra tout de suite.
Ce que je n'ai vu nulle part, en revanche, c'est la discipline :
- L'autorité est câblée, pas demandée. La plupart des systèmes donnent des consignes au modèle — « ne fais pas ceci ». Une consigne est une prière. Sur une carte, ce qu'un composant ne peut pas atteindre, il ne peut pas l'atteindre : ce n'est pas écrit dans son prompt, c'est absent de son câblage.
- Les fusibles ne raisonnent pas. Confier la sécurité à un modèle, c'est demander à celui qu'on surveille de tenir le registre. Un fusible se teste, se rejoue, et rend deux fois le même verdict.
- Il y a un banc de test. Pas une suite de tests unitaires sur le code : un banc qui rejoue les parcours, sur les pages en ligne, et qui passe au rouge quand un point cesse de répondre.
Ce que ça coûte — parce que ça coûte
Écrire une consigne prend deux minutes. Câbler une carte prend des jours. Tant que rien ne doit tenir, la consigne gagne, et il faut le dire.
Ça se retourne le jour où quelque chose ne doit pas échouer sans qu'on le sache. Le jour où un travail tourne pendant qu'on dort. Le jour où une panne silencieuse coûte plus cher que le temps de câblage. C'est à ce moment-là qu'un circuit vaut mieux qu'une conversation — et pas avant.
La phrase qui résume tout. Un assistant qui se trompe vous donne une mauvaise réponse. Une carte qui se trompe vous donne une mesure fausse à un endroit précis — et une mesure fausse, ça se répare.
Pourquoi je le raconte
Parce que je n'ai pas construit ça en connaissant la théorie. J'ai construit ça en réparant, une panne après l'autre, et en refusant à chaque fois la solution qui aurait marché « pour cette fois ». Chaque fusible de ma carte porte le nom d'une chose qui a cassé.
Si vous branchez des agents en ce moment, je n'ai qu'une chose à vous proposer : arrêtez de leur écrire ce qu'ils ne doivent pas faire, et débranchez-le. La différence entre les deux, c'est toute la différence entre une promesse et un circuit.