Estoy construyendo un agente de IA que gestiona mi bóveda de Obsidian a través de lenguaje natural. Puede buscar notas, leer contenido, crear archivos, mover cosas - todo desde una interfaz de chat dentro de Obsidian. El objetivo era mantener mis notas privadas.
Luego cambié de un LLM local a la API de Anthropic porque el modelo local era dolorosamente lento. Eso forzó una pregunta que había estado evitando: ¿qué datos realmente salen de mi máquina?
Esto es lo que encontré.
La Arquitectura
Mi configuración tiene tres capas:
- Obsidian con el plugin Copilot como interfaz de chat
- Un servidor local FastAPI que ejecuta un agente PydanticAI con tres herramientas para la bóveda
- Un proveedor de LLM - ya sea Ollama corriendo localmente o la API en la nube de Anthropic
Cuando escribo un mensaje en Obsidian, el plugin Copilot lo envía a mi servidor local. El servidor ejecuta el agente, que puede buscar, leer y modificar archivos de la bóveda. El LLM genera las respuestas.
La pregunta de privacidad se reduce a: en cada capa, ¿qué se envía a dónde?
Capa 1: Obsidian en Sí
Obsidian es completamente privado. Su política de privacidad es inusualmente clara:
- Sin telemetría
- Sin recolección de datos
- El contenido de la bóveda nunca se envía a sus servidores
- Conexiones a internet solo para verificar actualizaciones (que puedes desactivar)
La única excepción es Obsidian Sync, que es opcional, de pago y con cifrado de extremo a extremo. No lo uso.
Tus archivos .md están en tu sistema de archivos local. Obsidian los lee directamente. Nada llama a casa.
Capa 2: El Plugin Copilot
Esta era mi principal preocupación. El plugin Obsidian Copilot es la interfaz de chat que se comunica con mi servidor de agente. ¿Escanea mi bóveda en segundo plano? ¿Indexa notas y las envía a algún lado?
No. El plugin solo envía datos cuando envías activamente un mensaje de chat. Lo que se incluye en cada solicitud:
- Tu mensaje escrito (siempre)
- La nota actualmente abierta (solo si activas "Include Active Note" - desactivado por defecto)
- Notas específicas que referencias con menciones
@note - El historial de chat de la conversación actual
Esa es la lista completa. Las notas que no mencionas, no referencias y no tienes abiertas nunca son tocadas por el plugin. No hay indexación en segundo plano, no hay escaneo silencioso de la bóveda, no hay embeddings generándose y enviándose.
El plugin tiene una función de Vault QA que puede buscar en tus notas, pero incluso eso usa búsqueda léxica local (BM25) por defecto. La búsqueda ocurre en tu máquina. Solo los resultados con los que interactúas se envían al LLM.
Hubo una preocupación anterior sobre el plugin enviando consultas a un servidor de terceros llamado Brevilabs para análisis de intención. Ese código ha sido completamente eliminado del código fuente. Las versiones actuales no contactan a Brevilabs a menos que uses las funciones de pago del tier Plus (análisis de PDF, búsqueda web).
Capa 3: El Proveedor de LLM
Aquí es donde los datos salen de mi máquina - y donde vive el compromiso de privacidad.
Cuando usaba Ollama localmente, toda la pipeline se quedaba en mi laptop. Los mensajes iban de Obsidian a mi servidor, al modelo local y de vuelta. Nada salía de la máquina. Completamente privado.
Cuando cambié a la API de Anthropic, el contenido de la conversación ahora transita por sus servidores. Lo que Anthropic recibe:
- El prompt del sistema (las instrucciones de mi agente)
- Los mensajes del chat (mis preguntas y las respuestas del agente)
- Los resultados de las llamadas a herramientas - si el agente busca en mi bóveda o lee una nota, ese contenido se envía a Anthropic para que pueda formular una respuesta
Según la política de datos de Anthropic, los datos de entrada de la API no se usan para entrenar modelos. Pero los datos sí pasan por su infraestructura.
El Límite de Privacidad
Esto es lo que significa en la práctica:
Las notas que nunca discuto con el agente son completamente privadas. Son archivos markdown en mi disco. Ningún plugin, servidor o API los toca. No existen para el sistema a menos que los traiga a una conversación.
Las notas que sí discuto se envían a cualquier proveedor de LLM que esté usando. Si pregunto "resume mis notas del proyecto", el agente lee esos archivos del disco y envía el contenido a Anthropic como parte del contexto de la conversación.
El límite es simple: el chat es la puerta. Nada lo cruza a menos que yo inicie la conversación.
El Desvío de Permisos en macOS
Mientras configuraba esto, me encontré con un problema de macOS que vale la pena mencionar. Mi bóveda estaba en ~/Documents, que es un directorio protegido por TCC en macOS moderno. Mi IDE no podía acceder a él sin Full Disk Access - un permiso que se sentía demasiado amplio.
Intenté un enlace simbólico desde un directorio no protegido hacia ~/Documents. No funcionó. macOS resuelve los enlaces simbólicos a su ruta de destino real antes de verificar permisos. Apple ha estado parcheando activamente los bypasses de TCC basados en enlaces simbólicos.
La solución fue simple: mover la bóveda fuera de ~/Documents a un directorio creado por el usuario que no está protegido por TCC. Sin prompts de permisos, sin otorgar Full Disk Access. La bóveda funciona igual - a Obsidian no le importa dónde esté la carpeta.
Si tu bóveda está en ~/Documents, ~/Desktop o ~/Downloads y tienes problemas de permisos con herramientas de desarrollo, simplemente muévela. Abre Obsidian, usa el selector de bóvedas, apúntalo a la nueva ubicación. Todo (notas, plugins, configuración .obsidian) viaja con la carpeta.
Lo Que Le Diría a Alguien Construyendo Esto
Si estás conectando un agente de IA a tus notas personales:
-
Obsidian no es el riesgo de privacidad. Es una de las aplicaciones más respetuosas con la privacidad que he usado. Sin telemetría, sin dependencia de la nube, local por diseño.
-
El plugin Copilot no es el riesgo de privacidad. No escanea ni indexa tu bóveda a tus espaldas. Envía lo que tú le dices que envíe.
-
Tu proveedor de LLM es el límite de privacidad. Modelo local = completamente privado pero lento. API en la nube = rápido pero los datos de tu conversación transitan por servidores externos. Elige según la sensibilidad de lo que estés discutiendo.
-
Puedes tener ambos. Mi agente soporta cambiar entre Ollama y Anthropic con una sola variable de entorno. Las notas sensibles usan el modelo local. Todo lo demás usa el rápido. La arquitectura no te obliga a elegir.
El objetivo de construir tu propio agente en lugar de usar un producto SaaS es que tú controlas la pipeline. Tú decides qué cruza el límite y qué se queda local.
Este es el tipo de problema que disfruto resolver - entender sistemas a profundidad antes de construir sobre ellos. Aplico el mismo enfoque al construir sitios web para contratistas. ¿Quieres saber más? Lee sobre cómo trabajo.
