El problema fundamental que resuelve Dropbox Dash es la fragmentación de la información del usuario a través de múltiples aplicaciones SaaS, lo que dificulta la recuperación y el uso efectivo de esta información por parte de los Large Language Models (LLMs). Los LLMs genéricos carecen de acceso al contenido propietario y contextual del usuario, limitando su utilidad en entornos de trabajo. Dash aborda esto construyendo un motor de contexto unificado que ingesta, normaliza y enriquece datos de diversas fuentes, permitiendo a los LLMs realizar búsquedas, responder preguntas y ejecutar tareas agenticas sobre el corpus de conocimiento personal y organizacional del usuario. La elección de una arquitectura basada en índices, en contraste con la recuperación federada, se justifica por la necesidad de pre-procesamiento, enriquecimiento de datos, acceso a conectores corporativos y la velocidad de recuperación a escala, a pesar de la complejidad de implementación.

La relevancia de esta solución radica en la creciente dependencia de las organizaciones de múltiples herramientas de software, lo que genera silos de información. La capacidad de unificar y contextualizar estos datos es crucial para desbloquear el potencial de los LLMs en el ámbito empresarial. Históricamente, la recuperación de información ha evolucionado desde sistemas basados en palabras clave (como BM25) hasta enfoques semánticos (embeddings vectoriales), y ahora hacia la integración de grafos de conocimiento para capturar relaciones complejas, uniendo así diferentes paradigmas para ofrecer una experiencia de búsqueda y asistencia más inteligente y personalizada.

Arquitectura del Sistema

La arquitectura de Dropbox Dash se centra en un 'motor de contexto' que orquesta la ingesta, el procesamiento y la recuperación de información. Comienza con 'conectores' personalizados que se integran con aplicaciones de terceros, manejando sus APIs, límites de tasa y sistemas de ACL. El contenido ingerido pasa por una fase de 'comprensión de contenido', donde se normaliza (ej. a Markdown), se extrae información clave (títulos, metadatos, enlaces) y se generan 'embeddings' para diferentes tipos de medios (texto, imágenes con modelos CLIP, PDFs, audio con transcripción, video con modelos multimodales).

Posteriormente, la información se modela como un 'grafo de conocimiento', estableciendo relaciones entre entidades (ej. reuniones, documentos, personas, proyectos Jira). Este grafo no se almacena en una base de datos de grafos tradicional debido a desafíos de latencia y patrones de consulta híbridos. En su lugar, se construyen 'knowledge bundles' de forma asíncrona, que son representaciones compactas y contextuales del grafo, similares a embeddings o resúmenes. Estos bundles se envían al mismo pipeline de indexación que el resto del contenido, donde se 'chunk' y se generan embeddings para recuperación léxica y semántica.

La información procesada se almacena en 'data stores' seguros, utilizando un 'índice léxico' (BM25) y un 'vector store' para 'dense vectors', permitiendo una 'recuperación híbrida'. Los resultados recuperados pasan por múltiples 'ranking passes' para personalización y aplicación de ACLs. Para mitigar las limitaciones de los 'Multi-tool Co-Pilot' (MCP) en cuanto a uso de tokens y latencia, Dash implementa 'super tools' que encapsulan múltiples herramientas de recuperación en una sola, utiliza grafos de conocimiento para reducir el uso de tokens, almacena los resultados de las herramientas localmente fuera de la ventana de contexto del LLM, y emplea 'sub-agents' con conjuntos de herramientas más estrechos, seleccionados por un clasificador.

Flujo de Ingesta y Contextualización de Contenido

  1. 1 Conectores Crawlers personalizados se conectan a APIs de terceros, manejando ACLs y lími...
  2. 2 Normalización de Contenido Archivos de diversas fuentes se convierten a un formato unificado (ej. Markdo...
  3. 3 Extracción de Información Se extraen títulos, metadatos, enlaces y se generan embeddings para texto, im...
  4. 4 Modelado de Grafo de Conocimiento Se establecen relaciones entre entidades (documentos, personas, reuniones, pr...
  5. 5 Creación de Knowledge Bundles Representaciones compactas y contextuales del grafo se generan asíncronamente.
  6. 6 Pipeline de Indexación Contenido y bundles se 'chunk' y se generan embeddings para índices léxicos y...
  7. 7 Almacenamiento Seguro Datos, embeddings y chunks se guardan en índices léxicos (BM25) y vectoriales.

Flujo de Recuperación y Ranking para LLMs

  1. 1 Consulta del Usuario El usuario realiza una consulta a través de Dash.
  2. 2 Selección de Herramienta Clasificador selecciona sub-agentes con 'super tools' o herramientas específi...
  3. 3 Recuperación Híbrida Se consulta el índice léxico (BM25) y el vector store para obtener resultados.
  4. 4 Enriquecimiento con Grafo Se usa el grafo de conocimiento para añadir contexto relevante (ej. perfiles ...
  5. 5 Almacenamiento Local de Resultados Resultados de herramientas se almacenan localmente, fuera de la ventana de co...
  6. 6 Ranking Personalizado Múltiples pasadas de ranking aplican personalización y ACLs a los resultados.
  7. 7 Contexto para LLM Resultados rankeados y contextualizados se envían al LLM para generar una res...
CapaTecnologíaJustificación
data-processing Custom Crawlers Ingesta de datos de aplicaciones de terceros, manejando APIs, rate limits y ACLs.
data-processing CLIP-based models Comprensión de imágenes y generación de embeddings para contenido visual.
data-processing Multimodal models Comprensión de contenido complejo como PDFs y videos, extrayendo escenas y generando entendimiento.
storage Lexical Index (BM25) Almacenamiento y recuperación de información basada en palabras clave para búsqueda léxica.
storage Vector Store Almacenamiento de embeddings densos para recuperación de información semántica.
data-processing Knowledge Graphs (custom implementation) Modelado de relaciones entre entidades de diferentes aplicaciones para enriquecer el contexto. No se usa una base de datos de grafos tradicional. vs Graph databases Implementación asíncrona de 'knowledge bundles' en lugar de una base de datos de grafos.
compute LLMs (OpenAI o3) Generación de respuestas, razonamiento y evaluación de relevancia (LLM as a judge).
data-processing DSPy Optimización programática de prompts para LLMs, mejorando la precisión y la gestión de prompts a escala.

Trade-offs

Ganancias
  • Velocidad de recuperación
  • Acceso a conectores corporativos
  • Enriquecimiento de datos (pre-procesamiento)
  • Reducción de uso de tokens en LLMs
  • Mejora en la precisión de la recuperación
Costes
  • Costo de implementación y mantenimiento (infraestructura y pipelines)
  • Costo de hosting de información indexada
  • Frescura de los datos (potenciales problemas de latencia en la ingesta)
  • Complejidad de la arquitectura

Fundamentos Teóricos

El concepto de recuperación de información en Dropbox Dash se basa en principios fundamentales de la ciencia de la computación y la recuperación de información (IR). El uso de BM25 para la indexación léxica se remonta a trabajos clásicos en IR, como el modelo de Okapi BM25 desarrollado en la década de 1990, que optimiza la ponderación de términos para mejorar la relevancia de los documentos. La incorporación de 'dense vectors' y 'embeddings' se alinea con avances más recientes en procesamiento de lenguaje natural y aprendizaje automático, donde modelos como Word2Vec (Mikolov et al., 2013) y posteriormente modelos transformadores (Vaswani et al., 2017) han demostrado la eficacia de las representaciones vectoriales para capturar el significado semántico.

La construcción de 'grafos de conocimiento' para enriquecer el contexto tiene raíces en la representación del conocimiento y la inteligencia artificial simbólica, con trabajos que datan de los años 70 y 80 sobre redes semánticas y marcos. La idea de usar LLMs como 'jueces' para evaluar la relevancia de la recuperación es una adaptación moderna de las métricas de evaluación de IR, como el NDCG (Normalized Discounted Cumulative Gain), que mide la calidad de un ranking de resultados. La optimización de prompts con herramientas como DSPy se conecta con el campo emergente de la ingeniería de prompts y la meta-optimización, buscando automatizar y mejorar la interacción con modelos de lenguaje, similar a cómo los algoritmos de optimización se han aplicado a problemas de búsqueda y aprendizaje a lo largo de la historia de la IA.