Cómo tu agente sabe cosas para las que nunca fue entrenado
Un modelo no conoce tu política de devoluciones. La recuperación encuentra los pasajes correctos de tu propio contenido y se los entrega al modelo junto con la pregunta. Así lo hace Thaliq, paso a paso.
Un modelo de lenguaje sabe una cantidad enorme sobre el mundo y nada sobre tu negocio. Nunca vio tu política de devoluciones, tus zonas de envío ni que aceptas Yape. Pregúntale directamente y hará lo más peligroso que puede hacer un agente de soporte: adivinar, con total seguridad.
La solución no es el ajuste fino. Es la recuperación: traer a la conversación la pieza relevante de tu conocimiento y dejar que el modelo responda con ella delante, no de memoria.
La recuperación en cuatro movimientos
- Dividir tu contenido en pasajes pequeños. Thaliq corta al final de un párrafo, luego al final de una oración y solo después en un límite fijo: como máximo 1200 caracteres por fragmento, con 150 caracteres de solapamiento entre fragmentos vecinos.
- Convertir cada fragmento en un vector, un punto en el espacio del significado. Thaliq usa
voyage-3de Voyage AI y guarda los vectores en PostgreSQL, con pgvector. - Buscar en ese espacio con la pregunta. Antes de la primera llamada al modelo de una ejecución, Thaliq convierte el último mensaje del usuario final en un vector y se queda con los fragmentos más cercanos que superan un umbral de similitud, dentro de un presupuesto de tokens. Los valores por defecto: como máximo 8 fragmentos, con una similitud de al menos 0.2 y 1500 tokens.
- Fundamentar la respuesta. Los fragmentos llegan al modelo como material de referencia, bajo un encabezado que los marca como datos y no como instrucciones, cada uno con su fuente y su título.
Qué le das
Una KnowledgeBase se declara en un archivo, como el resto de tus agentes. Sus fuentes son páginas web (una dirección https) o texto y Markdown que escribes en el propio archivo:
apiVersion: thaliq.com/v1alpha1kind: KnowledgeBasemetadata: name: kb-public-sitespec: description: Páginas públicas del sitio. sources: - name: about url: https://www.example.com/about - name: booking-faq format: markdown text: | ## ¿Cómo reservo una sesión? Elige un especialista y luego un horario libre.Aplícala y el comando te dice cómo terminó cada fuente:
$ thaliq apply -f kb/ --waitKnowledgeBase/kb-public-site created (version 1); waiting for the ingestion of 2 sourcesKnowledgeBase/kb-public-site source about ready: 4 chunks (voyage/voyage-3)KnowledgeBase/kb-public-site source booking-faq ready: 1 chunk (voyage/voyage-3)applied 1 resourceUn agente nombra la KnowledgeBase como su memoria de largo plazo (memory.longTerm.collection), o un nodo retrieval de su grafo la consulta donde tú lo pongas. topK, similarityThreshold y maxContextTokens son ajustes de cualquiera de los dos, para cuando los valores por defecto no sirvan.
Con fundamento, no adivinado
La recuperación solo devuelve lo que se parece lo suficiente. Si preguntas algo que la base de conocimiento no puede responder, nada supera el umbral; un agente cuyas instrucciones lo indiquen puede entonces hacer una pregunta aclaratoria o pasar la conversación a una persona, en lugar de inventar una respuesta.
Y puedes comprobar qué recibió el agente. Cada búsqueda es un span retrieval en la traza de la ejecución, en Lens: los fragmentos que devolvió, con su documento, su posición y su puntaje, y cuántos tokens conservó. Cuando una respuesta parezca mala, abre la ejecución y mira qué vio el modelo antes de culparlo.
La calidad de la recuperación es el producto
Cualquiera puede meter texto en un prompt. Las victorias difíciles y aburridas están en la recuperación: cómo se corta el texto, qué modelo de embeddings lo lee, cuántos fragmentos pasan y qué tan parecidos deben ser, y qué ocurre cuando una página cambia. Escribe cada fuente como párrafos cortos separados por líneas vacías, cada uno sobre una sola cosa, para que un fragmento contenga una respuesta completa. Nada se actualiza por sí solo: cuando una página cambia, thaliq refresh knowledgebase kb-public-site la descarga de nuevo, y una página cuyo texto no cambió no se vuelve a procesar.
Lo que debes saber antes de usarla
- Una KnowledgeBase es para el contenido de tu propia organización. Queda fuera de la retención de las conversaciones y de la eliminación de datos de un usuario final, así que no debe contener datos personales de usuarios finales.
- El texto de tus fuentes y las preguntas de tus usuarios van a Voyage AI para convertirse en vectores. Esto aplica solo a las organizaciones que usan bases de conocimiento.
- Hoy una fuente es una página web o un texto que escribes en el archivo. No hay carga de archivos.
Tu agente no necesita ser entrenado sobre tu negocio. Solo necesita poder buscarlo.
Jhosetp Chino
Escribimos sobre cómo construimos Thaliq: las decisiones, lo que salió mal y lo que cambiamos por eso. Desde Lima.