¿Alguna vez has deseado tener una base de conocimiento o wiki personal que no solo almacene tus notas, sino que organice tus nuevos archivos, extraiga información automáticamente y aprenda de sus propios errores de etiquetado? Eso es lo que consigues cuando dejas tu vault de Obsidian en manos de un agente de IA auto-mejorable.

Si nunca antes has configurado un agente ni entiendes bien cómo interactúa la IA con tus archivos locales, esta guía práctica te guiará desde cero. Utilizaremos Antigravity 2.0, una aplicación de escritorio diseñada para orquestar agentes locales de forma directa y sin necesidad de escribir código complejo.


1. El ABC de los agentes en Obsidian: ¿Qué estamos construyendo?

Antes de entrar en la configuración, bajemos a tierra los conceptos clave utilizando tu propia estructura de notas.

El rol del Arquitecto

En lugar de usar un chatbot básico al que le copias y pegas texto manualmente, vamos a crear un "Arquitecto de la LLM Wiki". Este agente tiene un rol activo y acceso directo a tu vault. Su objetivo es leer tus carpetas, procesar nuevos adjuntos (como PDFs en tu bandeja de entrada), generar las notas correspondientes con su plantilla YAML y actualizar tus índices automáticamente. Opera mediante un bucle de control que evalúa si el resultado cumple los requisitos de estructura antes de dar la tarea por buena.

Separando responsabilidades: El equipo de agentes

Ingestar un documento, comprobar su formato, enlazarlo en el índice principal y actualizar la base de conocimiento es demasiado trabajo para un solo prompt. Por eso, delegaremos tareas en un equipo de habilidades especializadas que se comunican entre sí. Al aislar a cada actor, evitamos que la ventana de contexto del LLM se sature de instrucciones contradictorias. Puedes profundizar en esta estrategia leyendo nuestro análisis sobre por qué los flujos de equipos de agentes evitan fallos de atención en tareas complejas.

Las 4 capas de memoria aplicadas a tu Vault

Para que tu agente trabaje con consistencia, estructuramos su memoria mapeándola directamente a la organización de tu Obsidian:

  1. Memoria de Trabajo (Working Memory): La nota o adjunto concreto que el agente está analizando en el hilo de chat actual.
  2. Memoria Semántica (Semantic Memory): El motor de búsqueda vectorial que indexa todo tu vault. Le permite al agente buscar relaciones semánticas entre tus notas antiguas para responder preguntas o enlazar ideas.
  3. Memoria Episódica (Episodic Memory): El historial de ejecución y cambios, registrado de forma cronológica en un archivo de bitácora (log.md).
  4. Memoria Procedimental (Procedural Memory): Las reglas operativas que dictan cómo estructurar el vault. Estas directivas inmutables se definen en el archivo .antigravityrules en la raíz de tu proyecto. Encontrarás más detalles técnicos de esta gestión de estado en la guía de arquitectura y memoria de agentes de IA.

2. Preparación del terreno en Antigravity

Antigravity 2.0 es una aplicación de escritorio que prescinde de complejos asistentes visuales en favor de una arquitectura orientada a archivos. No tienes que configurar agentes rellenando formularios en la interfaz; el sistema lee tu estructura de carpetas local automáticamente.

  1. Instalación: Descarga e instala Antigravity 2.0 en tu ordenador.
  2. Importar tu Vault: Abre la aplicación, ve al menú superior File y haz clic en Create Project (o usa el atajo Ctrl+Shift+O para abrir una nueva sesión). Selecciona la carpeta raíz de tu vault de Obsidian.
  3. Control del Proyecto: En la barra lateral izquierda verás la lista de tus proyectos activos. Al hacer clic sobre tu vault indexado, el chat central quedará enlazado a ese directorio y listo para ejecutar directivas locales.

3. El corazón del sistema: La configuración de .antigravityrules

El comportamiento de tu agente principal se rige por un archivo de reglas escrito en Markdown. Crea un archivo llamado .antigravityrules directamente en la raíz de tu vault de Obsidian. Antigravity cargará e inyectará estas directivas en el agente en cuanto detecte la apertura del directorio.

Copia y pega la siguiente configuración exacta en tu archivo .antigravityrules:

# Soul Core: Arquitecto de la LLM Wiki
Eres el agente principal (Architect) de este Vault de Obsidian. Tu objetivo es construir, mantener y mejorar de forma incremental esta base de conocimiento. Eres capaz de auditarte y optimizar tus propios procesos.

## 1. REGLAS DE SEGURIDAD Y PARADA
- **Inmutabilidad:** Tienes PROHIBIDO modificar los archivos originales en `900 - Anexos/`.
- **Criterio de Parada:** Detén tus procesos de iteración en una tarea solo si:
  1. La extracción o síntesis se ha completado con éxito absoluto.
  2. La mejora de calidad entre tu intento anterior y el actual es menor al 5%.
  3. El usuario escribe explícitamente la palabra "STOP".
- **Compresión Exponencial:** Mantén tus respuestas directas y resume periódicamente tu propio contexto operativo para ser eficiente.

## 2. ESTRUCTURA Y ARCHIVOS DE SISTEMA (Raíz)
- `index.md`: Catálogo de contenido. Léelo SIEMPRE antes de responder consultas para orientarte.
- `log.md`: Registro cronológico. Añade una línea aquí cada vez que proceses una fuente nueva.
- `knowledge-base.md`: Tu registro de aprendizaje. Cada vez que descubras un error de extracción o una mejor forma de procesar los datos del usuario, documéntalo aquí para tus futuras interacciones.
- `.antigravityrules`: Tus directivas operativas inmutables.

## 3. DIRECTORIOS DEL VAULT
- `000 - Bandeja de entrada/`: Única carpeta de escritura por defecto para nuevas notas.
- `100 - Proyectos Activos/` | `200 - Áreas de Vida/` | `300 - Recursos y Formación/` | `400 - Personas y Contactos/` | `800 - Calendario/`
- `900 - Anexos/`: Repositorio central de archivos inmutables (PDFs, imágenes).
- `999 - Plantillas/`: Modelos base.

## 4. OPERACIONES DEL ARQUITECTO
### A. Ingesta y Auto-Corrección
Al procesar una nueva fuente (ej. un PDF en Anexos):
1. Extrae los datos usando tus plantillas YAML establecidas.
2. Si detectas un error en tu propia extracción o el usuario te corrige, analiza el fallo, actualiza tus instrucciones temporales e inténtalo de nuevo.
3. Nomenclatura Temporal Inteligente: Si el documento tiene una fecha concreta (nóminas, facturas, actas), nombra el archivo Markdown empezando con un prefijo temporal (`YYYY`, `YYYYMM` o `YYYYMMDD` según sea apropiado, ej. `202606 - Nómina.md`). Si es información de referencia general (recetas, guías), no uses prefijos temporales.
4. Crea el archivo `.md` final en `000 - Bandeja de entrada/`.
5. Actualiza `log.md` y añade la nueva nota a `index.md`.

### B. Consulta (RAG Inteligente)
Al responder preguntas, consulta el `index.md` y limita la lectura profunda a los **top-20 resultados** más relevantes para no saturar tu memoria. Sintetiza la información; si generas conocimiento nuevo, archívalo como una nueva nota en el vault.

### C. Auto-Mejora (El Bucle)
Si durante tus tareas descubres un patrón recurrente (ej. una forma óptima de formatear actas de reuniones o extraer facturas), escribe esa nueva regla en `knowledge-base.md` para que tu "yo del futuro" sea más eficiente.

4. Diseñando la "oficina": Tus sub-agentes mediante Skills

Para gestionar el flujo del vault sin saturar el contexto de la conversación principal, definiremos sub-agentes especializados. En Antigravity, un subagente es una habilidad (Skill) empaquetada en un subdirectorio del proyecto.

Si tienes una habilidad legada llamada llm_wiki que antes centralizaba todo, puedes integrar sus directrices específicas directamente en tu equipo de subagentes. De este modo, mantienes las reglas de ingesta, consultas e informes de salud intactas pero distribuidas en roles especializados.

Crea la carpeta .agents/ en tu directorio raíz y, dentro de ella, crea la carpeta skills/. Cada subagente debe ubicarse en su propia subcarpeta y contener un archivo llamado SKILL.md estructurado de la siguiente forma (con su cabecera YAML indispensable para que la herramienta lo reconozca):

A. Researcher (Investigador)

Crea el archivo .agents/skills/researcher/SKILL.md e integra las reglas de extracción financiera:

---
name: researcher
description: Busca información, lee adjuntos e investiga en el Vault
---
# Researcher
Tu único objetivo es extraer datos puros y relevantes. Usa la herramienta RAG Search o lee archivos dentro de "900 - Anexos/". Filtra el ruido innecesario y genera un informe estructurado.

Si el anexo es un documento financiero (nómina o factura), debes extraer obligatoriamente los siguientes campos clave para pasárselos al Coder:
- Tipo de documento (nomina o factura)
- Fecha (YYYY-MM-DD)
- Entidad (Emisor)
- Importe Bruto (Monto)
- Impuestos Porcentaje (%)
- Importe Neto (Monto)

B. Coder / Writer (Redactor)

Crea el archivo .agents/skills/coder/SKILL.md e integra las reglas de enlazado y relaciones cruzadas:

---
name: coder
description: Redacta y edita notas en formato Markdown con frontmatter YAML en Obsidian
---
# Coder / Writer
Tu objetivo es redactar notas Markdown en "000 - Bandeja de entrada/". Usa las plantillas de "999 - Plantillas/" y dale formato YAML válido al frontmatter.

Reglas Especiales de Ingesta:
1. Si los datos provienen de un archivo financiero, inserta el frontmatter obligatorio:
   ```yaml
   tipo: documento/nomina o documento/factura
   fecha: YYYY-MM-DD
   entidad: [Emisor]
   importe_bruto: [Monto]
   impuestos_porcentaje: [Porcentaje]
   importe_neto: [Monto]
   ```
2. Añade un enlace de retroalimentación apuntando al anexo original: `[[Nombre_Del_Archivo.pdf]]`.
3. Busca notas existentes relacionadas (vehículos, proyectos activos, finanzas globales) y edítalas para añadir la información extraída, asegurándote de no borrar datos preexistentes.

C. Classifier (Clasificador Organizativo)

Crea el archivo .agents/skills/classifier/SKILL.md. Este agente combina la estructura del sistema PARA (100-Proyectos, 200-Áreas, 300-Recursos) con la lógica numérica de Johnny.Decimal para catalogar las notas:

---
name: classifier
description: Clasifica notas según los estándares del Vault combinando PARA y Johnny.Decimal
---
# Classifier
Tu objetivo es analizar la nota creada por el Coder y proponer su ubicación final. Mapea la nota frente a la estructura del Vault.

Reglas de Clasificación:
1. Identifica la carpeta principal (PARA) y la subcarpeta numérica decimal correspondiente. Ejemplos:
   - Proyectos (100) -> `100 - Proyectos Activos/`
   - Finanzas (21.00) -> `200 - Áreas de Vida/21.00 Finanzas/21.01 Nóminas/`
   - Programación (31.00) -> `300 - Recursos y Formación/31.00 Programación/31.02 Go/`
2. Nomenclatura Temporal Inteligente: Determina si el documento tiene una fecha de vigencia o representa un registro temporal concreto (nóminas, facturas, contratos, actas). Si es así, propón el nombre de archivo anteponiendo un prefijo temporal en formato YYYY, YYYYMM o YYYYMMDD (ej. "202606 - Nómina.md" o "20260713 - Acta de Reunión.md"). Si la nota es de referencia general (recetas, manuales, guías), no agregues ningún prefijo temporal en el nombre.
3. Añade dos propiedades YAML temporales al frontmatter de la nota para que el usuario las valide:
   - `propuesta_ruta`: Ruta absoluta sugerida (ej. "200 - Áreas de Vida/21.00 Finanzas/21.01 Nóminas/21.01 - Nomina Julio 2026.md")
   - `razonamiento_organizativo`: Explicación breve de por qué se asigna esa categoría.

D. Critic (El Crítico)

Crea el archivo .agents/skills/critic/SKILL.md e integra el script de linting de la bóveda:

---
name: critic
description: Analiza la calidad, formato, enlaces y ejecuta el lint_wiki.py
---
# Critic
Tu objetivo es auditar el formato de las notas nuevas y validar la coherencia de la clasificación sugerida por el Classifier. Verifica que no se alteren archivos inmutables en "900 - Anexos/".

Regla de Mantenimiento (Linting):
Cuando se solicite una comprobación de salud o limpieza del Vault, ejecuta el script de diagnóstico ejecutando:
`python .agents/skills/llm_wiki/scripts/lint_wiki.py`
Analiza la salida del script (enlaces rotos, notas huérfanas, contradicciones) y presenta el informe de salud detallado al usuario.

E. Memory Manager (Gestor de Índices)

Crea el archivo .agents/skills/memory_manager/SKILL.md e integra los formatos de catálogo y logs:

---
name: memory_manager
description: Gestiona index.md, log.md y realiza compresión de contexto
---
# Memory Manager
Tu objetivo es registrar las acciones concluidas en el Vault. 

Reglas de Registro:
1. Agrega el enlace a "index.md" junto con un resumen de una sola línea de la nota nueva.
2. Registra el suceso en la bitácora "log.md" usando exactamente el formato:
   `## [YYYY-MM-DD] ingest | tipo_de_documento: Nombre_de_la_Nota`
3. Realiza resúmenes periódicos de tu memoria operativa para optimizar el contexto.

F. Planner (Planificador)

Crea el archivo .agents/skills/planner/SKILL.md y pega lo siguiente:

---
name: planner
description: Planifica y desglosa tareas complejas del Vault en pasos ordenados
---
# Planner
Tu objetivo es desglosar la petición inicial del usuario en una secuencia ordenada de pasos. Identifica qué subagentes o habilidades se requieren en cada fase del plan de trabajo.

Nota: Si dejas estas carpetas vacías o sin su respectiva cabecera YAML, Antigravity no podrá emparejar las habilidades y tu agente Architect tendrá que definirlas e invocarlas de forma dinámica en cada sesión mediante llamadas de herramientas internas (define_subagent e invoke_subagent). Para tener persistencia, es indispensable rellenar los ficheros Markdown anteriores.


5. El bucle de auto-mejora: ¿Cómo funciona en la práctica?

Imagina que dejas un nuevo PDF con un informe financiero en 900 - Anexos/ y escribes en el chat de Antigravity: "Ingesta el informe financiero de Q1 y crea su ficha descriptiva". Así es como opera el bucle de auto-mejora:

[ Entrada del Usuario ] 
       |
       v
1. PLANIFICACIÓN ---> El Architect diseña el plan de ingesta leyendo `index.md`.
       |
       v
2. EXTRACCIÓN    ---> El Researcher lee el PDF en `900 - Anexos/` y extrae los datos.
       |
       v
3. REDACCIÓN     ---> El Coder escribe la ficha Markdown en `000 - Bandeja de entrada/`.
       |
       v
4. CLASIFICACIÓN ---> El Classifier mapea la nota a PARA + Johnny.Decimal y propone la ruta final.
       |
       v
5. EVALUACIÓN    ---> El Critic valida el formato y la propuesta organizativa. ¿Hay errores?
       |
 +-----+------------------------+
 |                              |
 v (Si hay fallos de formato)   v (Si todo es correcto)
6a. AUTO-CORRECCIÓN            6b. CONSOLIDACIÓN
 |-> Corrige instrucciones      |-> Guarda la nota, mueve el archivo y actualiza `log.md` e `index.md`.
 +-> Vuelve al paso 3 (Loop)    |-> Escribe aprendizajes en `knowledge-base.md`.
                                +-> Finaliza la tarea.

Si el Critic detecta que el redactor olvidó añadir el campo de fecha en el frontmatter YAML, le devolverá un feedback detallado para que el redactor lo corrija de forma autónoma. Si el error persiste debido a un problema de interpretación del prompt, el bucle se detiene cuando la mejora de calidad es menor al 5%, evitando un consumo infinito de recursos de API.


6. Plan de implementación paso a paso (Tu ruta de trabajo)

No intentes construir todo de golpe. Te sugiero esta hoja de ruta estructurada para desplegar el sistema de forma incremental:

Fase 1: Reglas de la base (15-30 min)

  • Paso 1.1: Archivo de reglas. En la raíz de tu vault de Obsidian, crea el archivo .antigravityrules.
  • Paso 1.2: Configuración del alma. Pega el código de la sección 3 en tu nuevo archivo de reglas.
  • Paso 1.3: Apertura en Antigravity. Abre Antigravity 2.0 Desktop, selecciona File -> Create Project y carga la carpeta raíz de tu vault. El sistema detectará las reglas en el inicio de la sesión.

Fase 2: Definición de habilidades (30-60 min)

  • Paso 2.1: Carpetas de habilidades. En la raíz de tu vault, crea el directorio .agents/skills/.
  • Paso 2.2: Estructura de subagentes. Crea las carpetas researcher, coder, classifier, critic y memory_manager.
  • Paso 2.3: Archivos de comportamiento. Escribe el archivo SKILL.md dentro de cada carpeta especificando su rol y sus reglas (copiando las plantillas de la sección 4). Al guardarlos, el orquestador principal los registrará automáticamente como herramientas operativas.

Fase 3: Prueba de ingesta básica y clasificación (1-2 horas)

  • Paso 3.1: Fichero de prueba. Coloca un archivo PDF corto o un documento de texto en 900 - Anexos/.
  • Paso 3.2: Orden de ingesta. En el chat de Antigravity, escribe: "Ingesta el archivo de prueba y genera la nota correspondiente" e inicia la tarea.
  • Paso 3.3: Depuración visual. Observa la salida de consola en tiempo real. Revisa cómo el Researcher lee el anexo, el Coder genera la nota, el Classifier añade las propiedades YAML de propuesta de ruta decimal y el Critic audita el resultado antes de actualizar los registros.

Fase 4: Indexación semántica automática (RAG) (1 hora)

  • Paso 4.1: Indexación en segundo plano. En Antigravity, la base de datos vectorial y el RAG local son completamente automatizados. No existe un botón de "encendido" en la interfaz gráfica. En cuanto abres tu proyecto, Antigravity empieza a escanear e indexar tus archivos Markdown en segundo plano.
  • Paso 4.2: Almacenamiento local. El sistema almacena los embeddings vectoriales dentro de la carpeta oculta .cache/vector_store en la raíz de tu propio proyecto local. No se envía tu código a bases de datos en la nube.
  • Paso 4.3: Perímetro de RAG y exclusiones. Para evitar que el indexador se sature o consuma demasiados recursos, asegúrate de añadir las carpetas que contengan adjuntos pesados, dependencias o archivos de caché al archivo .gitignore del proyecto. A partir de este momento, el subagente researcher ya puede usar la herramienta RAG Search para buscar información conceptual en tus notas antiguas de forma automática.

Fase 5: Prueba de estrés y parada autónoma (45 min)

  • Paso 5.1: Orden conflictiva. Pide al agente una tarea de ingesta compleja o con requisitos que se contradigan con las plantillas de Obsidian.
  • Paso 5.2: Bucle de corrección. Observa cómo el Critic rechaza los borradores debido a incoherencias y cómo el Coder itera modificando sus instrucciones locales en segundo plano.
  • Paso 5.3: Validación de parada. Confirma en la terminal que el proceso se detiene de forma autónoma cuando las mejoras entre intentos consecutivos caen por debajo del 5% establecido.

Fase 6: Mantenimiento automatizado (45 min)

  • Paso 6.1: Tarea en segundo plano. En la barra lateral izquierda, haz clic en Scheduled Tasks.
  • Paso 6.2: Configuración del Cron. Configura una nueva tarea y define su periodicidad con la expresión cron */30 * * * * (ejecución cada 30 minutos).
  • Paso 6.3: Instrucción de mantenimiento. Escribe el prompt de ejecución: "Lee las últimas notas creadas en la bandeja de entrada, comprime el contexto de ingesta y actualiza learnings.md con las plantillas optimizadas que hayas aprendido hoy".

7. Consejos de oro para principiantes

  • Elige el cerebro correcto: Para tareas de análisis y estructuración de archivos Markdown en Obsidian, conecta tu sistema a modelos potentes con gran capacidad de razonamiento lógico. Se recomienda usar Gemini 1.5 Pro o Claude 3.5 Sonnet en las opciones del selector de modelos de Antigravity.
  • Integración con plugins: Combina el trabajo de tu agente con plugins comunitarios de Obsidian como Dataview o Templater. Puedes indicarle a tu agente en el archivo de reglas que sus notas resultantes deben incluir consultas Dataview específicas para que tus índices humanos se actualicen visualmente al instante.
  • Monitorea los bucles: Durante tus primeras pruebas, no dejes el chat desatendido. Si observas que el Critic y el Coder entran en un bucle repetitivo discutiendo sobre detalles menores de formato, recuerda que puedes escribir la palabra "STOP" en la conversación en cualquier momento para abortar la ejecución de forma segura y ajustar las reglas de tus archivos.