Términos y conceptos de Agent Observability
Este producto no es compatible con el
sitio Datadog seleccionado. (
).
Descripción general
La interfaz de usuario de Agent Observability proporciona muchas herramientas para solucionar problemas de rendimiento de las conversaciones y correlacionar datos en todo el producto, lo que le permite encontrar y resolver problemas en modelos de lenguaje grandes (LLM).
| Concepto | Descripción |
|---|
| Tramos | Un tramo es una unidad de trabajo que representa una operación en su aplicación de LLM y es el componente básico de una traza. |
| Trazas | Una traza representa el trabajo involucrado en el procesamiento de una solicitud en su aplicación de LLM y consta de uno o más tramos anidados. Un tramo raíz es el primer tramo de una traza y marca el inicio y el final de la misma. |
| Evaluaciones | Las evaluaciones son un método para medir el rendimiento de su aplicación de LLM. Por ejemplo, las comprobaciones de calidad como la falta de respuesta o la relevancia del tema son diferentes tipos de evaluaciones que puede realizar un seguimiento para su aplicación de LLM. |
Tramos
Un tramo consta de los siguientes atributos:
- Nombre
- Hora de inicio y duración
- Tipo de error, mensaje y rastreo de errores
- Entradas y salidas, como prompts y finalizaciones de LLM
- Metadatos (por ejemplo, parámetros de LLM como
temperature, max_tokens) - Métricas, como
input_tokens y output_tokens - Etiquetas
Tipos de span
Agent Observability clasifica los tramos por su span kind, el cual define el tipo de trabajo que el tramo está realizando. Esto puede brindarle información más detallada sobre qué operaciones está realizando su aplicación de LLM.
Agent Observability admite los siguientes tipos de span:
| Tipo | Representa | ¿Es un span raíz válido? | Ejemplos |
|---|
| LLM | Una llamada a un LLM. | Sí | Una llamada a un modelo, como OpenAI GPT-4. |
| Flujo de trabajo | Cualquier secuencia predeterminada de operaciones que incluya llamadas a LLM y cualquier operación contextual circundante. | Sí | Un servicio que toma una URL y devuelve un resumen de la página, lo cual requiere una llamada a una herramienta para obtener la página, algunas tareas de procesamiento de texto y un resumen mediante LLM. |
| Agent | Una serie de decisiones y operaciones realizadas por un Agent autónomo, que generalmente consisten en flujos de trabajo anidados, LLMs, herramientas y llamadas a tareas. | Sí | Un chatbot que responde preguntas de los clientes. |
| Herramienta | Una llamada a un programa o servicio donde los argumentos de la llamada son generados por un LLM. | No | Una llamada a una API de búsqueda web o a una calculadora. |
| Tarea | Un paso independiente que no implica una llamada a un servicio externo. | No | Un paso de preprocesamiento de datos. |
| Incrustación | Una llamada a un modelo o función que devuelve una incrustación. | No | Una llamada a text-embedding-ada-002. |
| Recuperación | Una operación de recuperación de datos desde una base de conocimientos externa. | No | Una llamada a una base de datos vectorial que devuelve una matriz de documentos clasificados. |
Para obtener instrucciones sobre cómo crear tramos desde su aplicación, incluidos ejemplos de código, consulte Tracing spans en la documentación del Agent Observability SDK para Python.
Tramo de LLM
Los tramos de LLM representan una llamada a un LLM donde las entradas y salidas se representan como texto.
Una traza puede contener un solo tramo de LLM, en cuyo caso la traza representa una operación de inferencia de LLM.
Los tramos de LLM normalmente no tienen tramos hijos, ya que son operaciones independientes que representan una llamada directa a un LLM.
Tramo de flujo de trabajo
Los tramos de flujo de trabajo representan cualquier secuencia estática de operaciones. Utilice flujos de trabajo para agrupar una llamada de LLM con sus operaciones contextuales de apoyo, como llamadas a herramientas, recuperación de datos y otras tareas.
Los tramos de flujo de trabajo son frecuentemente el tramo raíz de una traza que consiste en una secuencia estándar. Por ejemplo, una función podría tomar un enlace a un artículo de arXiv y devolver un resumen. Este proceso podría implicar una llamada a una herramienta para obtener el artículo, algunas tareas de procesamiento de texto y un resumen de LLM.
Los tramos de flujo de trabajo pueden tener cualquier tramo como hijo, los cuales representan pasos secundarios en la secuencia del flujo de trabajo.
Tramo de Agent
Los tramos de Agent representan una secuencia dinámica de operaciones donde un modelo de lenguaje grande determina y ejecuta operaciones basadas en las entradas. Por ejemplo, un tramo de Agent podría representar una serie de pasos de razonamiento controlados por un ReAct agent.
Los tramos de Agent son frecuentemente el tramo raíz para trazas que representan Agent autónomos o de razonamiento.
Los tramos de Agent pueden tener cualquier tramo como hijo, los cuales representan pasos secundarios orquestados por un motor de razonamiento.
Los tramos de herramienta representan un paso independiente en un flujo de trabajo o agente que implica una llamada a un programa o servicio externo, como una API web o una base de datos.
Los tramos de herramienta normalmente no tienen tramos hijos, ya que son operaciones independientes que representan la ejecución de una herramienta.
Tramo de tarea
Los tramos de tarea representan un paso independiente en un flujo de trabajo o Agent que no implica una llamada a un servicio externo, como un paso de saneamiento de datos antes de que se envíe una solicitud a un LLM.
Los tramos de tarea normalmente no tienen hijos, ya que son pasos independientes en el flujo de trabajo o Agent.
Tramo de incrustación
Los tramos de incrustación son una subcategoría de los tramos de herramienta y representan una llamada independiente a un modelo o función de incrustación para crear una incrustación. Por ejemplo, un tramo de incrustación podría usarse para rastrear una llamada al punto de conexión de incrustación de OpenAI.
Los tramos de incrustación pueden tener tramos de tarea como hijos, pero normalmente no tienen hijos.
Tramo de recuperación
Los tramos de recuperación son una subcategoría de los tramos de herramienta y representan una operación de búsqueda vectorial que involucra una lista de documentos devueltos desde una base de conocimientos externa. Por ejemplo, un tramo de recuperación podría usarse para trazar una búsqueda de similitud en un almacén vectorial para recopilar documentos relevantes con el fin de aumentar un prompt de usuario para un tema determinado.
Cuando se usan junto con tramos de incrustación, los tramos de recuperación pueden proporcionar visibilidad sobre las operaciones de generación aumentada por recuperación (RAG).
Los tramos de recuperación normalmente no tienen hijos, ya que representan un paso de recuperación independiente.
Trazas
Agent Observability admite la observabilidad para aplicaciones de LLM con complejidad variable. Según la estructura y la complejidad de sus trazas, puede utilizar las siguientes funciones de Agent Observability:
Monitoreo de inferencia de LLM
Las trazas de inferencia de LLM se componen de un único tramo de LLM.
El trazar de inferencias individuales de LLM desbloquea funciones básicas de Agent Observability, lo que le permite:
- Rastrear las entradas y salidas de sus llamadas a LLM.
- Realice un seguimiento del uso de tokens, las tasas de error y las latencias de sus llamadas a LLM.
- Desglose de métricas importantes por modelo y proveedor de modelos.
Para obtener un ejemplo detallado, consulte el notebook de Jupyter de monitoreo de LLM, que demuestra cómo crear y rastrear una llamada a un LLM.
El SDK proporciona integraciones para capturar automáticamente las llamadas a LLM de proveedores específicos. Consulte Instrumentación automática para obtener más información. Si está utilizando un proveedor de LLM que no es compatible, debe instrumentar manualmente su aplicación.
Monitoreo de flujo de trabajo de LLM
Una traza de flujo de trabajo se compone de un tramo de flujo de trabajo raíz con tramos anidados de LLM, de tarea, de herramienta, de incrustación y de recuperación.
La mayoría de las aplicaciones de LLM incluyen operaciones que rodean las llamadas a LLM y desempeñan un papel importante en el rendimiento general de su aplicación; por ejemplo, llamadas a herramientas a API externas o pasos de tareas de preprocesamiento.
Al rastrear las llamadas a LLM y las operaciones contextuales de tareas o herramientas juntas bajo tramos de flujo de trabajo, puede desbloquear información más detallada y una visión más holística de su aplicación de LLM.
Para obtener ejemplos detallados, consulte el LLM Monitoring Jupyter notebook que demuestra cómo crear y rastrear una serie compleja y estática de pasos que involucran una llamada a una herramienta y una llamada a un LLM, o el LLM Monitoring Jupyter notebook que demuestra cómo crear, rastrear y evaluar un flujo de trabajo RAG.
LLM Agent Monitoring
Una traza de Agent monitoring se compone de un Agent root span con tramos anidados de LLM, task, tool, embedding, retrieval y flujo de trabajo.
Si su aplicación de LLM tiene una lógica autónoma compleja, como la toma de decisiones que no puede ser capturada por un flujo de trabajo estático, es probable que esté utilizando un LLM Agent. Los Agents pueden ejecutar múltiples flujos de trabajo diferentes según la entrada del usuario.
Puede instrumentar su aplicación de LLM para rastrear y agrupar todos los flujos de trabajo y operaciones contextuales ejecutadas por un solo LLM Agent como una traza de Agent.
Para obtener un ejemplo detallado, consulte el LLM Monitoring Jupyter notebook que demuestra cómo crear y rastrear un LLM-powered Agent que llama a herramientas y toma decisiones basadas en los datos.
Evaluaciones
Agent Observability ofrece evaluaciones administradas y controles de calidad para evaluar la calidad, seguridad y eficacia de sus conversaciones de LLM. Con evaluations, puede comprender el rendimiento de las conversaciones y mejorar las respuestas de su aplicación de LLM. Esto mejora la experiencia del usuario y garantiza resultados valiosos y precisos.
Datadog ofrece una variedad de opciones para sus evaluaciones:
Además, el Sensitive Data Scanner de Datadog está integrado de forma nativa con Agent Observability, por lo que puede asegurarse de que cualquier dato confidencial en su entrada y salida sea escaneado y redactado.
Lecturas adicionales
Documentación, enlaces y artículos útiles adicionales: