blog about dark mmfilesi
Context Engineering · ·10 min ·Beginner

La LLM Wiki de Andrej Karpathy

Karpathy propone ir compilando una wiki personal que crece con el tiempo para proporcionar el contexto al modelo.

1. Conocimiento creciente

Andrej Karpathy, cofundador de OpenAI y exdirector de IA de Tesla, es una de las grandes referencias de la IA generativa. Fue quien acuñó el término de vibe coding y uno de los grandes impulsores de esa tendencia, por lo que, sin entrar aquí ahora en un debate que ya abordaré en otro post, podemos imaginar el impacto que tienen sus palabras. Así, no es de extrañar que no tardase en popularizarse una propuesta que formuló en abril de 2026: usar un LLM para construir tu propia wiki en tiempo real.

La idea es realmente acertada y viene a resolver uno de los grandes problemas de RAG (Retrieval-Augmented Generation), esa técnica que consiste en combinar la búsqueda de información relevante en fuentes externas con la generación de respuestas mediante modelos de lenguaje para producir respuestas más precisas y actualizadas o, lo que es lo mismo, preparar contextos muy ricos de contenido específico antes de formular un prompt. Y el problema es que el LLM debe redescubrir el conocimiento desde cero en cada pregunta. No hay acumulación. Si haces una pregunta sutil que requiere sintetizar cinco documentos, el modelo tiene que encontrar y combinar los fragmentos relevantes cada vez.

Karpathy propone algo diferente: en lugar de que el modelo busque en documentos brutos, tal cual están, cada vez que preguntas, el modelo construye y mantiene una wiki persistente, una colección de archivos Markdown interconectados que vive en el ordenador de cada cual (aunque se pueden compartir mediante git o cualquier otro sistema).

Cuando añades un nuevo documento, el modelo no lo indexa para después: lo lee, extrae lo importante, y lo integra en la wiki existente. Actualiza páginas de conceptos, señala contradicciones con lo que ya sabías, crea referencias cruzadas entre ideas.

La wiki es un artefacto que crece y se enriquece con cada fuente que añades. El conocimiento se compila una vez y se mantiene actualizado, no se re-deriva en cada consulta.

Expresado con una analogía que usa Karpathy: los documentos originales son el código fuente. La wiki es el ejecutable compilado. No recompilas cada vez que ejecutas el programa. En esencia, la propuesta cambia el paradigma de ir a buscar información cada vez a construir conocimiento que crece con el tiempo, usando el LLM como un archivista inteligente en lugar de un motor de búsqueda.

2. Un vistazo rápido a Obsidian

Además, en otro arranque de ingenio, relaciona esta técnica que ahora veremos en detalle con una herramienta de notas muy interesante: Obsidian. Si ya la conoces, pasa al siguiente epígrafe del artículo. Por si no fuera así, cuento 4 cosas al respecto.

Obsidian es una aplicación gratuita de toma de notas y gestión del conocimiento personal, muy popular entre estudiantes, investigadores, escritores y profesionales del conocimiento. En esencia, es un editor de texto basado en Markdown que almacena todas las notas como archivos .md locales en tu ordenador. Su filosofía central es que tus datos son tuyos: sin servidores propietarios, sin formatos cerrados.

Para instalarla hay que ir a obsidian.md y descargar la versión para el sistema operativo que nos interese (Windows, macOS o Linux). A partir de ahí, instalamos la aplicación como cualquier otro programa.

Lo primero que te pedirá Obsidian es crear una bóveda (Vault). Una bóveda no es más que una carpeta en tu ordenador donde se guardarán todas tus notas.

  • Haz clic en “Crear nueva bóveda”.
  • Dale un nombre (por ejemplo, Mis Notas).
  • Elige dónde guardarla en tu ordenador.
  • Haz clic en Crear.

Otro camino es tener el directorio ya creado y seleccionar la opción de Abrir una carpeta.

Obsidian

Al entrar se ven las tres zonas principales:

  • Panel izquierdo: El explorador de archivos. Aquí aparecen todas las notas organizadas en carpetas.
  • Panel central: El editor. Aquí se escriben y leen las notas.
  • Panel derecho: Información adicional: backlinks, estructura de la nota, etcétera.

No hay que abrumarse si al principio parece complejo. Con el uso diario se vuelve muy intuitivo.

Hay varios métodos populares que la comunidad usa para organizar sus notas. No hay uno mejor que otro, depende de cómo piensas y para qué usas la herramienta. Dos muy célebres son:

1. PARA

Creado por Tiago Forte, parece ser que es uno de los más sencillos para empezar. Organiza todo en cuatro carpetas:

  • P: Projects: cosas con un objetivo y fecha límite, como “Escribir un libro sobre los fenicios”.
  • A: Areas: responsabilidades continuas sin fecha de fin. Por ejemplo, “Historia”, “Mitología”, “Arte”.
  • R: Resources: temas de interés o referencia futura, como “Yacimientos arqueológicos”.
  • A: Archive: todo lo inactivo de las categorías anteriores.

2. Zettelkasten

Lo desarrolló el sociólogo Niklas Luhmann y la idea central es que el conocimiento crece a través de conexiones, no de carpetas. Sus principios básicos son:

  • Una idea por nota: cada nota es pequeña y atómica, contiene solo una idea.
  • Notas permanentes: escritas con tus propias palabras, como si le explicaras algo a alguien.
  • Conexiones explícitas: cada nota enlaza a otras notas relacionadas, con una explicación del por qué están conectadas.
  • Sin jerarquía rígida: el conocimiento emerge de los enlaces, no de las carpetas.

Por último, indicar que una de las features más interesantes de esta herramienta, que se puede ampliar con una montonera de plugins es que permite conectar notas entre sí. Se puede crear un enlace a otra nota escribiendo su nombre entre dobles corchetes:

[[Nombre de otra nota]]

Por ejemplo, si tienes una nota llamada Recetas y estás escribiendo en Lista de la compra, puedes escribir [[Recetas]] y se creará un enlace directo entre ambas. Si la nota no existe todavía, Obsidian la creará al hacer clic.

Una vez se tienen varias notas conectadas, se pueden ver cómo se relacionan visualmente haciendo clic en el icono de grafo en el panel izquierdo (o yendo a Vista > Abrir vista de grafo). Cada nota se muestra como un punto y cada enlace como una línea. Cuantas más notas y conexiones tengas, más interesante se vuelve este mapa. Por ejemplo, este es un mapa de un estudio que estoy empezando sobre la imprenta de Aldus Manutius, la Aldina, uno de los grandes focos culturales del Renacimiento.

Obsidian, Graph View

Volvamos con Karpathy.

3. Configuración en 15 minutos

Se puede montar una wiki de este tipo en apenas unos minutos. Solo se necesita:

  • Claude Code: la herramienta de terminal de Anthropic. No sé si funciona con otros agentes. No me ha dado a probarlos aún.
  • El gist de Karpathy: el idea file original.
  • Obsidian: el visor de notas markdown que acabamos de ver.

Nada más. Sin base de datos vectorial, sin infraestructura, sin código que escribir.

Los pasos son estos.

  1. Estructura de directorios

Creamos un directorio principal en nuestro ordenador que se llame de cualquier forma -wiki, notebook, patatas- y dentro otros tres subdirectorios:

  • inbox: donde irán los documentos nuevos
  • sources: donde irán los procesados
  • wiki: las notas generadas por el modelo, lo que leemos.
  1. Obsidian

Abrimos Obsidian, pulsamos “Abrir una carpeta como bóveda” y seleccionamos solo la carpeta wiki/. Obsidian será la interfaz de lectura, aquí se verá lo que escriba el modelo.

  1. Configuración de Claude Code

Abrimos la terminal, navegamos a la carpeta que hemos creado, notebook/ y lanzamos Claude Code:

cd notebook
claude

Copia el contenido completo del gist de Karpathy y pégalo en Claude Code con una instrucción como esta:

el idea file original.

Configura este sistema de LLM Wiki en esta carpeta. Quiero poder ingestar documentos con el comando ingest [nombre] y hacer preguntas directamente.

A partir de ahí, Claude Code leerá las instrucciones, entenderá la arquitectura y montará todo: creará el archivo CLAUDE.md con el esquema, el index.md, el log.md, y las subcarpetas dentro de wiki/.

Por el camino nos irá preguntando cuestiones que respondemos según nuestro interés, claro.

¿Para qué dominio o tema es esta knowledge base?

 1. Investigación / papers
     Artículos académicos, papers, informes construyendo una síntesis sobre un tema a lo largo del tiempo.
  2. Lectura de libros
     Seguimiento de capítulos, personajes, temas como una wiki de fan mientras lees.
  3. Personal / notas propias
     Diario, objetivos, salud, psicología, artículos personales un mapa de ti mismo.
  4. Negocio / trabajo
     Slack, reuniones, proyectos, clientes una wiki interna mantenida por LLMs.
  5. Type something.

Cuando termina, nos muestra un mensaje final con lo que ha hecho y cómo seguir.

 El sistema está listo. La estructura final:

  notebook/
  ├── CLAUDE.md esquema completo (lee esto al inicio de cada sesión)
  ├── .gitignore
  ├── inbox/ aquí drops los nuevos papers
  ├── sources/
   └── assets/ imágenes descargadas
  └── wiki/ vault de Obsidian (todo generado por LLM)
      ├── index.md catálogo de todas las páginas
      ├── log.md log de actividad append-only
      ├── overview.md tesis y síntesis evolutiva
      ├── papers/
      ├── concepts/
      ├── authors/
      └── debates/

  Cómo usarlo:

  - Ingestar un paper: Copia el archivo a inbox/ y dime ingest [nombre]. Leeré el paper, hablaré contigo sobre los puntos clave, y actualizaré el wiki (summary page + concepts
  + authors + overview + index + log).
  - Hacer una pregunta: Pregunta directamente. Busco en el wiki, sintetizo con citas, y te pregunto si quieres guardar la respuesta como página nueva.
  - Revisar salud del wiki: Di lint y chequeo contradicciones, páginas huérfanas, claims desactualizados y gaps.

  Al inicio de cada sesión en esta carpeta, leeré CLAUDE.md, wiki/index.md, y las últimas entradas del log para retomar el contexto.

Si quieres cambiar cualquier cosa de la propuesta que hace, como el idioma con el que prepara las cosas, basta con precisar y modificar las instrucciones del archivo CLAUDE.md.

4. El flujo diario

Una vez configurado, el uso es muy simple:

  1. Ingestar un documento nuevo:
  • Copia el PDF o archivo que vayas a usar de referencia a inbox/
  • En Claude Code escribe: ingest nombre-del-archivo.pdf
  • El modelo lee el documento, extrae lo importante, y actualiza la wiki
  1. Hacer preguntas:
  • Pregunta directamente en Claude Code. El modelo busca en la wiki (no en los documentos brutos, sin trabajar), sintetiza con referencias, y te ofrece guardar la respuesta como página nueva si tiene valor.
  1. Revisar la salud de la wiki:
  • Escribe lint y Claude Code revisará contradicciones entre páginas, conceptos mencionados pero sin página propia, y gaps de conocimiento detectados.

Para hacer la prueba, puedes bajarte 3 pdf cualesquiera de arxiv, guardarlos en ./inbox y pedir uno por uno que lo ingeste. No hace falta que sean seguidos ni que estén relacionados, pero así quedará más claro.

Por ejemplo:

Le vas pidiendo que los ingeste

ingest 2503.23278

Una vez que lo lea, te propone un resumen, por si quieres retocar cosas, como decirle que vaya por un lado o por otro.

He leído el paper completo. Antes de escribir las páginas del wiki, aquí están los puntos clave:

  Paper: Survey de 4 protocolos de interoperabilidad para agentes LLM (arXiv 2505.02279, mayo 2025)

  Hallazgos principales:
  - MCP (Anthropic, Nov 2024) — JSON-RPC, integración LLM↔herramientas. Centralized server. Ya maduro.
  - ACP (IBM/BeeAI, Mar 2025) — REST, multipart MIME, sync/async, registro de agentes. Más flexible.
  - A2A (Google, Abr 2025) — Peer-to-peer vía Agent Cards, delegación de tareas en enterprise.
  - ANP Decentralizado, W3C DIDs + JSON-LD, para el "open internet" de agentes.
  - Hoja de ruta propuesta: MCP ACP A2A ANP (adopción progresiva)
  - Ningún protocolo es suficiente solo; se complementan por capas.

Y cuando termina ya tienes un nuevo elemento en la wiki. A partir de ahí, cuando le preguntes, tomará los markdown generados como referencia. Por ejemplo, si tienes ingeridos los tres papers que mencionaba sobre protocolos de agentes de IA (MCP, A2A, y un survey de arquitecturas agénticas), puedes preguntar cosas como:

¿cómo encajan MCP y A2A dentro de las arquitecturas multi-agente del survey?

y el modelo responde con conocimiento ya compilado y conectado, no redescubierto desde cero.

El mecanismo para no saturar el contexto del agente es el mismo que opera con las skills: cargar solo el mínimo de información posible para saber qué incluye cada referencia y luego ir a buscar el desarrollo completo en el caso de que se necesite. Es un patrón general de gestión de contexto: índice pequeño siempre en memoria y contenido completo bajo demanda.

En este caso, ese índice se encuentra en el archivo index.md, donde hay un catálogo de todas las páginas con una línea de descripción cada una. Claude Code lo lee primero y carga solo las páginas relevantes para cada pregunta. Si vemos que no usa una cuando debiera o cualquier otro error similar, podemos ajustar ahí lo que necesitemos.

Sin embargo, al igual que sucede con las skills, llega un momento en el que el mecanismo del index.md no es suficiente para no reventar el contexto. Como todo esto acaba de empezar, no sé aún dónde estará ese límite. Para esos casos, Karpathy menciona que puede ser interesante recurrir a QMD, un motor de búsqueda local para archivos markdown creado por Tobi Lütke, el CEO de Shopify.

Dejo eso para una segunda entrada sobre este tema.