Desde 2022, cada Mac con macOS 13 o una versión posterior corre en segundo plano dos procesos cuyo único trabajo es construir un grafo de conocimiento personal sobre vos: con quién hablás, adónde vas, con quién vivís y cuándo. Investigadores de seguridad documentaron en octubre de 2026 cómo funciona ese mecanismo por dentro, algo que Apple nunca explicó en detalle más allá de un man page de tres párrafos.
El hallazgo importa porque graph.db y sus bases vecinas no son un experimento de laboratorio: son la memoria que usa Apple Intelligence para darle contexto a Siri y a otras funciones on-device, repartida en 51 bases de datos SQLite que cualquier app con el permiso correcto podría leer.
TL;DR
- knowledgeconstructiond e intelligenceplatformd corren en macOS 13+ (2022) y escriben en ~/Library/IntelligencePlatform.- graph.db es un triple store con 181 clases de entidad y 278 predicados que modelan relaciones.- Full Disk Access protege la carpeta, pero sqlite3 puede abrirla si le das ese permiso a la Terminal.- El man page oficial (man 8 knowledgeconstructiond) es casi la única documentación pública del mecanismo.- Apple Intelligence consulta graph.db para darle contexto personal a Siri sin salir del dispositivo.
¿Qué es el grafo de conocimiento personal de Apple?
El grafo de conocimiento personal es la base de datos que macOS construye en cada Mac para modelar al usuario y a su entorno: contactos, eventos, mensajes, ubicaciones y patrones de uso, cruzados automáticamente en un triple store local que alimenta a Apple Intelligence sin salir del dispositivo.
La analogía más simple es la del corcho de un investigador privado, ese tablero de fotos conectadas con hilos rojos que marcan quién conoce a quién. macOS hace algo parecido, pero de forma automática: en vez de hilos usa filas en una base de datos, y en vez de un investigador hay dos demonios del sistema, knowledgeconstructiond e intelligenceplatformd, que procesan cada contacto nuevo, cada mensaje y cada visita a un lugar para decidir qué relación describe mejor a las personas y los lugares que aparecen en tu vida.
Por qué importa este mecanismo
Importa porque es un cambio silencioso de alcance: Apple pasó de guardar datos sueltos, una lista de contactos, un calendario, a mantener una red de relaciones personales explícita, con inferencias propias sobre quién es tu pareja, tu jefe o tu médico. Ese salto no apareció en ninguna nota de prensa ni keynote.
El Apple Platform Security Guide describe decenas de mecanismos de protección de datos en iOS y macOS, pero no menciona esta base de contexto on-device por su nombre. La única referencia pública es el man page de knowledgeconstructiond, que dice que el demonio analiza el contenido del dispositivo "para ayudar a construir un grafo de conocimiento de propósito general que representa al dispositivo y al usuario".
Qué implica para quien desarrolla en macOS
Si programás una app para macOS y en algún momento le pedís al usuario permiso de Full Disk Access o de Automatización, estás pidiendo acceso a la misma carpeta protegida donde vive el triple store de macOS, aunque tu app nunca lo toque. Explicar con claridad por qué necesitás ese permiso, y no pedirlo por si acaso, es cada vez más relevante: los usuarios en LATAM que empiezan a entender qué hay detrás de ese cuadro de diálogo van a desconfiar de una app que lo solicita sin justificación visible en su flujo.
Para equipos que trabajan con App Sandbox o con Endpoint Security, vale la pena auditar qué entitlements declara tu propio binario antes de publicar, con un comando como codesign -d --entitlements - /ruta/a/tu.app, para confirmar que no estás arrastrando un permiso amplio que no usás.
Cómo funciona por dentro
Los datos llegan desde Contactos, Calendario, Fotos, Mensajes, Mail, ubicación, Screen Time y una larga lista de señales de comportamiento. knowledgeconstructiond hace el trabajo pesado de análisis; intelligenceplatformd coordina el resultado y lo escribe en disco. Este grafo de conocimiento personal no vive en la nube: vive localmente, en ~/Library/IntelligencePlatform, una carpeta con 51 bases SQLite protegida por el permiso de Full Disk Access de TCC (Transparency, Consent and Control), el mismo sistema que te pregunta si una app puede acceder a tus Fotos o a tu micrófono.
flowchart TD
A["Contactos, Calendario, Fotos, Mensajes y Mail"] --> B["knowledgeconstructiond"]
C["Ubicación, Screen Time y señales de uso"] --> B
B --> D["intelligenceplatformd"]
D --> E[("graph.db y las otras 50 bases SQLite")]
E --> F["Apple Intelligence y Siri"]
macOS incluye estos demonios por defecto desde la versión 13, lanzada en 2022.
La base más interesante de las 51 es graph.db, el triple store propiamente dicho. Un triple store guarda cada hecho como tres columnas: sujeto, predicado y objeto. Por ejemplo, "yo" es el sujeto, "empleador" es el predicado y una organización es el objeto. graph.db define 181 clases de entidad (persona, app, evento, organización) y 278 predicados distintos que describen cómo se relacionan esas entidades entre sí.
Hay un detalle de diseño que vale la pena entender porque explica por qué el esquema es tan grande: una relación como "empleador" no apunta directo del sujeto al objeto. En cambio, crea un nodo intermedio que representa el tipo de relación, y dos filas comparten el mismo relationshipId: una fila dice qué tipo de vínculo es (empleo, parentesco, amistad) y la otra dice a qué entidad apunta. Esa indirección le permite al sistema reclasificar una relación sin reescribir el grafo entero, algo útil cuando infiere que dos contactos dejaron de ser pareja.
flowchart LR
S["Sujeto: yo"] -- "PS500 empleador" --> R{"Nodo de relación"}
R -- "PS1 tipo" --> T["relación de empleo"]
R -- "PS45 miembro de" --> O["Organización: Empresa X"]
graph.db modela 181 clases de entidad y 278 predicados distintos.
Cada fila del triple store además guarda metadatos propios: una confidence (qué tan segura está la inferencia), una lista de sources (de qué app vino el dato), un contador de sourceDuplicates y un timestamp. Ese diseño es clásico de sistemas de razonamiento probabilístico: el grafo no asume que una inferencia es verdadera, le asigna un grado de certeza y la revisa a medida que llega evidencia nueva.
Ejemplos prácticos: inspeccionar tu propio grafo
No necesitás herramientas de terceros para mirar qué guarda tu Mac. macOS trae sqlite3 preinstalado, y el único requisito extra es darle permiso de Full Disk Access a la Terminal. Estos tres pasos son progresivos: primero confirmás que las bases existen, después listás sus tablas y por último verificás si tenés acceso real.
Paso 1: confirmar que las bases existen
ls -la ~/Library/IntelligencePlatform/
Este comando lista el contenido de la carpeta. Si tu Terminal no tiene Full Disk Access vas a ver Operation not permitted para cada archivo; si lo tiene, vas a ver varias decenas de archivos .db, entre ellos graph.db.
Paso 2: listar las tablas de graph.db
sqlite3 ~/Library/IntelligencePlatform/graph.db ".tables"
Apple no documenta el esquema interno, así que los nombres de tabla varían entre versiones de macOS. Usá .schema nombre_de_tabla sobre cada resultado para ver sus columnas reales en tu equipo.
Paso 3: verificar que tenés acceso de lectura real
sqlite3 ~/Library/IntelligencePlatform/graph.db "SELECT COUNT(*) FROM sqlite_master WHERE type='table';"
Con Full Disk Access concedido, este comando devuelve un número: la cantidad total de tablas en la base. Sin ese permiso vas a ver Error: unable to open database file, que es la forma en que TCC bloquea el acceso incluso antes de que sqlite3 llegue a abrir el archivo.
⚠️ Ojo: otorgarle Full Disk Access a la Terminal le da acceso a toda tu carpeta de usuario, no solo a IntelligencePlatform. Revocá el permiso en Ajustes del Sistema cuando termines de inspeccionar tu grafo.
Casos de uso y riesgos: cuando el grafo cae en manos equivocadas
El caso de uso que justifica todo esto, desde la perspectiva de Apple, es razonable: Siri puede responder cuándo juega tu hijo el próximo partido sin que ninguna app tenga que mandar tus contactos a un servidor. El problema aparece cuando ese mismo sistema, ya resuelto y estructurado, termina en manos de alguien que no es su dueño.
El escenario no requiere un atacante sofisticado. En casos de violencia de pareja o de dispositivos compartidos en una familia, el acceso físico ya está dado: alguien con esa cercanía no necesita robar la Mac, solo necesita un momento de sesión desbloqueada y, eventualmente, el mismo permiso de Full Disk Access que un usuario avanzado otorga para instalar una herramienta legítima.
8rank plantea un experimento mental concreto: si un atacante con acceso físico o remoto a una Mac desbloqueada extrae graph.db y lo carga como contexto de un LLM sin filtros de seguridad, lo que suele llamarse un modelo "abliterado", no necesita reconstruir manualmente quién es la familia de la víctima, dónde vive o con quién trabaja. El grafo ya hizo ese trabajo. Lo que antes tomaba horas de ingeniería social ahora es una consulta de texto, porque el sistema ya es, en los hechos, un mapa de vínculos familiares completo.
sequenceDiagram
participant A as Atacante
participant M as Mac comprometida
participant G as Base de datos del grafo
participant L as LLM sin filtros
A->>M: obtiene acceso físico o remoto
M->>G: hereda el permiso de Full Disk Access
G-->>A: expone entidades y relaciones
A->>L: carga el grafo como contexto
L-->>A: devuelve un perfil de la víctima y su entorno
Note over A,L: el ataque no rompe cifrado, abusa de un contexto legítimo
💭 Clave: el riesgo no está en romper el cifrado del disco, está en que un grafo ya resuelto convierte horas de trabajo de inteligencia en una sola consulta a un modelo de lenguaje.
FileVault, el cifrado de disco de macOS documentado en la guía oficial de seguridad de Apple, no protege de este escenario: cifra los datos en reposo, pero mientras la sesión está desbloqueada ya hizo su trabajo y el archivo se lee en claro. La barrera activa en este caso es exclusivamente TCC, y TCC depende de qué apps ya tenés autorizadas, no de si la sesión está abierta o cerrada.
Errores comunes y buenas prácticas
- Confundir FileVault con protección en uso. FileVault cifra el disco apagado; con la sesión abierta, cualquier proceso con Full Disk Access lee las bases sin pedir contraseña otra vez.- No revisar qué apps ya tienen Full Disk Access. Cada app con ese permiso puede leer la misma carpeta que inspeccionaste con sqlite3 en la sección anterior.- Pensar que borrar el historial de Siri borra el grafo. Apple no documenta un botón único de purga completa de graph.db; apagar fuentes individuales, como ubicación o Screen Time, solo frena el crecimiento futuro.- Dar por hecho que una Mac usada llega "limpia". El Asistente de Migración puede copiar estas bases de un equipo a otro; solo un borrado con "Borrar todo el contenido y los ajustes" las elimina con certeza.
La buena práctica equivalente es simple: revisar Ajustes > Privacidad y seguridad > Full Disk Access cada tanto, y tratar ese permiso con la misma cautela que una contraseña de administrador.
Comparativa con otros enfoques de personalización
EnfoqueDónde vive el datoVentajaLimitaciónGrafo de Apple en macOSOn-device, en ~/Library/IntelligencePlatformNo sale del dispositivo; alimenta a Siri sin depender de la nubeOpaco: sin documentación pública completa del esquemaPersonalización por cuenta (historial de actividad de Google)Servidores del proveedor, ligada a tu cuentaPortable entre dispositivos; se puede exportar o borrar desde ajustes de privacidadDepende de la red y de confiar en el proveedor con los datos en la nubeGrafo de conocimiento personal manual (notas tipo PKG)Archivos locales que el propio usuario editaControl total sobre qué entra y qué noNo se actualiza solo; hay que mantenerlo a mano
Profundizando: lo que todavía no está documentado
Apple publicó en 2023 un paper técnico sobre las técnicas detrás de esta construcción de grafos, según recoge la investigación de 8rank; el catálogo completo de publicaciones de Apple Machine Learning Research está disponible en su sitio oficial. Lo que ese paper no cubre es la integración real en macOS: qué versiones exactas lo activan, el inventario completo de las otras 50 bases además de graph.db, y la inferencia de parentesco que el sistema hace entre contactos sin que el usuario la declare explícitamente.
Ese vacío documental no es nuevo. Meses antes del análisis de 8rank, otro investigador independiente había encontrado la misma base de datos mientras construía su propio sistema de notas personales, y se topó, sin buscarlo, con el que Apple ya tenía corriendo en su laptop. La coincidencia resume bien el problema: dos personas distintas, trabajando por separado, llegaron al mismo hallazgo porque no hay una fuente oficial a la que consultar primero.
Para quien quiera ir más allá de sqlite3, el equipo de 8rank liberó un dashboard local llamado iKnow para navegar el grafo sin usar la línea de comandos; podés rastrearlo a partir del artículo original citado en Referencias.
📖 Resumen en Telegram: Ver resumen
Tu próximo paso: otorgale Full Disk Access a la Terminal en Ajustes del Sistema y corré sqlite3 ~/Library/IntelligencePlatform/graph.db ".tables" para ver, con tus propios datos, qué tablas existen en tu grafo ahora mismo.
Preguntas frecuentes
¿El grafo de conocimiento personal de Apple se puede desactivar por completo?
Apple no ofrece un interruptor único. Lo más cercano es revisar Ajustes > Privacidad y seguridad y desactivar fuentes de datos puntuales, como ubicación o Screen Time, aunque eso solo frena entradas nuevas y no borra lo ya inferido.
¿intelligenceplatformd envía algo de esta base a los servidores de Apple?
Según el man page oficial y el análisis de 8rank, el procesamiento descrito ocurre on-device. Apple Intelligence usa Private Cloud Compute para tareas que exceden la capacidad del dispositivo, pero eso es un mecanismo distinto al de graph.db.
¿Necesito instalar algo para ver qué guarda graph.db sobre mí?
No. sqlite3 viene preinstalado en macOS; solo necesitás otorgarle Full Disk Access a la Terminal, como mostramos en la sección práctica de este artículo.
¿Qué pasa con graph.db cuando vendo o regalo mi Mac?
Un borrado de fábrica con "Borrar todo el contenido y los ajustes" elimina toda la carpeta ~/Library, incluida IntelligencePlatform. Copiar archivos a mano o restaurar desde un backup sin ese paso puede dejar el grafo del dueño anterior intacto.
¿Windows o Linux tienen un equivalente a este triple store on-device?
Ninguno de los dos mantiene oficialmente una base de contexto local con esta estructura. Android personaliza asistentes principalmente a través de la cuenta de Google en la nube, no con un grafo local equivalente.
Referencias
- 8rank.ai: investigación original sobre knowledgeconstructiond, intelligenceplatformd y graph.db.- Apple Platform Security Guide: documentación oficial de los mecanismos de protección de datos en macOS.- SQLite CLI Documentation: referencia del comando sqlite3 usado para inspeccionar las bases.- Wikipedia: Triplestore: explicación del modelo de datos sujeto-predicado-objeto.- Apple Machine Learning Research: catálogo de publicaciones técnicas de Apple, incluido el paper de 2023 sobre construcción de grafos.
📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.
Top comments (0)