README.md
README.md
kwikines — wiki agentique + RAG pour LM StudioPlugin LM Studio qui construit et entretient lui-même un wiki interconnecté à partir de sources brutes, puis ajoute par-dessus une couche RAG (embeddings locaux + recherche sémantique) pour retrouver l'information que le wiki a compressée. Tout tourne en local : aucun appel réseau, aucun service cloud.
L'idée du wiki incrémental vient du LLM Wiki d'Andrej Karpathy :
plutĂ´t que de refaire une recherche dans les documents bruts Ă chaque question,
le modèle construit et cure un wiki markdown qui se bonifie à chaque source.
kwikines y ajoute la couche de récupération : le RAG indexe le wiki (le
savoir déjà synthétisé), pas les sources brutes.
Trois couches, dans un seul dossier de base :
raw/ — les sources brutes, immuables.wiki/ — les pages générées (sources/, entities/, concepts/,
analyses/) plus index.md et log.md.AGENTS.md — le schéma : conventions de frontmatter, de wikilinks, de
fusion. Le plugin lit ce fichier et l'injecte dans ses propres prompts pour
piloter le LLM chargé. C'est le plugin qui fait le travail d'extraction, de
rédaction, de fusion et de mise à jour des références croisées — le modèle avec
qui tu discutes n'a qu'Ă appeler l'outil.Un squelette prĂŞt Ă copier est fourni dans template/ : le
AGENTS.md par défaut, et une note de veille d'exemple dans raw/ pour faire
tourner une première ingestion de bout en bout. Le dossier wiki/ n'y est pas —
le plugin le crée lui-même à la première opération.
Charger deux modèles (trois pour ingérer des PDF) :
| Modèle | Rôle | Obligatoire |
|---|---|---|
| LLM de chat | ingest / query / lint. Doit tenir la sortie structurée JSON — un instruct récent de taille raisonnable. | oui |
| Modèle d'embedding | la couche RAG (nomic-embed-text, bge-*, all-MiniLM…). | oui |
| Modèle de vision | transcription des sources .pdf à l'ingestion. | seulement pour les PDF |
Puis, dans les réglages du plugin, renseigner Wiki base directory : le dossier
qui contient AGENTS.md, raw/ et wiki/. C'est la seule racine que le
plugin peut lire ou écrire.
Régler Wiki base directory sur ~/Documents/mon-wiki, puis demander au modèle
d'ingérer la note d'exemple déjà présente dans raw/ :
ingère
exemple-atelier-lumen.mddans le wiki
Le plugin renvoie d'abord un aperçu des pages qu'il compte écrire ; une fois
confirmé, le wiki existe et se questionne. Ensuite, raw/ accueille tes propres
documents.
Agentiques — le plugin fait le travail
kwikines_ingest(source, confirm?, pages?) — lit une source de raw/, pilote le
LLM pour en extraire entités et concepts, écrit la page source, crée ou fusionne
les pages liées, met à jour et , puis réindexe le RAG. En mode
supervisé (défaut), renvoie un aperçu ; rappeler avec pour écrire.Bas niveau
RAG
kwikines_reindex() — (re)construit l'index vectoriel, de façon incrémentale.kwikines_search(query, top_k?, hybrid?) — recherche sémantique ou hybride ;
renvoie les passages, leurs wikilinks et leurs scores..md, .txt, .docx ou .pdf dans .| Format | Traitement |
|---|---|
.md, .markdown, .txt | lus tels quels |
.docx | converti par mammoth, sans modèle |
.pdf | rasterisé page par page (pdfium) puis transcrit par le modèle de vision chargé |
.odt, .doc | non supportés — exporter d'abord en .docx, .pdf ou .md |
La conversion d'un .docx ou d'un .pdf dépose le .md obtenu à côté de
l'original dans raw/ : c'est la seule écriture que le plugin s'autorise dans
raw/. Le .md dérivé est signalé comme tel — ingérer l'un ou l'autre, pas
les deux.
wiki/.kwikines/index.json (vecteurs + métadonnées). Réindexation
incrémentale par hash de contenu, donc portable d'une machine à l'autre : un
git checkout ou une synchro cloud réécrit les dates de fichiers, pas leur contenu.<base>/.lmstudio-fs-backup/, horodatée,
et l'opération est journalisée dans .lmstudio-fs-backup/log.md.Recherche (chunkSizeChars, chunkOverlapChars, defaultTopK, hybridSearch,
autoReindexOnSearch), PDF (pdfRenderScale, pdfMaxPages, pdfLanguage,
pdfTranscriptionStyle), garde-fous (maxFileSizeMb, supervisedIngest), et
les trois champs d'override de modèle. Chacun est documenté dans l'UI de LM Studio.
supervisedIngest pour ingérer en série.gray-matter embarque js-yaml 3.x, qui porte un avis de sécurité (DoS par
complexité quadratique). L'exposition est locale — du frontmatter généré par un
LLM sur ta propre machine — mais l'avis existe.kwikines est écrit et maintenu par Rodrigue Beck.
PolyForm Noncommercial 1.0.0 — usage non commercial.
kwikines — wiki agentique + RAG pour LM StudioPlugin LM Studio qui construit et entretient lui-même un wiki interconnecté à partir de sources brutes, puis ajoute par-dessus une couche RAG (embeddings locaux + recherche sémantique) pour retrouver l'information que le wiki a compressée. Tout tourne en local : aucun appel réseau, aucun service cloud.
L'idée du wiki incrémental vient du LLM Wiki d'Andrej Karpathy :
plutĂ´t que de refaire une recherche dans les documents bruts Ă chaque question,
le modèle construit et cure un wiki markdown qui se bonifie à chaque source.
kwikines y ajoute la couche de récupération : le RAG indexe le wiki (le
savoir déjà synthétisé), pas les sources brutes.
Trois couches, dans un seul dossier de base :
raw/ — les sources brutes, immuables.wiki/ — les pages générées (sources/, entities/, concepts/,
analyses/) plus index.md et log.md.AGENTS.md — le schéma : conventions de frontmatter, de wikilinks, de
fusion. Le plugin lit ce fichier et l'injecte dans ses propres prompts pour
piloter le LLM chargé. C'est le plugin qui fait le travail d'extraction, de
rédaction, de fusion et de mise à jour des références croisées — le modèle avec
qui tu discutes n'a qu'Ă appeler l'outil.Un squelette prĂŞt Ă copier est fourni dans template/ : le
AGENTS.md par défaut, et une note de veille d'exemple dans raw/ pour faire
tourner une première ingestion de bout en bout. Le dossier wiki/ n'y est pas —
le plugin le crée lui-même à la première opération.
Charger deux modèles (trois pour ingérer des PDF) :
| Modèle | Rôle | Obligatoire |
|---|---|---|
| LLM de chat | ingest / query / lint. Doit tenir la sortie structurée JSON — un instruct récent de taille raisonnable. | oui |
| Modèle d'embedding | la couche RAG (nomic-embed-text, bge-*, all-MiniLM…). | oui |
| Modèle de vision | transcription des sources .pdf à l'ingestion. | seulement pour les PDF |
Puis, dans les réglages du plugin, renseigner Wiki base directory : le dossier
qui contient AGENTS.md, raw/ et wiki/. C'est la seule racine que le
plugin peut lire ou écrire.
Régler Wiki base directory sur ~/Documents/mon-wiki, puis demander au modèle
d'ingérer la note d'exemple déjà présente dans raw/ :
ingère
exemple-atelier-lumen.mddans le wiki
Le plugin renvoie d'abord un aperçu des pages qu'il compte écrire ; une fois
confirmé, le wiki existe et se questionne. Ensuite, raw/ accueille tes propres
documents.
Agentiques — le plugin fait le travail
kwikines_ingest(source, confirm?, pages?) — lit une source de raw/, pilote le
LLM pour en extraire entités et concepts, écrit la page source, crée ou fusionne
les pages liées, met à jour et , puis réindexe le RAG. En mode
supervisé (défaut), renvoie un aperçu ; rappeler avec pour écrire.Bas niveau
RAG
kwikines_reindex() — (re)construit l'index vectoriel, de façon incrémentale.kwikines_search(query, top_k?, hybrid?) — recherche sémantique ou hybride ;
renvoie les passages, leurs wikilinks et leurs scores..md, .txt, .docx ou .pdf dans .| Format | Traitement |
|---|---|
.md, .markdown, .txt | lus tels quels |
.docx | converti par mammoth, sans modèle |
.pdf | rasterisé page par page (pdfium) puis transcrit par le modèle de vision chargé |
.odt, .doc | non supportés — exporter d'abord en .docx, .pdf ou .md |
La conversion d'un .docx ou d'un .pdf dépose le .md obtenu à côté de
l'original dans raw/ : c'est la seule écriture que le plugin s'autorise dans
raw/. Le .md dérivé est signalé comme tel — ingérer l'un ou l'autre, pas
les deux.
wiki/.kwikines/index.json (vecteurs + métadonnées). Réindexation
incrémentale par hash de contenu, donc portable d'une machine à l'autre : un
git checkout ou une synchro cloud réécrit les dates de fichiers, pas leur contenu.<base>/.lmstudio-fs-backup/, horodatée,
et l'opération est journalisée dans .lmstudio-fs-backup/log.md.Recherche (chunkSizeChars, chunkOverlapChars, defaultTopK, hybridSearch,
autoReindexOnSearch), PDF (pdfRenderScale, pdfMaxPages, pdfLanguage,
pdfTranscriptionStyle), garde-fous (maxFileSizeMb, supervisedIngest), et
les trois champs d'override de modèle. Chacun est documenté dans l'UI de LM Studio.
supervisedIngest pour ingérer en série.gray-matter embarque js-yaml 3.x, qui porte un avis de sécurité (DoS par
complexité quadratique). L'exposition est locale — du frontmatter généré par un
LLM sur ta propre machine — mais l'avis existe.kwikines est écrit et maintenu par Rodrigue Beck.
PolyForm Noncommercial 1.0.0 — usage non commercial.
index.mdlog.mdconfirm=truekwikines_query(question, top_k?, file_analysis?) — recherche RAG → réponse
citée rédigée par le LLM → classement éventuel en page analyses/.kwikines_lint() — santé du wiki : orphelins et liens cassés (structurel),
contradictions, lacunes et suggestions (LLM). Lecture seule.kwikines_status() — schéma, structure, compteurs, état de l'index.kwikines_list_sources() — sources de raw/ et leur statut d'ingestion.kwikines_read(path) — lit un .md/.txt sous la base ; convertit à la volée
un .docx (mammoth) ou un .pdf (modèle de vision).kwikines_write_page(path, content, index_summary?) — crée ou met à jour une
page, avec sauvegarde de la version précédente.kwikines_append_log(kind, subject, bullets?) — entrée dans log.md.raw/kwikines_ingest("mon-article.pdf") → aperçu → confirm=true.kwikines_query("question transverse") → réponse citée, passages à l'appui.kwikines_lint().cp -R template ~/Documents/mon-wiki # ou n'importe où ailleurs
npm install
npx tsc --noEmit # vérification de types
lms dev # charge le plugin dans LM Studio
index.mdlog.mdconfirm=truekwikines_query(question, top_k?, file_analysis?) — recherche RAG → réponse
citée rédigée par le LLM → classement éventuel en page analyses/.kwikines_lint() — santé du wiki : orphelins et liens cassés (structurel),
contradictions, lacunes et suggestions (LLM). Lecture seule.kwikines_status() — schéma, structure, compteurs, état de l'index.kwikines_list_sources() — sources de raw/ et leur statut d'ingestion.kwikines_read(path) — lit un .md/.txt sous la base ; convertit à la volée
un .docx (mammoth) ou un .pdf (modèle de vision).kwikines_write_page(path, content, index_summary?) — crée ou met à jour une
page, avec sauvegarde de la version précédente.kwikines_append_log(kind, subject, bullets?) — entrée dans log.md.raw/kwikines_ingest("mon-article.pdf") → aperçu → confirm=true.kwikines_query("question transverse") → réponse citée, passages à l'appui.kwikines_lint().cp -R template ~/Documents/mon-wiki # ou n'importe où ailleurs
npm install
npx tsc --noEmit # vérification de types
lms dev # charge le plugin dans LM Studio