El desarrollo de agentes de chat basados en Large Language Models (LLM) presenta un desafío fundamental en la computación distribuida: cómo asegurar y mejorar la calidad de las interacciones en sistemas complejos y multi-paso. A diferencia de la evaluación de modelos de ML tradicionales, donde la salida es discreta y el contexto limitado, un agente de chat debe interpretar la intención del usuario, seleccionar contexto de múltiples fuentes, usar herramientas y sintetizar información a lo largo de varias interacciones. Esto requiere un enfoque de evaluación holístico que no solo juzgue la respuesta final, sino también la trayectoria completa del agente, incluyendo la comprensión de la intención, el uso de herramientas y la selección de contexto.

La solución de Dropbox aborda este problema mediante la creación de un bucle de retroalimentación automatizado. Este bucle utiliza 'jueces' basados en LLM, calibrados con anotaciones humanas, para generar señales de evaluación escalables. Estas señales se utilizan luego para optimizar los prompts del agente de chat, transformando la ingeniería de prompts de un proceso manual e intuitivo a una disciplina de ingeniería de ML basada en datos. Este enfoque permite una iteración más rápida y mejoras medibles en la calidad y eficiencia del agente, un problema crítico en la era de la IA generativa donde la fiabilidad y el costo son factores clave.

Arquitectura del Sistema

El sistema se compone de varias capas interconectadas. En el núcleo, el Agente de Chat (basado en LLM) interactúa con los usuarios, interpretando la intención, recuperando contexto de múltiples fuentes (documentos, mensajes, notas de reuniones), y utilizando herramientas (búsqueda, lectura de documentos) para sintetizar respuestas. La complejidad radica en la naturaleza multi-paso y multi-turno de estas interacciones, donde el agente debe decidir cuándo responder directamente, buscar más información, resumir o pedir aclaración.

La capa de Evaluación es fundamental. Consiste en 'Jueces LLM' que evalúan el rendimiento del agente. Estos jueces no solo califican la respuesta final, sino también dimensiones intermedias como la comprensión de la intención, el uso de herramientas, la selección de contexto, la síntesis y la adaptación turno a turno. La calibración de estos jueces es un paso crítico: se utiliza un conjunto de ejemplos anotados por humanos, siguiendo una rúbrica estructurada que evalúa dimensiones como 'user intent following', 'semantic relevance', 'tool calling', 'instruction following' y 'context selection'. Las anotaciones humanas incluyen puntuaciones (escala 1-5), notas de razonamiento y códigos de fallo, proporcionando una supervisión rica para el entrenamiento del juez.

La Optimización se realiza utilizando el framework DSPy, que incorpora algoritmos como GEPA (Gradient-based Prompt Engineering Algorithm) y MIPROv2. DSPy utiliza las señales de evaluación de los jueces calibrados para proponer automáticamente cambios en los prompts del agente. Este proceso se realiza en un bucle de retroalimentación: los prompts candidatos se 'reproducen' (replay) en un conjunto representativo de interacciones históricas, las salidas del agente se puntúan por el pipeline de evaluación, y estas puntuaciones (junto con el razonamiento estructurado del juez) guían la siguiente propuesta de prompt de DSPy. Este enfoque transforma la optimización de prompts en un proceso automatizado y basado en datos, similar a un pipeline de ML continuo.

Bucle de Optimización del Agente de Chat

  1. 1 Interacción del Usuario Usuario interactúa con el agente de chat, generando una trayectoria.
  2. 2 Recolección de Datos Se registran interacciones y trazas del agente (logs).
  3. 3 Anotación Humana (Subconjunto) Evaluadores humanos etiquetan un pequeño conjunto de ejemplos con rúbricas de...
  4. 4 Calibración de Jueces LLM Se optimizan los prompts de los jueces LLM para alinearlos con el juicio humano.
  5. 5 Evaluación por Jueces LLM Jueces LLM evalúan trayectorias completas del agente, generando puntuaciones ...
  6. 6 Optimización de Prompt (DSPy) DSPy (con GEPA/MIPROv2) usa las evaluaciones para proponer nuevos prompts par...
  7. 7 Replay Offline El agente con el nuevo prompt se ejecuta en interacciones históricas represen...
  8. 8 Validación y Despliegue Se validan las mejoras y se despliega el prompt optimizado en producción.
CapaTecnologíaJustificación
compute Large Language Models (LLMs) Núcleo del agente de chat y de los jueces de evaluación. Realizan interpretación de intención, generación de respuestas, síntesis de información y evaluación de calidad.
data-processing DSPy Framework de código abierto para optimizar sistemas de IA. Utilizado para la optimización de prompts de jueces y agentes, aplicando algoritmos de búsqueda y retroalimentación.
data-processing GEPA (Gradient-based Prompt Engineering Algorithm) Algoritmo de optimización dentro de DSPy. Propone cambios en los prompts y los prueba contra ejemplos etiquetados para identificar mejoras.
data-processing MIPROv2 Algoritmo de optimización dentro de DSPy. Contribuye a la mejora del rendimiento del juez y del agente.
storage Datos de interacciones históricas de chat Base para el 'replay' offline y la evaluación de prompts candidatos, asegurando que la optimización se base en comportamiento realista.

Trade-offs

Ganancias
  • Reducción de respuestas incompletas
  • Reducción de aspectos clave omitidos
  • Reducción del uso de tokens
  • Velocidad de experimentación (prompts)
Costes

    Fundamentos Teóricos

    Este trabajo se conecta con principios fundamentales de la evaluación de sistemas de información y la optimización de algoritmos. La idea de un 'juez' automatizado para evaluar la calidad de la salida de un sistema tiene paralelos con métricas de evaluación en Recuperación de Información (IR), como la precisión y el recall, aunque aquí se extiende a la complejidad de la interacción multi-paso. La calibración de los jueces LLM con anotaciones humanas resuena con los principios de la 'ground truth' y la validación cruzada en Machine Learning, donde la fiabilidad de los datos de entrenamiento y evaluación es primordial para la robustez del modelo.

    La aplicación de DSPy y algoritmos como GEPA y MIPROv2 para la optimización de prompts puede verse como una extensión de los métodos de optimización de hiperparámetros y búsqueda de arquitectura (NAS) en el contexto de los LLM. En lugar de optimizar pesos de red o arquitecturas de capas, se optimizan las instrucciones y el comportamiento del modelo a través de su prompt. Esto refleja un cambio de paradigma donde el prompt se convierte en un artefacto programable y optimizable, en línea con la investigación en 'prompt engineering' y 'meta-learning' para modelos de lenguaje, buscando la máxima eficiencia y rendimiento con un mínimo de intervención manual.