Je détestais tous les agents de code, alors j'ai créé le mien — Mario Zechner (Pi)

MMastra
컴퓨터/소프트웨어창업/스타트업AI/미래기술

Transcript

00:00:00[MUSIQUE]
00:00:02Bonjour, je m'appelle Mario.
00:00:04Je viens du pays d'Arnold Schwarzenegger,
00:00:06ce que vous n'avez probablement pas remarqué
00:00:09vu mon très bon anglais.
00:00:12Je tiens à préciser que
00:00:13nous avons couru après notre enfant de quatre ans
00:00:16toute la journée dans Londres.
00:00:17On a vu des dinosaures, des momies, Nando's, évidemment,
00:00:24et d'autres choses que j'ai déjà oubliées.
00:00:26Je suis très, très fatigué.
00:00:28Et si vous ne comprenez pas ce que je dis,
00:00:31levez la main et dites : « Papi, réveille-toi ».
00:00:36La raison de ma présence ici est une autre personne,
00:00:39qui est ici à Cockneyville aujourd'hui.
00:00:40Appelons-le Shteter Pineburger.
00:00:44En 2025, je crois que c'était vers avril,
00:00:53il nous a dit, à moi et à Armin Ronacher, que vous connaissez
00:00:58pour Flask et Sentry : « Mec, ces agents de code,
00:01:02ils fonctionnent vraiment maintenant ».
00:01:04Et je me suis dit : « Oh, la ferme ».
00:01:06Désolé, j'utilise aussi des gros mots.
00:01:09Pas du tout.
00:01:10Un mois plus tard, on s'est réunis dans cet appart 24 heures
00:01:13pendant la nuit et on s'est laissé porter par les outils,
00:01:19par le code jetable et tout ce flux.
00:01:21Et depuis, aucun d'entre nous n'a vraiment—
00:01:23en gros, on ne dort plus.
00:01:27On a construit des trucs, plein de trucs, dont la plupart
00:01:32n'ont jamais servi, car c'est la nouveauté en 2025,
00:01:36'26.
00:01:37On construit beaucoup de choses, mais pas forcément
00:01:39ce qu'on utilise réellement.
00:01:40On a écrit énormément de choses.
00:01:42Et finalement, ça m'a poussé à me dire :
00:01:46« Je déteste tous les agents ou environnements de code actuels ».
00:01:50« Est-ce si dur d'en écrire un moi-même ? »
00:01:53Et Peter se disait : « Je veux juste faire un truc ».
00:01:56« Personne n'en entendra probablement parler ».
00:01:58« Et ce sera un assistant personnel, »
00:02:01« car c'est ce que j'ai toujours voulu avoir ».
00:02:03La plupart d'entre vous connaissent la suite de son histoire.
00:02:05Aujourd'hui, je vais vous raconter la mienne, bien moins impressionnante.
00:02:08Mais j'espère transmettre quelques enseignements,
00:02:11comme on dit dans le milieu, que j'ai pu accumuler
00:02:16ces derniers mois.
00:02:17Alors, Pi.
00:02:19Au début, il y avait Cloud Code.
00:02:21En fait, on faisait du copier-coller depuis ChatGPT.
00:02:25On l'a tous fait au début, en 2023.
00:02:27Puis il y a eu— qui se souvient du GitHub Copilot original ?
00:02:32En fait, combien d'entre vous sont ingénieurs ?
00:02:35Combien utilisent des agents de code,
00:02:37comme Cursor ou Cloud Code ?
00:02:39D'accord.
00:02:40Concours de popularité : Cloud Code ?
00:02:43Codex CLI ?
00:02:45Cursor ?
00:02:48Open—
00:02:48[INAUDIBLE]
00:02:49Oui.
00:02:50Open code ?
00:02:50Anti-gravity.
00:02:51Oh, ce n'est pas beaucoup.
00:02:52Quelqu'un utilise ça ?
00:02:55Je vous apprécie.
00:02:56On prendra une bière plus tard.
00:02:58Bref, c'est ce qui s'est passé en 2025
00:03:03et avant.
00:03:04Ça a commencé par du copier-coller depuis ChatGPT.
00:03:06C'était souvent bancal.
00:03:07Surtout des fonctions isolées qu'on n'avait pas envie d'écrire.
00:03:10Ensuite, il y a eu GitHub Copilot dans Visual Studio
00:03:13Code, où on cliquait pour atteindre le bonheur,
00:03:15ce qui marchait parfois, mais souvent pas.
00:03:17Parfois, ça récitait juste du code GPL,
00:03:22comme l'inverse de la racine carrée de John Carmack
00:03:25ou des trucs du genre, c'était assez drôle.
00:03:29Et puis il y a eu Adir.
00:03:30Quelqu'un se souvient d'Adir ?
00:03:31Oui.
00:03:32Les anciens.
00:03:33Bonjour.
00:03:33Oui.
00:03:37Vous avez des cheveux gris.
00:03:37Vous connaissez forcément Adir.
00:03:41Il y avait aussi AutoGPT.
00:03:43Sûrement pas beaucoup.
00:03:44Oui, d'accord.
00:03:45Lui, il connaît tout.
00:03:48Et finalement, il y a eu Cloud Code.
00:03:51Je crois qu'ils l'ont sorti en novembre,
00:03:52en version bêta en 2024.
00:03:55Mais il n'a vraiment commencé à être utilisé, pardon ?
00:03:59Seulement en février.
00:04:01Oui, février, mars, un truc comme ça, en 2025.
00:04:03Et j'étais en mode : j'adore ça.
00:04:05C'est génial.
00:04:06L'équipe de Cloud est aussi géniale.
00:04:07Ils sont sur les réseaux sociaux.
00:04:08Ce sont de très bonnes personnes, très talentueuses.
00:04:13Ils ont quasiment créé le genre.
00:04:15Je sais qu'il y avait Adir et AutoGPT avant,
00:04:18mais rien ne faisait ça.
00:04:20Et c'était la base de la recherche agentique.
00:04:22Au lieu de laisser Cursor fouiller dans votre code,
00:04:25indexer, construire des AST, et indexer tout ça.
00:04:29Et ça ne marchait pas vraiment.
00:04:31Ils ont juste dit : bof.
00:04:33On a entraîné nos modèles par renforcement
00:04:35pour utiliser des outils de fichiers, des outils bash,
00:04:37afin d'explorer votre code ad hoc et trouver les endroits
00:04:41nécessaires pour comprendre et modifier le code.
00:04:44Et ça a si bien marché que, oui, on a
00:04:46arrêté de dormir car on pouvait soudainement
00:04:48produire bien plus de code qu'à la main.
00:04:52À l'époque, c'était simple, prévisible
00:04:54et ça s'intégrait parfaitement à mon flux de travail.
00:04:57Parfait.
00:04:58Mais ils sont tombés dans le piège où la plupart
00:05:05d'entre nous tombent probablement.
00:05:06Ces outils peuvent écrire tellement de code.
00:05:08Pourquoi ne pas leur faire écrire toutes les fonctions
00:05:11imaginables, pas vrai ?
00:05:11N'est-ce pas génial ?
00:05:12Ajoutons cette fonction, et celle-là,
00:05:14et encore celle-là, et ainsi de suite.
00:05:15Et on finit par avoir le truc d'Homer Simpson—
00:05:18je ne sais même plus comment ça s'appelle.
00:05:20J'appelle ça un vaisseau spatial.
00:05:21Et Cloud Code est maintenant un vaisseau spatial.
00:05:23Il fait tellement de choses que vous n'utilisez
00:05:26probablement que 5 % de ce qu'il propose.
00:05:28Vous n'en connaissez qu'environ 10 % au total.
00:05:30Et le reste, les 90 % restants,
00:05:33c'est un peu comme la matière noire de l'IA et des agents.
00:05:36Personne ne sait ce que ça fait réellement.
00:05:37Et personnellement, je trouve que ce n'est pas très utile
00:05:40car je pense qu'on a toujours besoin
00:05:43de savoir ce que fait l'agent.
00:05:45Ce gars-là pourrait ne pas être tout à fait d'accord.
00:05:49Et nous sommes ici à TESOL, et ils aiment aussi
00:05:51la gestion de contexte ou l'ingénierie de contexte,
00:05:54comme nous l'avons appelée.
00:05:55Et j'ai fini par trouver que Cloud Code n'était pas
00:05:58un bon outil pour ce qui est de l'observabilité
00:06:01et de la gestion réelle du contexte.
00:06:04Ensuite, il y a eu ça aussi.
00:06:06Qui aime ça dans Cloud Code, cet énorme
00:06:09clignotement inexplicable ?
00:06:10Bon, en fait, je sais pourquoi ça arrive,
00:06:13mais ils ne l'ont toujours pas corrigé.
00:06:15Voici Tarik.
00:06:16Il est vraiment super.
00:06:16Je l'adore.
00:06:17C'est leur responsable DevRel, surtout sur Twitter, il est top.
00:06:21Mais parfois il dit des trucs un peu bizarres
00:06:24comme : « notre interface terminal est maintenant un moteur de jeu ».
00:06:27Il faut savoir que je viens du développement de jeux.
00:06:30C'est de là que je viens.
00:06:31Et quand je lis un truc pareil,
00:06:32ça me fait un peu mal,
00:06:34parce que c'est une fichue interface de terminal, mec.
00:06:37Ce n'est pas un moteur de jeu.
00:06:38Crois-moi.
00:06:39La seule raison pour laquelle tu penses ça,
00:06:41c'est parce que tu utilises React dans ton terminal,
00:06:44et qu'il faut environ 12 millisecondes
00:06:45pour recalculer toute la structure de ton interface.
00:06:49Ne fais pas ça, mec.
00:06:51Ce n'est pas un moteur de jeu, d'accord ?
00:06:54Et puis Mitchell, qui écrit Ghosty,
00:06:56a dit : « Mec, c'est offensant, là ».
00:06:59« Ne rejette pas la faute sur Ghosty ou un autre terminal ».
00:07:02« Ton code est naze ».
00:07:04« Les terminaux peuvent afficher des centaines »
00:07:05« d'images par seconde, en moins d'une milliseconde ».
00:07:09Donc ne fais pas ça, ok ?
00:07:12Ils ont fini par corriger le clignotement.
00:07:15Mais d'autres problèmes sont apparus.
00:07:16C'est comme s'ils s'étaient totalement livrés au "vibe coding".
00:07:20Et on le ressent chaque jour en utilisant Cloud Code.
00:07:23Encore une fois, je ne veux pas dénigrer leurs efforts
00:07:27ni leurs résultats.
00:07:28Cloud Code reste le leader de la catégorie pour une bonne raison.
00:07:30Ils ont inventé ce truc et font un excellent travail.
00:07:32C'est juste que je suis une vieille personne
00:07:34qui aime les outils simples et prévisibles.
00:07:37Et ça ne correspondait plus à mes besoins et flux de travail.
00:07:41Alors voilà.
00:07:42Ils font aussi beaucoup de choses en arrière-plan,
00:07:44en manipulant votre contexte.
00:07:46J'ai créé des outils à l'été 2025
00:07:50qui me permettaient d'intercepter les requêtes envoyées
00:07:52à leur serveur depuis Cloud Code pour découvrir
00:07:55quel genre de petits textes supplémentaires
00:07:58sont injectés dans votre contexte à votre insu.
00:08:00Et tout cela était très nuisible
00:08:01et changeait aussi tout le temps.
00:08:04Genre tous les jours ou deux jours, il y avait
00:08:06y aurait une nouvelle version qui changerait ce
00:08:08qui est injecté à quel moment, ce qui gâcherait
00:08:11vos flux de travail existants.
00:08:13Ce n'était tout simplement pas un outil stable.
00:08:14Et maintenant, je comprends leur point de vue.
00:08:16Ils ont besoin d'expérimenter.
00:08:17Et ils ont une énorme base d'utilisateurs.
00:08:18Et c'est vraiment dur d'expérimenter
00:08:19quand on a une énorme base d'utilisateurs.
00:08:21Mais ils s'en fichaient.
00:08:23Alors nous avons tous dû en pâtir.
00:08:25Vous travaillez avec ce nouvel outil.
00:08:27Vous essayez de créer des flux prévisibles.
00:08:31Et puis l'éditeur change un tout petit truc
00:08:35sous le capot qui fait que le LLM
00:08:36devient fou avec vos flux existants.
00:08:38Ce n'est juste pas viable.
00:08:39J'ai besoin de contrôler cela.
00:08:40Je ne peux pas compter sur eux pour la stabilité.
00:08:46Je pense donc qu'en raison du design de l'interface,
00:08:52ils doivent réduire votre visibilité.
00:08:54Personnellement, je n'aime pas trop ça.
00:08:56Mais c'est juste une préférence personnelle.
00:08:57Je comprends que la plupart des gens
00:08:58seront satisfaits de la quantité d'infos
00:09:00que Cloud Code vous présentera.
00:09:03Il n'y a aucun choix de modèle, évidemment,
00:09:06car c'est un outil natif Anthropic, pour ainsi dire.
00:09:09Ce n'est pas un inconvénient, car les modèles Claude—
00:09:12je les aime bien.
00:09:13Ils sont vraiment bons.
00:09:15Et il n'y a quasiment aucune extensibilité.
00:09:17Vous trouverez peut-être ça drôle, car ils
00:09:19ont tout ce système de "hooks" et tout ça.
00:09:21Mais si on compare à ce que Pi permet de faire,
00:09:25ce n'est pas aussi profondément intégré.
00:09:28C'est aussi basé sur le lancement d'un processus quand
00:09:32l'événement hook démarre, ce qui coûte cher si vous
00:09:36devez relancer ce processus encore et encore.
00:09:40Finalement, je me suis lassé de Cloud Code,
00:09:42pas parce que c'était terrible.
00:09:44C'est juste qu'il ne me correspondait plus.
00:09:47Il a correspondu à bien plus de gens sur cette période.
00:09:50Ils font donc bien les choses, mais pas pour moi,
00:09:54parce que je suis vieux.
00:09:56J'ai donc cherché d'autres options.
00:09:59Il y a Codex CLI, que je n'ai vraiment pas aimé.
00:10:01Au début, tant l'interface que le modèle,
00:10:05mais ça a changé, au moins pour le modèle.
00:10:08Codex est vraiment pas mal maintenant.
00:10:10Ensuite, il y a AMP.
00:10:12L'équipe derrière travaillait chez Sourcegraph.
00:10:15Ils se sont séparés de Sourcegraph.
00:10:20Et ce sont de super ingénieurs.
00:10:21Ils ont réussi à bâtir un environnement commercial
00:10:25où ils retirent des fonctions au lieu d'en ajouter.
00:10:28Et la plupart de leurs choix me semblent logiques.
00:10:33Donc, si vous cherchez un environnement commercial,
00:10:36je vous recommanderais AMP, car c'est très bon.
00:10:39Factory Troye, un peu le même genre, très bon aussi,
00:10:44bien qu'ils soient moins expérimentaux qu'AMP.
00:10:47Et puis il y a OpenCode, qui est l'environnement
00:10:50open source que beaucoup de gens utilisent.
00:10:53J'ai un historique dans l'open source.
00:10:55J'y suis depuis, eh bien, 17 ans.
00:11:00J'ai géré de grands et petits projets open source.
00:11:04C'est donc quelque chose qui me tient à cœur.
00:11:05Alors j'ai pensé donner sa chance à OpenCode,
00:11:08car c'est proche de mes valeurs.
00:11:12Et après AMP, ils ont l'une des équipes les plus
00:11:15ancrées ou pragmatiques du secteur.
00:11:16Ils ne vous survendent pas des fonctionnalités
00:11:18que vous n'utiliserez probablement jamais.
00:11:20Ils essaient de préserver un parcours utilisateur
00:11:23qui soit très stable.
00:11:26Ils ont aussi de bonnes réflexions
00:11:27sur ce que les agents de code signifient pour nous
00:11:29en tant que profession, ce qui me parle.
00:11:32Le problème d'OpenCode, c'est qu'il n'est pas très bon
00:11:37pour gérer votre contexte.
00:11:38Par exemple, à chaque tour, il appelle sessionCompaction.prune,
00:11:44qui fait la chose suivante.
00:11:46Il supprime tous les résultats avant les 40 000 derniers tokens.
00:11:52Maintenant, qui ici sait ce qu'est le cache de prompt ?
00:11:56Qu'est-ce que cela fait à votre cache de prompt ?
00:11:58OpenCode et Anthropic ont eu une histoire intéressante.
00:12:05Et finalement, Anthropic, à mon avis à juste titre,
00:12:11a dit : les gars, ça ne va pas le faire.
00:12:14Il n'y a jamais eu de communication publique là-dessus.
00:12:17Mais Tarek l'explique ici.
00:12:19Si vous allez dans une salle de sport, que vous agissez mal
00:12:22et abusez de l'infrastructure, vous allez vous faire bannir.
00:12:25Et je pense—
00:12:27je n'en ai pas la preuve formelle,
00:12:28mais je pense que c'est la raison pour laquelle
00:12:30il y a cette animosité entre Anthropic et OpenCode.
00:12:33Et je suis tout à fait d'accord, ou du moins je
00:12:36pense qu'Anthropic a clairement raison ici.
00:12:39Ne jouez pas avec l'infrastructure.
00:12:42Il y a aussi d'autres choses, comme le fait qu'OpenCode
00:12:44supporte le LSP (Language Server Protocol)
00:12:46par défaut.
00:12:48Pour en revenir à l'ingénierie de contexte,
00:12:51disons que vous donnez à votre agent la tâche
00:12:53de modifier un certain nombre de fichiers.
00:12:55Qu'est-ce que cela signifie en pratique ?
00:12:57Il va faire une série de modifications, l'une après l'autre,
00:13:02sur plusieurs fichiers.
00:13:03Quelle est la probabilité qu'après la première modif sur 10,
00:13:09pour ainsi dire, le code compile ?
00:13:12Que se passe-t-il si vous modifiez votre code ligne par ligne ?
00:13:15Combien de temps faut-il pour qu'il se stabilise à nouveau
00:13:17et qu'il compile proprement ?
00:13:19Il ne le fait pas.
00:13:20Ça ne compilera pas après la première modif, ni sans doute
00:13:22après la deuxième, et ainsi de suite.
00:13:24Si vous vous tournez vers le serveur LSP en disant :
00:13:28"Cher serveur, je viens de modifier une ligne."
00:13:30"Est-ce que c'est cassé ?"
00:13:31Le serveur LSP dira : "Oui, c'est vraiment cassé."
00:13:34Et ce que fait cette fonction, c'est qu'elle
00:13:36injecte cette erreur directement après l'appel
00:13:39de l'outil comme un retour au modèle.
00:13:43"Oh, ce que tu viens de faire est faux."
00:13:45Et le modèle se dit : "C'est quoi ce délire ?"
00:13:47"Je n'ai pas fini mes modifications."
00:13:49"Pourquoi tu me dis ça ?"
00:13:50Évidemment que ce n'est pas faux.
00:13:51Mais si vous faites ça trop souvent, le modèle va abandonner.
00:13:54Et cela mène à de très mauvais résultats.
00:13:58Je ne suis donc pas fan du LSP.
00:13:59C'est une très mauvaise idée de l'activer.
00:14:02Il y a des points de synchronisation naturels
00:14:03où l'on veut du linting et de la vérification de type.
00:14:06Et tout ça.
00:14:07C'est quand l'agent pense avoir terminé, seulement là.
00:14:10Cela a changé récemment.
00:14:14C'est une seule session d'OpenCode, où chaque message
00:14:20devient son propre fichier JSON.
00:14:22Chaque message devient un fichier JSON sur le disque.
00:14:26Cela m'indique qu'il n'y a pas eu beaucoup de réflexion
00:14:29sur l'architecture globale du truc.
00:14:31Et si je perds confiance là-dedans, je ne
00:14:33veux plus utiliser cet outil.
00:14:35Encore une fois, je pense que l'équipe est très bonne.
00:14:37Ils ont itéré super vite
00:14:39et ont bâti quelque chose d'utile pour beaucoup, évidemment.
00:14:42C'est juste...
00:14:43Encore des décisions que je n'aurais pas prises et qui
00:14:46m'ont décidé à construire le mien.
00:14:50Ensuite, il y avait aussi ceci.
00:14:51OpenCode vient avec un serveur par défaut.
00:14:54L'architecture centrale est basée sur un serveur.
00:14:56Et les clients s'y connectent.
00:14:57L'interface terminal (TUI) est l'un des clients.
00:15:00Il y a aussi une interface de bureau.
00:15:01Et je ne sais pas.
00:15:03Cela s'est avéré être une vulnérabilité de sécurité
00:15:05avec exécution de code à distance par défaut.
00:15:09Et c'est aussi— si vous êtes si fiers de votre
00:15:12infrastructure ou architecture serveur,
00:15:15je supposerais que vous êtes des ingénieurs matures
00:15:18qui ont aussi pensé à la sécurité.
00:15:20Et apparemment, ça n'a pas été le cas.
00:15:21Et c'est resté ouvert pendant longtemps.
00:15:23Encore une fois, je n'accuse personne.
00:15:25C'est le genre de choses qui arrivent si vous
00:15:27travaillez dans une industrie qui avance à une vitesse
00:15:31folle, du jamais vu auparavant.
00:15:33C'est juste que je ne veux pas utiliser l'outil si c'est le cas.
00:15:36C'étaient mes observations sur les références de codage
00:15:42existantes.
00:15:42AMP et Droid auraient pu être des options.
00:15:45Mais là encore, pas de contrôle.
00:15:47Pour AMP, ils décident même des modèles utilisables.
00:15:50Et c'est un seul modèle pour un seul type de tâche.
00:15:53Et ce n'est pas pour moi.
00:15:55Concernant Droid, je pense que c'est un peu plus ouvert.
00:15:58Mais au moment où je l'ai testé,
00:16:00ça n'a juste pas—
00:16:02je n'y ai pas vu de gros avantage sur Cloud Code.
00:16:07Puis j'ai regardé des benchmarks pour d'autres raisons
00:16:10et j'ai trouvé Terminal Bench.
00:16:12Qui sait ce qu'est Terminal Bench ?
00:16:15OK, en gros, c'est un environnement d'évaluation
00:16:20de codage ou d'agent, avec beaucoup d'utilisation ordi
00:16:24et lié à la programmation—
00:16:24désolé, je suis vieux et fatigué à cause de mon fils de 4 ans.
00:16:31Il y a un tas de tâches d'utilisation ordi et de code
00:16:35qu'un agent ou le LLM à l'intérieur de l'agent
00:16:39doit accomplir.
00:16:40Je pense qu'il y en a environ 82.
00:16:43Et elles sont très diverses.
00:16:44Ça va de "répare ma config Windows" à "code-moi
00:16:48une simulation de Monte Carlo" ou quelque chose comme ça.
00:16:51Et ils ont un classement.
00:16:52Sur ce classement, on voit la combinaison
00:16:54de l'environnement de l'agent et du modèle.
00:16:57Et ils ont leur propre agent de codage appelé Terminus.
00:17:03C'est brillant car c'est l'un des environnements
00:17:06l'un des meilleurs environnements de test du benchmark.
00:17:09Nous le verrons plus tard.
00:17:11Que fait-il exactement ?
00:17:12Eh bien, tout ce que le modèle reçoit, c'est une session TMUX.
00:17:17Et tout ce qu'il peut faire, c'est y envoyer des frappes de touches
00:17:19et lire les séquences de codes VT qui sont émises.
00:17:23C'est donc l'interface la plus petite et la plus minimale
00:17:27qu'un modèle puisse avoir avec votre ordinateur.
00:17:31Et cela affiche des performances de pointe sur tout le classement.
00:17:36Alors, qu'est-ce que cela nous dit sur les environnements d'agents de codage existants ?
00:17:39Avons-nous besoin de toutes ces fonctionnalités pour que les modèles
00:17:41soient réellement performants ?
00:17:43Pour moi, personnellement, il ne s'agit pas seulement du fait que le modèle
00:17:48soit réellement bon.
00:17:49Il s'agit aussi pour moi, en tant qu'utilisateur, l'humain,
00:17:51d'avoir un moyen d'interagir avec mon agent, avec le modèle.
00:17:54Et Terminus n'est évidemment pas l'expérience utilisateur ou développeur
00:17:58que je recherche.
00:18:00Mais cela nous indique que toutes ces fonctionnalités que ces environnements
00:18:03de codage possèdent ne sont peut-être pas nécessaires pour obtenir
00:18:08de bons résultats avec des agents.
00:18:10Donc pas d'outils de fichiers, pas de sous-agents, pas de recherche web, rien du tout.
00:18:13Deux thèses basées sur toutes ces découvertes.
00:18:16Nous sommes dans la phase d'expérimentation pure.
00:18:18Et personne n'a d'idée de ce à quoi l'agent de codage parfait devrait
00:18:21ressembler ou à quoi l'environnement de codage parfait devrait ressembler.
00:18:23On essaie à la fois le minimalisme et le déploiement massif d'essaims
00:18:27et d'équipes d'agents, sans contrôle et en pleine autonomie,
00:18:30peu importe.
00:18:31Je pense que ce n'est pas encore fini.
00:18:33Nous n'avons pas encore répondu à la question de savoir à quoi cela
00:18:35devrait idéalement ressembler et ce qui deviendra la norme industrielle.
00:18:37Et la deuxième chose est que nous avons besoin de meilleurs moyens
00:18:38d'expérimenter avec les agents de codage.
00:18:40C'est-à-dire que nous avons besoin qu'ils puissent s'auto-modifier
00:18:42et devenir malléables.
00:18:47Ainsi, nous pouvons rapidement expérimenter des idées
00:18:48et voir si c'est quelque chose que nous pouvons transformer en standard
00:18:50industriel, un nouveau flux de travail que nous allons probablement tous adopter.
00:18:53L'idée de base était donc —
00:18:58et c'est très simple, rien de sorcier —
00:18:59enlever tout le superflu et construire un noyau minimal extensible.
00:19:01Il y a un certain confort d'utilisation.
00:19:05Ce n'est pas une page blanche.
00:19:06C'est donc Pi.
00:19:09Et la devise générale est : adaptez votre agent de codage
00:19:10à vos besoins plutôt que l'inverse.
00:19:13Il est livré avec quatre paquets, un paquet IA, qui est essentiellement
00:19:16juste une simple abstraction sur plusieurs fournisseurs, qui
00:19:21utilisent tous des protocoles de transport différents.
00:19:24Il est donc très facile de parler à tous les fournisseurs
00:19:27et de basculer entre eux dans le même contexte ou la même session.
00:19:29Le noyau de l'agent, qui est juste une boucle d'agent généralisée
00:19:34avec des emplacements d'outils, de la vérification,
00:19:36et ainsi de suite.
00:19:38Et du streaming, une interface utilisateur terminal
00:19:39qui fait environ 600 lignes de code et fonctionne vraiment bien,
00:19:42étonnamment, parce qu'elle n'a pas été écrite par un robot.
00:19:47Et l'agent de codage lui-même, qui est à la fois un SDK
00:19:51que vous pouvez utiliser en mode sans interface
00:19:54ou un agent de codage avec interface terminal complète.
00:19:57C'est l'intégralité de l'instruction système.
00:20:02Il n'y a rien de plus par rapport aux autres
00:20:05instructions système de codage.
00:20:08C'est en jetons.
00:20:10Il s'avère que les modèles de pointe sont massivement entraînés par RL pour savoir
00:20:13ce qu'est un agent de codage.
00:20:16Alors pourquoi continuer à leur dire qu'ils sont un agent de codage
00:20:18et comment ils doivent effectuer des tâches de codage, n'est-ce pas ?
00:20:21YOLO par défaut, pourquoi cela ?
00:20:27La plupart des environnements d'agents de codage ont actuellement deux modes.
00:20:30Soit l'agent peut faire ce qu'il veut,
00:20:33soit l'agent doit vous demander : "voulez-vous vraiment
00:20:36supprimer ce fichier ?"
00:20:40"Voulez-vous vraiment lister les fichiers de ce répertoire ?",
00:20:41et ainsi de suite.
00:20:44Et il y a différentes nuances de gris ici.
00:20:44Mais au bout du compte, cela revient au fait que l'utilisateur
00:20:47doit approuver une action de l'agent.
00:20:49Et alors nous sommes en sécurité.
00:20:52Et je pense que c'est une erreur parce que cela mène à la fatigue.
00:20:53Et les gens finiront soit par le désactiver entièrement, mode YOLO,
00:20:55soit par rester là et appuyer sur Entrée sans rien lire.
00:20:58Donc je ne pense pas que ce soit une solution.
00:21:01La conteneurisation n'est pas non plus une solution
00:21:02si vous vous inquiétez de l'exfiltration de données
00:21:04et des injections de commandes.
00:21:06Mais je pense que c'est la seule chose que vous —
00:21:07Je pense que c'est la meilleure base comparée aux garde-fous
00:21:10comme l'approbation ou les dialogues.
00:21:14Il n'a que quatre outils : lire un fichier, écrire un fichier,
00:21:17modifier un fichier et Bash.
00:21:19Bash est tout ce dont vous avez besoin.
00:21:21Qu'est-ce qui n'y est pas ?
00:21:22Pas de MCP, pas de sous-agents, pas de plan, pas d'arrière-plan,
00:21:23Bash, pas de listes de tâches intégrées.
00:21:25Voici ce que vous pouvez faire à la place.
00:21:26Pour MCP, utilisez des outils CLI plus des compétences,
00:21:28ou construisez une extension, ce que nous verrons dans un instant.
00:21:30Pas de sous-agents, pourquoi ?
00:21:34Parce qu'ils ne sont pas observables.
00:21:35Au lieu de cela, utilisez tmux et relancez l'agent.
00:21:36Vous avez un contrôle total sur les sorties et entrées de l'agent
00:21:41et pouvez voir tout ce qui se passe dans le sous-agent.
00:21:44Assez intéressant, code spawn —
00:21:48le mode équipe fait maintenant exactement cela aussi, fondamentalement.
00:21:50Pas de mode plan, écrivez un fichier plan.md.
00:21:55Vous avez un artefact persistant au lieu
00:21:57d'une interface bancale qui ne tient pas vraiment
00:21:59dans la fenêtre de votre terminal.
00:22:02Et vous pouvez le réutiliser sur plusieurs sessions.
00:22:04Pas de Bash en arrière-plan, pas besoin, nous avons tmux.
00:22:07C'est la même chose.
00:22:09Et pas de tâches intégrées, écrivez un todo.md.
00:22:11Même chose.
00:22:13Ou construisez tout cela vous-même comme vous l'aimez.
00:22:14Et c'est ce que Py vous permet de faire, en étant hyper extensible.
00:22:17Vous pouvez donc étendre les outils, sur mesure.
00:22:21Vous pouvez donner au LLM des outils que vous définissez.
00:22:22Je pense qu'aucun autre environnement d'agent de codage
00:22:26ne propose cela actuellement, à moins de modifier le code source.
00:22:28Vous n'avez pas besoin de le faire ici.
00:22:31Vous écrivez simplement un fichier TypeScript simple,
00:22:32et il est chargé automatiquement.
00:22:34Vous pouvez aussi écrire une interface utilisateur personnalisée.
00:22:37Les compétences sont évidemment dans leurs modèles de prompt, thèmes.
00:22:39Et vous pouvez regrouper tout cela, le mettre sur NPM ou Git,
00:22:43et l'installer avec une seule commande, ce qui est très pratique.
00:22:46Et tout se recharge à chaud.
00:22:49J'ai donc développé mes propres extensions qui
00:22:51sont spécifiques à un projet ou une tâche dans Py à l'intérieur du projet.
00:22:53Et à mesure que l'agent modifie l'extension, je recharge simplement.
00:22:59Et cela met immédiatement à jour tout le code en cours d'exécution,
00:23:05ce qui est très agréable.
00:23:10Et en pratique, cela signifie que vous pouvez faire de la compaction personnalisée.
00:23:11Je pense que c'est l'une des choses que les gens devraient expérimenter
00:23:14davantage, car toutes les implémentations de compaction
00:23:16actuelles ne sont pas bonnes.
00:23:19Des barrières de permission, vous pouvez facilement les implémenter
00:23:21en 50 lignes de code, et couvrir en quelque sorte
00:23:23ce que font tous les autres environnements d'agents si vous le souhaitez.
00:23:24Fournisseurs personnalisés, enregistrer des proxys de modèles auto-hébergés.
00:23:27Peu importe.
00:23:31Vous n'avez pas besoin que je le fasse pour vous.
00:23:32Vous pouvez le faire, et en fait, votre robot peut le faire pour vous.
00:23:33Ou écraser n'importe quel outil intégré.
00:23:37Modifier le fonctionnement de read, write, edit et bash.
00:23:38Peu importe.
00:23:41J'ai une version de read, write, edit et bash
00:23:42qui fonctionne via SSH sur une machine distante.
00:23:43Pour moi, cela a pris cinq minutes à implémenter, mais ça marche.
00:23:47Et vous avez un accès complet à la TUI, donc vous pouvez réellement
00:23:51écrire une interface utilisateur entièrement personnalisée dans l'agent de codage.
00:23:54Cloud Code Shipped/D'ailleurs, il a fallu cinq minutes à quelqu'un
00:23:58pour reproduire cela dans Py avec plus de fonctionnalités.
00:24:02PyMessenger, je n'ai aucune idée de ce qu'il fait,
00:24:05mais apparemment, c'est comme une salle de chat pour plusieurs agents Py
00:24:07qui communiquent ensuite, avec une interface personnalisée.
00:24:10On peut regarder ce qu'ils font, et ouais, ça marche tout simplement.
00:24:13Ou PyMess, si vous vous ennuyez, jouez simplement à un jeu
00:24:18pendant que l'agent travaille, n'est-ce pas ?
00:24:23Vous pouvez faire cela.
00:24:24Ou PyAnnotate, ouvrez le site web
00:24:25sur lequel vous travaillez actuellement, et annotez des trucs en front-end,
00:24:28et donnez des retours à l'agent directement en ligne.
00:24:31Réinjectez-les dans le contexte, faites-lui modifier la chose.
00:24:35Ou quelque chose que j'utilise, File Switch It.
00:24:39Je ne veux pas basculer vers un IDE ou un éditeur.
00:24:42Je veux juste regarder rapidement le fichier qui a été modifié.
00:24:43Tout cela, ce sont des extensions.
00:24:46Rien de tout cela n'est intégré, et cela prend généralement aux gens
00:24:48quelques minutes à un après-midi
00:24:50pour construire tout cela comme ils le souhaitent.
00:24:52PyWavic dit, aussi, je ne sais pas ce qu'il fait.
00:24:56Py vient aussi avec une structure en arbre.
00:25:00Je ne vais pas expliquer ça.
00:25:01Regardez juste sur py.dev.
00:25:03Votre session est un arbre, pas une liste linéaire de chats.
00:25:04Vous pouvez donc essentiellement créer des agents
00:25:07en lisant tous les fichiers du répertoire,
00:25:09résumer cela, revenir à la racine de la conversation,
00:25:11emporter le résumé avec moi, et faire le travail réel.
00:25:14Rien n'est injecté dans votre dos.
00:25:19Agents, compétences, suivi complet des coûts.
00:25:22Beaucoup d'environnements ne font pas cela ici.
00:25:24Open code ne le fait pas bien.
00:25:26Export HTML, format JSON, flux JSON sans interface, etc.
00:25:29Est-ce que ça marche vraiment ?
00:25:33Eh bien, terminal bench.
00:25:34Laissez-moi zoomer ici.
00:25:35Je ne peux pas.
00:25:36C'est incroyable.
00:25:37Voici Py juste derrière Terminus 2 utilisant Claude Opus 4.5.
00:25:38C'était en octobre, quand Py n'avait même pas de compaction.
00:25:45C'est l'heure de la démo, je saute ça, contre les robots
00:25:49parce qu'ils cassent l'open source.
00:25:51Si vous êtes associé au projet de ce gars,
00:25:54alors vous aurez des centaines de personnes venant d'OpenClaw
00:25:56sur votre dépôt pour vous inonder de messages automatiques.
00:26:02J'ai donc dû inventer quelques mesures.
00:26:06J'ai inventé l'OSS-vacation.
00:26:09J'ai simplement fermé les tickets et les PR pendant quelques semaines
00:26:11pour travailler sur mes propres trucs.
00:26:14Tout ce qui est important sera de toute façon signalé plus tard
00:26:16ou sur le Discord.
00:26:20Et puis j'ai aussi implémenté un système d'accès personnalisé
00:26:21où j'ai un fichier markdown dans le dépôt.
00:26:26Si quelqu'un ouvre une PR sans que son nom de compte
00:26:28soit dans ce fichier markdown, la PR est automatiquement fermée.
00:26:32Peu importe.
00:26:34D'abord, présentez-vous avec une voix humaine via un ticket.
00:26:35Écrivez un ticket qui ne dépasse pas une certaine longueur
00:26:39parce que tout le reste est probablement généré par un robot.
00:26:42Et une fois que c'est fait, je suis ravi de valider.
00:26:45Vous entrez donc dans ce fichier et pouvez maintenant soumettre des PR
00:26:47au dépôt.
00:26:50Tout ce que je demande, c'est une vérification humaine.
00:26:51Et Mitchell de Ghosty a ensuite pris cela et a construit
00:26:53un projet appelé Vouch, qui est plus facilement applicable
00:26:57à vos propres dépôts open source.
00:27:00Et voilà, c'est Pi.
00:27:02Allez-y et essayez-le.
00:27:03C'est tout pour moi.
00:27:05[APPLAUDISSEMENTS]
00:27:06[MUSIQUE]
00:27:07[MUSIQUE]

Key Takeaway

L'agent Pi surpasse les outils complexes comme Cloud Code en remplaçant les fonctionnalités lourdes par un noyau minimaliste de 600 lignes de code et une extensibilité totale par l'utilisateur.

Highlights

L'agent de codage Pi atteint des performances de pointe sur Terminal Bench, se classant juste derrière Terminus 2 avec Claude 4.5.

Pi repose sur un noyau minimaliste de 600 lignes de code pour son interface utilisateur terminal, sans recours aux sous-agents ou au protocole LSP par défaut.

L'architecture de Pi permet une extensibilité totale via des fichiers TypeScript simples qui se rechargent à chaud sans modifier le code source.

L'outil ne propose que quatre fonctions de base : lire, écrire, modifier un fichier et l'accès au shell Bash.

Le système Vouch restreint les contributions open source aux humains validés pour contrer l'inondation de rapports de bogues générés par IA.

Timeline

Limites des agents de codage commerciaux actuels

  • Le passage du copier-coller ChatGPT aux agents autonomes a radicalement augmenté la production de code dès début 2025.
  • Les outils dominants comme Cloud Code sont devenus des usines à gaz dont les utilisateurs n'exploitent que 5 % des capacités.
  • L'absence d'observabilité et de contrôle sur le contexte injecté nuit à la prévisibilité des flux de travail.

L'évolution des outils de codage assistés par IA montre une tendance vers une complexité excessive. Cloud Code, bien qu'inventeur du genre agentique, souffre d'une interface surchargée et de comportements opaques. Ces outils manipulent le contexte en arrière-plan sans informer l'utilisateur, ce qui rend les résultats imprévisibles lors des mises à jour fréquentes du serveur.

Problèmes techniques de l'open source et du LSP

  • L'activation du Language Server Protocol (LSP) par défaut dans les agents provoque des échecs prématurés lors des modifications multi-fichiers.
  • Certaines architectures basées sur des serveurs exposent des vulnérabilités critiques d'exécution de code à distance.
  • Le stockage de chaque message de chat sous forme de fichier JSON individuel témoigne d'un manque de réflexion architecturale globale.

L'utilisation du LSP est contre-productive car il signale des erreurs de compilation dès la première ligne modifiée, alors que l'agent n'a pas terminé sa tâche. Cela perturbe le modèle de langage et provoque son abandon. De plus, des outils comme OpenCode ont souffert de failles de sécurité majeures dues à leur conception client-serveur mal sécurisée.

Preuves du minimalisme via Terminal Bench

  • L'agent Terminus obtient les meilleurs résultats au benchmark avec pour seule interface une session tmux minimale.
  • Les modèles de pointe sont déjà entraînés par apprentissage par renforcement (RL) pour comprendre leur rôle d'agent sans instructions système complexes.
  • Le succès des environnements dépouillés prouve que les fonctionnalités complexes des IDE ne sont pas nécessaires à la performance de l'IA.

Le classement Terminal Bench, composé de 82 tâches variées, place les interfaces textuelles pures au-dessus des environnements de développement intégrés complexes. Cette découverte suggère que l'essentiel réside dans la capacité du modèle à interagir directement avec le système. L'expérimentation actuelle doit donc se concentrer sur la malléabilité de l'outil plutôt que sur l'accumulation de fonctions.

Architecture et extensibilité de l'agent Pi

  • Pi organise les sessions de chat sous forme d'arborescence plutôt que de listes linéaires pour une meilleure gestion du contexte.
  • Les utilisateurs peuvent redéfinir les outils de base pour les faire fonctionner via SSH sur des machines distantes en quelques minutes.
  • Le mode YOLO remplace les demandes d'approbation systématiques par une isolation via conteneurisation pour éviter la fatigue de l'utilisateur.

Pi se distingue par son SDK qui permet de charger des extensions personnalisées pour l'IA ou l'interface utilisateur. Des exemples comme PyAnnotate permettent d'annoter directement une page web pour donner un retour visuel à l'agent. Cette flexibilité permet de créer des flux de travail spécifiques, comme la compaction de contexte personnalisée ou l'intégration d'outils de communication entre agents.

Protection du développement contre les robots

  • La fermeture temporaire des tickets (OSS-vacation) permet de maintenir le développement sans l'interruption des messages automatisés.
  • Le système Vouch exige qu'un contributeur soit inscrit dans un fichier markdown pour que sa Pull Request soit acceptée.
  • Une vérification humaine préalable via un ticket court est nécessaire pour filtrer le spam généré par les outils d'IA tiers.

Le développement de Pi a dû faire face à l'inondation de contributions et de signalements de bogues automatisés qui polluent l'open source. Pour protéger le projet, un mécanisme d'accès restreint a été mis en place, forçant une interaction humaine réelle avant toute modification du code. Cette approche a ensuite été généralisée sous le projet Vouch par d'autres développeurs de la communauté.

Community Posts

View all posts