Búsqueda y grafo

Encuentra por significado y por término exacto a la vez

Dos búsquedas corren en paralelo sobre la misma consulta, una por significado y otra por término literal, y sus resultados se fusionan en una sola lista. Encima hay un grafo que muestra qué documento se enlaza con cuál. Todo corre en su servidor.

  • Fusión por rango
  • Vectores de 1.024 dimensiones
  • Buscar no se cobra nunca

Dos caminos, una sola lista

La búsqueda por significado encuentra la nota que habla de lo mismo con otras palabras. La búsqueda por término literal encuentra el código de contrato que usted escribió tal cual. Se combinan por la posición que cada documento ocupó en su lista, no por el puntaje, así que ninguna de las dos escalas domina a la otra. La coincidencia exacta pesa un poco más a propósito: si escribió una palabra rara, es porque importa.

  • Un resultado por documento, con el fragmento de 240 caracteres que mejor calza
  • Una nota que quedó tercera en una lista y ausente en la otra puede salir primera
búsqueda híbrida

garantía extendida contrato marco

Por significado

  1. 1 acuerdo-servicio.md
  2. 2 politica-postventa.md
  3. 3 andes-v2.md

Por término exacto

  1. 1 andes-v2.md
  2. 2 acta-2026-03-11.md

Fusión por posición en cada lista

  1. 1 andes-v2.md las dos
  2. 2 acuerdo-servicio.md significado
  3. 3 acta-2026-03-11.md término exacto
El contrato aparece primero porque las dos listas lo traen, aunque en ninguna era el primero.

El aislamiento vive dentro de la consulta

El identificador de la empresa va en la condición de las dos consultas, no en un filtro que se aplica después sobre los resultados. La diferencia importa más de lo que parece: un filtro posterior que falle deja pasar filas, mientras que una condición que forma parte de la consulta no tiene filas que dejar pasar. Debajo, la base de datos aplica además seguridad a nivel de fila, con el identificador tomado de la sesión verificada y nunca del cuerpo de la petición.

las dos piernas de la consulta simplificado

-- por significado

WHERE "companyId" = $empresa

ORDER BY embedding <=> $vector

-- por término exacto

WHERE "companyId" = $empresa

AND contenido %> $texto

La consulta siempre va como parámetro, nunca concatenada al texto de la sentencia.

Encima de esto, PostgreSQL aplica seguridad a nivel de fila en las tablas con datos de empresa.

Subir su historia documental no se le cobra

El modelo que convierte texto en vectores corre en su propia infraestructura. Por eso indexar veinte años de actas cuesta tiempo de máquina y nada más, y buscar tampoco se cobra. Lo que se cobra es el trabajo nuevo de sus agentes, y solo eso. Es la diferencia entre poder subir todo el archivo histórico de una vez y tener que elegir qué documentos «vale la pena» indexar.

  • Vectores de 1.024 dimensiones, multilingües, con espacio de sobra para cada tramo que se indexa
  • El mismo modelo local para español y para inglés, sin traducir nada
qué se cobra
El agente trabaja
se cobra
Subir e indexar documentos
no se cobra
Buscar y navegar el grafo
no se cobra
Recordar lo que ya conversaron
no se cobra
Hablar entre personas
no se cobra
La relectura es la mayor parte de lo que ocurre mientras el agente trabaja, y queda fuera de la factura.

Cómo se corta un documento antes de indexarlo

Primero se parte por los títulos del Markdown, que es donde el autor ya marcó que cambia el tema. Si un tramo queda muy largo se corta a 1.200 caracteres con 150 de traslape, para que una frase partida al medio siga apareciendo entera en uno de los dos tramos. Y si el archivo no cambió, no se vuelve a indexar: se compara el hash del contenido y se salta.

  • Mover una nota de carpeta conserva sus vectores si el contenido no cambió
  • Los envíos al modelo van en lotes, con reintentos y con caché por hash de contenido
  • Escribir mil notas de golpe encola el trabajo en vez de tumbar el servidor
corte de una nota

## Política de descuentos

tramo 1 traslape tramo 2
Corte primero
por títulos del Markdown
Tope por tramo
1.200 caracteres
Traslape
150 caracteres
El traslape es lo que evita que una definición partida en dos quede sin encontrarse.

El grafo: vecinos, retroenlaces y subgrafos

Cada nota es un nodo y cada enlace entre corchetes es una arista. Desde una nota puede ver a qué apunta, quién apunta hacia ella y el subgrafo de su carpeta, que es la forma rápida de descubrir que un manual quedó huérfano o que tres actas hablan del mismo acuerdo. El espacio del grafo se llama por el identificador de la empresa y no por su nombre, así que renombrar la empresa no deja el grafo huérfano.

  • El navegador nunca envía consultas al grafo: las arma el servidor
  • Antes de responder se valida que la ruta pedida sea de su empresa; si no lo es, no existe
grafo del departamento vecinos de andes-v2
andes-v2.md acta-2026-03-11 acuerdo-servicio propuesta-quito politica-postventa plantilla-firma
Los enlaces salen de lo que ya escribió: el grafo no inventa relaciones.

Lo que todavía no hace

Todavía no hay conectores automáticos

La bóveda se llena subiendo archivos y carpetas, o dejando que el agente escriba en ella. No hay sincronización con la nube de documentos de otro proveedor, así que una migración grande se hace una vez, se indexa y de ahí en adelante se trabaja adentro. Para la mayoría de empresas eso ocurre una sola vez y no vuelve a ser tema, pero si su documentación viva está en otro sistema conviene decirlo antes de empezar.

Lo que sí ayuda: indexar no se cobra, así que la migración inicial no tiene un costo de IA asociado por más grande que sea.

Traiga su documentación y vea qué contesta.

Le mostramos el agente trabajando sobre documentos de ejemplo, o sobre los suyos si prefiere. De ahí elige el plan y el pago se hace en la pasarela.

  • Todas las funciones incluidas