WUPHF - un système où des agents maintiennent eux-mêmes un wiki LLM dans le style de Karpathy
(github.com/nex-crm)- Une couche wiki pour agents IA basée sur Markdown & Git
- Une couche de base de connaissances native pour les LLM, conçue pour permettre aux agents IA d’accumuler du contexte au-delà des sessions ; elle est stockée localement dans
~/.wuphf/wiki/et peut être récupérée en entier viagit clone - Au lieu d’une infrastructure lourde comme Postgres, pgvector, Neo4j ou Kafka, le système repose uniquement sur markdown + git, et gère les connaissances avec BM25 + SQLite, sans base de données vectorielle
- Stockage en markdown, recherche BM25 avec bleve, et gestion des métadonnées structurées (facts, entities, edges, redirects, supersedes) avec SQLite
- Sans utiliser de base vectorielle, il atteint 85% de recall@20 sur un benchmark de 500 artefacts et 50 requêtes
- Il est prévu d’utiliser sqlite-vec si certaines classes de requêtes passent sous ce seuil
- Chaque agent dispose d’un carnet personnel dans
agents/{slug}/notebook/*.mdet accède à un wiki partagé dansteam/- Il existe un flux de promotion des entrées du carnet vers le wiki après relecture par un agent ou un humain, avec génération automatique de backlinks
- Une petite machine à états gère l’expiration et l’archivage automatique
- Per-entity fact log : enregistrement en JSONL append-only dans
team/entities/{kind}-{slug}.facts.jsonl- Un worker de synthèse reconstruit le brief d’entité tous les N facts, et les commits sont laissés sous une identité git distincte, "Pam the Archivist", ce qui permet de vérifier immédiatement la provenance dans
git log - Les ID de facts sont des ID déterministes incluant les offsets de phrase, et un slug canonique, une fois attribué, est fusionné via un redirect stub et ne peut jamais être modifié
- Les reconstructions sont logiquement identiques, sans garantie d’identité octet par octet
- Un worker de synthèse reconstruit le brief d’entité tous les N facts, et les commits sont laissés sous une identité git distincte, "Pam the Archivist", ce qui permet de vérifier immédiatement la provenance dans
- Prise en charge des [[Wikilinks]] et rendu en rouge des liens cassés ; un lint cron quotidien détecte les contradictions, les entrées obsolètes et les wikiliens cassés
- Recherche basée sur des citations via la commande slash
/lookupet les outils MCP- Un classificateur heuristique oriente les requêtes courtes vers BM25 et les requêtes descriptives vers une boucle de réponse citée
- Limites connues
- Le réglage du recall est en cours, et 85% ne constitue pas une garantie générale
- La qualité de synthèse dépend de la qualité des facts enregistrés par l’agent (garbage in, garbage out) ; le lint aide, mais ce n’est pas un moteur de jugement
- Actuellement limité à un seul office, sans prise en charge de la fédération cross-office
- Fourni comme partie de WUPHF (un office d’agents IA open source prenant en charge Claude Code, Codex, OpenClaw et les LLM locaux), mais la couche wiki peut aussi être utilisée seule — si vous connectez WUPHF à une configuration d’agent existante, le wiki s’y attache automatiquement
- Licence MIT
1 commentaires
Commentaires sur Hacker News
Je ne vois pas très bien l’intérêt principal de l’automatisation des notes. Avant déjà, copier-coller du texte dans des notes ne m’a jamais vraiment aidé ; je doute que multiplier ça par 100 change grand-chose
Pour moi, l’essentiel dans les notes, c’est de lire les sources de façon critique, de les digérer selon mon modèle mental, puis d’en garder une trace
Les détails peuvent se retrouver plus tard ; au final, ce qui compte, c’est le processus d’affinage de ce modèle
Dans ce cas, le but est peut-être justement de ne pas construire soi-même ce modèle mental et de le déléguer à un cerveau LLM partagé
Cela dit, je doute fortement qu’une telle approche permette de créer quelque chose de réellement précieux pour le propriétaire du produit. Si des prompts et un harnais d’agents suffisent à créer un produit de valeur, alors n’importe qui peut le recréer, le développement produit devient une commodity, et au final il ne reste peut-être de valeur que dans les tokens
Mon hypothèse, c’est que le do things that don’t scale de Paul Graham restera valable, mais que le contenu même de ces choses qui ne passent pas à l’échelle risque de changer
Cela dit, je me suis récemment mis à utiliser Obsidian sérieusement. En configurant des compétences pour la prise de notes, la recherche, les liens, le découpage et la réorganisation d’une base de connaissances, j’ai l’impression d’avoir un assistant numérique qui s’occupe du rangement
Maintenant, il me suffit de noter des idées en vrac pour que l’agent leur donne une structure, pose des questions de suivi et les relie à d’autres travaux. C’est toujours moi qui lis les sources et construis mon modèle mental, mais j’obtiens des notes de grande qualité pour un coût presque nul
C’est un gaspillage colossal
La plupart des choses n’ont pas besoin d’entrer dans des notes au départ, et les LLM augmentent excessivement le bruit sans même faire un vrai travail de validation ou de filtrage
Il y avait un bon essai vidéo de JA Westenberg sur ce sujet
https://youtube.com/watch?v=3E00ZNdFbEk
J’ai trouvé ça assez intéressant
À mon avis, l’optimum, c’est la curation humaine ; surtout si on ne gère pas consciemment la debt ou la drift, le fonctionnement sans supervision n’est pas la solution
D’autant plus que le nom est exactement le même que celui du produit inutile et redondant Wuphf.com dans The Office
On a l’impression qu’il suffit d’ajouter AI au nom d’un produit pour attirer des milliards de dollars, et de glisser Karpathy dans un billet de blog pour se faire recruter comme principal engineer chez Anthropic
On dirait surtout une ruée pour extraire de l’argent tant que la mode dure, sans trop se demander ce dont les clients ont réellement besoin
Tout le monde se précipite comme pour profiter de la vague tant qu’elle passe
Cela dit, à l’époque on construisait quand même de vraies choses, et les conditions de financement plus serrées limitaient un peu la surchauffe
Cette vague LLM a au moins une vraie part de potentiel et de valeur, et c’est une technologie assez amusante à apprendre et à manipuler
J’ai accepté depuis longtemps l’idée que quand l’argent afflue vers ce genre d’endroit, il faut saisir l’occasion tant que ce n’est pas contraire à l’éthique. Tant que le capital VC/PE abonde, on peut aussi construire quelque chose de précieux et de sympa
J’attends toujours un harnais CLI de classe mondiale capable de remplacer Claude Code. J’ai besoin de quelque chose qui règle les problèmes de mémoire et de conception
Le web design reste proche du cauchemar avec des LLM
On a aussi fait des PoC en entreprise, et tout cela s’est finalement condensé dans ce projet construit à côté pour m’aider dans mon travail personnel. En pratique, la bonne interface pour rendre cette infra de contexte réellement utilisable, c’était précisément ça
Le poste de principal engineer chez Anthropic ne m’intéresse pas. J’étais auparavant Product Manager chez HubSpot, je gagnais bien mieux ma vie qu’aujourd’hui, et il est probable que je ne retrouve pas ce niveau pendant encore plusieurs années
Si j’ai fait plusieurs paris puis itéré sans cesse, c’est parce que tout a évolué au contact direct des clients. Pendant ce temps, les anciens concurrents construisent encore des AI CRM en stealth
Ayant longtemps travaillé dans ce secteur, je pense que la vague en elle-même importe peu, mais qu’il y a clairement une valeur concrète à récupérer en dessous
J’ai lu cette review : https://zby.github.io/commonplace/agent-memory-systems/reviews/wuphf/
C’est déjà le troisième wiki LLM à arriver en une de la front page en moins de 24 heures, donc c’est clairement un sujet brûlant
J’ai moi aussi un intérêt dans ce domaine, donc je ne suis pas totalement objectif, mais j’ai listé séparément ce que j’attends de ce type de système
https://zby.github.io/commonplace/notes/designing-agent-memory-systems/
J’ai l’impression que tout le monde reconstruit son propre système, avec énormément de duplication d’efforts ; j’aimerais qu’il existe une manière de collaborer
En revanche, à voir le style, ça semblait clairement écrit par un LLM, donc je me demande si, pour ce genre de notes de conception, vous les réécrivez ensuite avec vos propres mots pour vérifier qu’elles portent bien vos idées à vous
Nous avons lancé nex.ai comme société d’infra de contexte bien avant que Karpathy ne parle de l’idée du wiki LLM, et même si cela apparaît encore peu dans WUPHF, nous commençons maintenant à en montrer certains éléments
Une bonne partie des inquiétudes listées dans l’article comparatif correspond justement à des sujets que nous traitons déjà dans l’infra de contexte que nous avons construite, donc c’était agréable à voir
Cela dit, je serais tout à fait favorable à des collaborations pour réduire les doublons et partager ce que chacun a appris
Vous dites espérer qu’il y ait des occasions de collaborer, ce qui sonne presque comme s’il n’y en avait pas actuellement, et ça m’étonne
En ajoutant simplement QMD à un vault Obsidian, on est déjà à 80 %, et ça prendrait probablement moins de deux heures
Pour le contexte, voici aussi les liens vers le message original de Karpathy
https://x.com/karpathy/status/2039805659525644595
https://xcancel.com/karpathy/status/2039805659525644595
Je me demande si les AI Notes apportent vraiment de la valeur, ou si elles ne font qu’ajouter du bruit
Cela dit, j’aime bien le style ASCII du site
Comme solution à ce problème, j’aimerais que quelqu’un construise une sorte de renaissance de StackOverflow
Avec une curation humaine, mais sous la forme d’un graphe de connaissances distribué où des LLM collectifs essaient de résoudre les problèmes, puis publient une question à l’ancienne quand ils bloquent
Si mon agent pouvait me dire « je suis bloqué ici, j’ai posté une question sur SO, revenons plus tard quand il y aura une réponse », ça me semblerait tout à fait acceptable
Je me demande comment empêcher un LLM d’écrire trop
J’ai construit quelques outils et systèmes du même genre, et dans tous les cas le LLM gonflait en permanence la documentation, jusqu’à finir par rendre l’ensemble du système incohérent, et moins utile à mesure qu’il grossissait
Une de mes anciennes expériences consistait à donner seulement quelques liens au LLM, puis à le laisser explorer les sujets associés et construire son propre wiki de connaissances avec des résumés, des liens croisés et les sources sur chaque page
En apparence, ça semblait bien, mais en lisant les vraies données, ce n’était pas terrible
C’était une expérience d’il y a quelques années, donc cela vaudrait peut-être la peine de la retenter aujourd’hui avec quelque chose comme opus 4.7
Pour alimenter la réflexion, la communauté TiddlyWiki explore elle aussi naturellement les outils IA
TiddlyWiki est un wiki auto-modifiable basé sur un fichier HTML unique, qui existe depuis plus de 20 ans
Il n’a pas forcément évolué vers un environnement agentic, mais il existe un plugin markdown, ainsi que des outils pour rendre les fichiers exécutables ou les transformer en webapps self-serving. Git y est un peu délicat
Donc, en théorie, un wiki agentic en fichier unique pourrait circuler et se modifier lui-même
https://tiddlywiki.com/
La configuration en fichier unique dont vous parlez dispose déjà de plusieurs connecteurs LLM. Par exemple : https://github.com/rimir-cc/tw-llm-connect
Son attrait vient exactement de là : aucune dépendance, aucune installation, archivage très facile ; une configuration de wiki agentic en fichier unique qui s’édite elle-même est donc possible dès aujourd’hui
Plus proche du pattern LLM Wiki de Karpathy, il y a aussi twillm, sur lequel je travaille
https://github.com/Jermolene/twillm
Celui-ci utilise la configuration Node.js de TiddlyWiki, stocke les tiddlers sous forme de fichiers individuels, peut pointer directement vers un vault Markdown existant et s’utiliser avec des outils comme Claude Code
Les avantages de TiddlyWiki sont également assez nets. C’est open source, donc on peut continuer à l’utiliser sur le long terme, et comme c’est basé sur le web, on y accède de partout
De plus, les vues calculées remplacent les fichiers d’index matérialisés. Dans l’approche de Karpathy, le LLM doit continuer à synchroniser index.md à chaque ajout de note, ce qui devient facilement stale au fil des sessions ; c’est justement le genre de tâche où les LLM sont particulièrement mauvais
À l’inverse, les vues de TiddlyWiki reposent sur des expressions de filtre en temps réel, donc un résultat comme « trier les tiddlers tagués concept par note » est calculé à la volée au moment du rendu
Le frontmatter devient lui aussi une structure interrogeable. Obsidian affiche le frontmatter YAML comme une boîte de métadonnées en haut de la note, tandis que TiddlyWiki promeut ces champs au rang de champs natifs de tiddler, directement exploitables pour filtrer, trier et agréger
Et les LLM peuvent écrire non seulement du contenu, mais aussi de petites applets. Au lieu de simples notes Markdown, ils peuvent produire des tiddlers en wikitext (.tid) pour créer des vues vivantes et interactives comme des tableaux de bord, des outils d’exploration de tags, des index de journal ou des glossaires
Le domaine des artefacts auto-construits est intéressant, et il prend beaucoup d’ampleur en ce moment, surtout depuis que les LLM — en particulier les modèles orientés code — progressent rapidement sur ce terrain
J’ai moi aussi récemment expérimenté un projet centré sur un minimum de dépendances et sur le contrôle local des agents
https://github.com/GistNoesis/Shoggoth.db/
Il crée et entretient lui-même une base de données sqlite pour réaliser des tâches longues données en prompt, en utilisant comme données source une copie locale de Wikipédia
J’y ai aussi inclus un harnais et des outils vraiment minimaux pour expérimenter la drift des agents
Il est également assez simple d’y connecter des outils de traitement d’image : il suffit d’encoder les images en base64 et de les passer à llama.cpp, et l’implémentation détaillée peut être vibecodée à la va-vite avec un LLM local
Je pense que c’est un outil d’usage assez général
Par exemple, j’avais autrefois un script qui utilisait Amazon Textract pour extraire le montant, la date et le vendeur depuis des factures et reçus dans un dossier, puis quelqu’un vérifiait les nombres pour produire un CSV destiné au comptable
Maintenant, on pourrait remplacer cet appel à Amazon Textract par un appel à un modèle llama.cpp avec le bon prompt, conserver tout l’outillage existant pour les factures, et aller vers une comptabilité bien plus créative
J’ai aussi expérimenté une variante où une séquence d’images caméra servait à piloter un robot physique ; dans les cas simples, il bougeait réellement et atteignait la cible
En revanche, le LLM que j’utilise n’a jamais été entraîné pour conduire un robot, et il lui fallait 10 secondes pour choisir l’action suivante, donc ce n’était pas pratique. Les contrôleurs classiques non deep learning que j’utilise aujourd’hui font tourner la boucle de vision à 20 Hz
Les modèles LLM et les agents construits dessus ne sont pas déterministes mais probabilistes
Ils réussissent certaines choses avec une certaine probabilité, mais pas à tous les coups
Donc plus on laisse un agent poursuivre une tâche longtemps, plus la probabilité d’échec augmente. Ce type d’agent à longue exécution finira par échouer, tout en brûlant énormément de tokens au passage
Une des choses que les agents LLM font bien, c’est réécrire leurs propres instructions
L’astuce consiste à limiter le temps et les étapes de raisonnement du modèle de thinking, puis à évaluer, mettre à jour et relancer
Pour prendre une image, il faut considérer qu’un agent finit par tomber. Au lieu de le faire courir longtemps jusqu’à la chute, mieux vaut deux fois cinq minutes qu’une fois dix minutes
D’ici quelques semaines, ce genre d’agents auto-référentiels occupera probablement le haut des feeds Twitter de tout le monde
Donc ce genre de wiki risque fort d’atteindre un certain état puis d’y rester bloqué