Alibaba Cloud define los campos de traza de modelos de lenguaje grandes (LLM) con base en el estándar OpenTelemetry y en conceptos del dominio de aplicaciones de LLM. Estos campos amplían los atributos, los recursos y los eventos para describir la semántica de los datos de traza de las aplicaciones de LLM. Capturan operaciones clave, como las solicitudes de entrada y salida del LLM y el consumo de tokens. Además, proporcionan datos semánticos detallados y conscientes del contexto para escenarios como Completion, Chat, generación aumentada por recuperación (RAG), Agent y Tool Calling, lo que permite un seguimiento y una generación de informes eficaces.
Esta especificación semántica evoluciona junto con la comunidad. Si su aplicación está desarrollada en Python, debe recopilar manualmente los datos de observability. Para integrar y recopilar los datos, utilice el componente loongsuite-util-genai. Para más información, consulte el archivo README.
Las definiciones de campos a nivel de span siguen los estándares abiertos de OpenTelemetry. Para consultar las descripciones detalladas de los campos de traza de nivel superior almacenados en Managed Service for OpenTelemetry de Alibaba Cloud, consulte Trace Explorer parameters.
El SpanKind específico de LLM es un atributo, no el tipo de span definido en la especificación de trazas de OpenTelemetry. Esta especificación semántica amplía las convenciones semánticas GenAI de OpenTelemetry. Dicha especificación se encuentra en desarrollo activo y podría cambiar en futuras versiones de mantenimiento.
Sección común
Atributos
|
Clave del atributo |
Descripción |
Tipo |
Valor de ejemplo |
Nivel de obligatoriedad |
|
|
Identificador de sesión |
string |
|
Obligatorio si está disponible |
|
|
Identificador del usuario final |
string |
|
Obligatorio si está disponible |
|
|
Tipo de operación [1] |
string |
|
Obligatorio |
|
|
Tipo de operación secundaria [2] |
string |
|
Obligatorio |
|
|
Tipo de framework utilizado |
string |
|
Obligatorio si está disponible |
[1] gen_ai.span.kind: se asigna a gen_ai.operation.name de la siguiente manera:
|
|
|
Descripción |
|
RETRIEVER |
|
Recuperación de documentos |
|
LLM |
|
Invocación del modelo |
|
EMBEDDING |
|
Embedding |
|
TOOL |
|
Llamada a herramienta |
|
AGENT |
|
Invocación de agente |
|
RERANKER |
- |
Invocación de reordenamiento |
|
CHAIN |
- |
Cadena (unidad de invocación) |
|
TASK |
- |
Invocación de tarea |
|
ENTRY |
- |
Marcador de invocación de entrada |
|
STEP |
- |
Marcador de ronda ReAct |
[2] gen_ai.operation.name: tipo de operación secundaria. Utilice uno de los siguientes valores enumerados o defina un valor personalizado:
|
Valor |
Descripción |
|
|
Operación de finalización de chat |
|
|
Operación de creación de agente GenAI |
|
|
Operación de embedding de palabras |
|
|
Operación de llamada a herramienta |
|
|
Operación de generación de contenido multimodal |
|
|
Operación de invocación de agente GenAI |
|
|
Operación de recuperación de documentos |
|
|
Operación de finalización de texto |
Recursos
Clave del recurso | Descripción | Tipo | Valor de ejemplo | Nivel de obligatoriedad |
| Nombre de la aplicación | string |
| Obligatorio |
| Espacio de trabajo de Cloud Monitor | string |
| Obligatorio si está disponible |
| Identificador del servicio de Cloud Monitor | string |
| Obligatorio si está disponible |
| Origen de la aplicación | string |
| Obligatorio si está disponible |
| Función de la aplicación | string |
| Obligatorio Nota
|
Chain
Una Chain es una herramienta que conecta LLM y otros componentes para ejecutar tareas complejas, como recuperación, embedding, invocaciones de LLM y cadenas anidadas.
Asigne al span el nombre chain {chain_name}. Si no es posible obtener chain_name, asígnele el nombre chain.
La comunidad de OpenTelemetry aún no ha definido una convención semántica para este tipo de span. Actualmente, los spans de Chain solo aplican al framework LangChain.
Atributos
|
Clave del atributo |
Descripción |
Tipo |
Ejemplo |
Nivel de obligatoriedad |
|
|
Tipo de operación [1] |
string |
|
Obligatorio |
|
|
Tipo de operación secundaria |
string |
|
Obligatorio si está disponible |
|
|
Contenido de entrada |
string |
|
Recomendado |
|
|
Contenido de respuesta |
string |
|
Recomendado |
|
|
Tiempo hasta el primer token [2] |
integer |
1000000 |
Recomendado |
[1] gen_ai.span.kind: enumeración dedicada para el spanKind de LLM. En una Chain, este valor debe ser CHAIN.
[2] gen_ai.user.time_to_first_token: tiempo transcurrido desde que el servidor recibe la solicitud del usuario hasta que regresa el primer paquete de respuesta. Unidad: nanosegundos.
Retriever
Un Retriever accede a almacenes de vectores o bases de datos para recuperar datos. Por lo general, complementa el contexto para mejorar la precisión y la eficiencia de las respuestas del LLM.
Establezca gen_ai.operation.name como retrieval. Cuando gen_ai.operation.name es retrieval, infiera gen_ai.span.kind como RETRIEVER.
Asigne al span el nombre {gen_ai.operation.name} {gen_ai.data_source.id}. En casos especiales, se admiten otros formatos de nomenclatura.
Atributos
|
Clave del atributo |
Descripción |
Tipo |
Ejemplo |
Nivel de obligatoriedad |
|
|
Tipo de operación [1] |
string |
|
Obligatorio |
|
|
Tipo de operación secundaria [2] |
string |
|
Obligatorio |
|
|
Identificador único del origen de datos [3] |
string |
|
Obligatorio si está disponible |
|
|
Proveedor del LLM |
string |
|
Obligatorio si está disponible |
|
|
Nombre del modelo especificado en la solicitud |
string |
|
Obligatorio si está disponible |
|
|
Valor Top-K especificado en la solicitud |
float |
|
Recomendado |
|
|
Lista de documentos recuperados [4] |
string |
|
Opcional |
|
|
Fragmento de texto de consulta |
string |
|
Opcional |
[1] gen_ai.span.kind: enumeración dedicada para el spanKind de LLM. En un Retriever, este valor debe ser RETRIEVER.
[2] gen_ai.operation.name: tipo de operación secundaria.
[3] gen_ai.data_source.id: identificador único del origen de datos. Se trata del origen de datos del que dependen los agentes de IA o las aplicaciones de RAG. Puede ser una base de datos externa, Object Storage Service, un conjunto de documentos, un sitio web u otro sistema de almacenamiento.
[4] gen_ai.retrieval.documents: registra la lista de documentos recuperados. Cada objeto de documento debe contener como mínimo estas propiedades: id (string): identificador único del documento. score (número de punto flotante de doble precisión): puntuación de relevancia.
Reranker
El Reranker evalúa la relevancia de varios documentos de entrada según la consulta, los ordena y puede devolver los K documentos principales como entrada para el LLM.
Asigne al span el nombre rerank {reranker.model_name}. Si no es posible obtener reranker.model_name, asígnele el nombre rerank.
La comunidad de OpenTelemetry aún no ha definido una convención semántica para este tipo de span.
Atributos
|
Clave del atributo |
Descripción |
Tipo |
Ejemplo |
Nivel de obligatoriedad |
|
|
Tipo de operación [1] |
string |
|
Obligatorio |
|
|
Parámetro de solicitud del Reranker |
string |
|
Opcional |
|
|
Nombre del modelo que utiliza el Reranker |
string |
|
Opcional |
|
|
Posición después del reordenamiento |
integer |
|
Opcional |
|
|
Metadatos de los documentos de entrada [2] |
string |
|
Obligatorio |
|
|
Metadatos de los documentos de salida [3] |
string |
|
Obligatorio |
[1] gen_ai.span.kind: enumeración dedicada para el spanKind de LLM. En un Reranker, este valor debe ser RERANKER.
[2] reranker.output_document: documentos de entrada para el reordenamiento. Estructura de arreglo JSON. Los metadatos contienen información básica del documento, como la ruta, el nombre del archivo y el origen.
[3] reranker.output_document: documentos de salida después del reordenamiento. Estructura de arreglo JSON. Los metadatos contienen información básica del documento, como la ruta, el nombre del archivo y el origen.
LLM
Un span de LLM representa una llamada o un proceso de inference de LLM. Algunos ejemplos incluyen el uso de un SDK o de openapi para invocar distintos LLM y generar inference o texto.
Establezca gen_ai.operation.name como chat, generate_content o text_completion. Cuando gen_ai.operation.name es chat, generate_content o text_completion, infiera gen_ai.span.kind como LLM.
Asigne al span el nombre {gen_ai.operation.name} {gen_ai.request.model}. En casos especiales, se admiten otros formatos de nomenclatura.
Atributos
|
Clave del atributo |
Descripción |
Tipo |
Ejemplo |
Nivel de obligatoriedad |
|
|
Tipo de operación [1] |
string |
|
Obligatorio |
|
|
Tipo de operación secundaria [2] |
string |
|
Obligatorio |
|
|
Proveedor del LLM |
string |
|
Obligatorio |
|
|
Identificador único de conversación [3] |
string |
|
Obligatorio si está disponible |
|
|
Tipo de salida especificado en la solicitud del LLM [4] |
string |
|
Obligatorio si está disponible |
|
|
Número de generaciones candidatas solicitadas en la solicitud del LLM |
int |
|
Obligatorio si no es 1 |
|
|
Nombre del modelo especificado en la solicitud del LLM |
string |
|
Obligatorio |
|
|
Semilla especificada en la solicitud del LLM |
string |
|
Obligatorio si está disponible |
|
|
Penalización de frecuencia establecida en la solicitud del LLM |
float |
|
Recomendado |
|
|
Cantidad máxima de tokens especificada en la solicitud del LLM |
integer |
|
Recomendado |
|
|
Penalización de presencia establecida en la solicitud del LLM |
float |
|
Recomendado |
|
|
Temperatura especificada en la solicitud del LLM |
float |
|
Recomendado |
|
|
Valor Top-P especificado en la solicitud del LLM |
float |
|
Recomendado |
|
|
Valor Top-K especificado en la solicitud del LLM |
float |
|
Recomendado |
|
|
Secuencias de detención para el LLM |
string[] |
|
Recomendado |
|
|
Identificador único generado por el LLM |
string |
|
Recomendado |
|
|
Nombre del modelo utilizado para la generación del LLM |
string |
|
Recomendado |
|
|
Motivo por el que el LLM dejó de generar |
string[] |
|
Recomendado |
|
|
Latencia del primer token del LLM en escenarios de respuesta en streaming [5] |
integer |
|
Recomendado |
|
|
Tiempo de inference para modelos de razonamiento [6] |
integer |
|
Recomendado |
|
|
Número de tokens de entrada utilizados |
integer |
|
Recomendado |
|
|
Número de tokens de salida utilizados |
integer |
|
Recomendado |
|
|
Número total de tokens utilizados |
integer |
|
Recomendado |
|
|
Número de tokens escritos en la caché del proveedor del modelo [7] |
integer |
|
Recomendado |
|
|
Número de tokens leídos de la caché del proveedor del modelo [8] |
integer |
|
Recomendado |
|
|
Contenido de entrada del modelo [9] |
string |
|
Opcional |
|
|
Contenido de salida del modelo [10] |
string |
|
Opcional |
|
|
Contenido del prompt del sistema [11] |
string |
|
Opcional |
|
|
Lista de definiciones de herramientas [12] |
string |
|
Opcional |
|
|
Latencia de prellenado del LLM. Unidad: nanosegundos |
integer |
|
Recomendado |
|
|
Latencia de decodificación del LLM. Unidad: nanosegundos |
integer |
|
Recomendado |
|
|
Tiempo de inference del LLM. Equivale a la suma del tiempo de prellenado y de decodificación. Unidad: nanosegundos |
integer |
|
Recomendado |
|
|
Datos multimodales incluidos en el contenido de entrada del LLM [13] |
string[] |
|
Recomendado |
|
|
Datos multimodales incluidos en el contenido de salida del LLM [14] |
string[] |
|
Recomendado |
[1] gen_ai.span.kind: enumeración dedicada para el spanKind de LLM. En un span de LLM, este valor debe ser LLM.
[2] gen_ai.operation.name: tipo de operación secundaria.
[3] gen_ai.conversation.id: identificador único de conversación. Recopílelo si puede obtenerlo fácilmente.
[4] gen_ai.output.type: recopílelo si la solicitud especifica un tipo de salida (como un formato de salida). Los valores deben corresponder a una de las siguientes enumeraciones o a un valor personalizado:
|
Valor |
Descripción |
|
|
Imagen |
|
|
Objeto JSON con formato correcto |
|
|
Voz |
|
|
Texto sin formato |
[5] gen_ai.user.time_to_first_token: tiempo transcurrido desde que el servidor recibe la solicitud del usuario hasta que regresa el primer paquete de respuesta. Unidad: nanosegundos.
[6] gen_ai.response.reasoning_time: duración del proceso de razonamiento. Unidad: milisegundos.
[7] gen_ai.usage.cache_creation.input_tokens: este valor ya debe estar incluido en gen_ai.usage.input_tokens.
[8] gen_ai.usage.cache_read.input_tokens: este valor ya debe estar incluido en gen_ai.usage.input_tokens.
[9] gen_ai.input.messages: registra el contenido de entrada de la llamada al LLM. Los mensajes deben proporcionarse en el orden en que se enviaron al modelo o al agente. Siga gen_ai.input.messages.json.
Recopílelos únicamente cuando la marca OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT esté habilitada. Esta marca está habilitada de forma predeterminada.
[10] gen_ai.output.messages: registra el contenido de salida del modelo. Los mensajes deben proporcionarse en el orden en que se enviaron al modelo o al agente. Siga gen_ai.output.messages.json.
Recopílelos únicamente cuando la marca OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT esté habilitada. Esta marca está habilitada de forma predeterminada.
[11] gen_ai.system_instructions: registra por separado el contenido del prompt o de las instrucciones del sistema. Utilice este campo si puede obtener dicho contenido de forma independiente. De lo contrario, regístrelo en el atributo gen_ai.input.messages. Siga gen_ai.system_instructions.json.
Recopílelo únicamente cuando la marca OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT esté habilitada. Esta marca está habilitada de forma predeterminada.
[12] gen_ai.tool.definitions: registra las definiciones de herramientas que se pasan al LLM. Este atributo puede ser muy extenso. De forma predeterminada, recopile solo los campos type y name. Recopile el resto de los campos únicamente cuando la marca OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT esté habilitada. Esta marca está habilitada de forma predeterminada.
[13] gen_ai.input.multimodal_metadata: agrega los datos multimodales a los que hace referencia el contenido de entrada del modelo. Incluye únicamente mensajes UriPart. Siga gen_ai.input.messages.json.
Recopílelos únicamente cuando la marca OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT esté habilitada. Esta marca está habilitada de forma predeterminada.
[14] gen_ai.output.multimodal_metadata: agrega los datos multimodales a los que hace referencia el contenido de salida del modelo. Incluye únicamente mensajes UriPart. Siga gen_ai.output.messages.json.
Recopílelos únicamente cuando la marca OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT esté habilitada. Esta marca está habilitada de forma predeterminada.
Registro de prompts, entradas y salidas
Puede omitir el registro de las entradas del usuario y las respuestas del modelo, registrarlas en los atributos del span o registrarlas como eventos (registros). Para más información, consulte Control LLM Application Conversation History Collection Behavior.
Embedding
Un embedding representa un proceso individual, como aplicar embedding a un texto con un LLM. Después, puede usar consultas de similitud para optimizar la resolución de problemas.
Establezca gen_ai.operation.name como embeddings. Cuando gen_ai.operation.name es embeddings, infiera gen_ai.span.kind como EMBEDDING.
Asigne al span el nombre {gen_ai.operation.name} {gen_ai.request.model}. En casos especiales, se admiten otros formatos de nomenclatura.
Atributos
|
Clave del atributo |
Descripción |
Tipo |
Ejemplo |
Nivel de obligatoriedad |
|
|
Tipo de operación [1] |
string |
|
Obligatorio |
|
|
Tipo de operación secundaria [2] |
string |
|
Obligatorio |
|
|
Proveedor del LLM |
string |
|
Obligatorio |
|
|
Nombre del modelo especificado en la solicitud |
string |
|
Obligatorio si está disponible |
|
|
Número de dimensiones esperadas para la operación de embedding |
integer |
|
Recomendado |
|
|
Formatos de codificación solicitados para la operación de embedding |
string[] |
|
Recomendado |
|
|
Cantidad de tokens consumidos por el texto de entrada |
integer |
|
Opcional |
|
|
Cantidad total de tokens consumidos por el embedding |
integer |
|
Opcional |
[1] gen_ai.span.kind: enumeración dedicada para el spanKind de LLM. En un span de Embedding, este valor debe ser EMBEDDING.
[2] gen_ai.operation.name: tipo de operación secundaria.
Tool
Los spans de Tool representan llamadas a herramientas externas. Algunos ejemplos son llamar a una calculadora o solicitar el clima más reciente a una API meteorológica.
Establezca gen_ai.operation.name como execute_tool. Cuando gen_ai.operation.name es execute_tool, infiera gen_ai.span.kind como TOOL.
Asigne al span el nombre {gen_ai.operation.name} {gen_ai.tool.name}. En casos especiales, se admiten otros formatos de nomenclatura.
Si la ejecución de una herramienta carga una skill, establezca los campos gen_ai.skill.* correspondientes. Entre los escenarios comunes se incluyen llamadas a herramientas como load_skill, read_skill u operaciones similares.
Atributos
|
Clave del atributo |
Descripción |
Tipo |
Ejemplo |
Nivel de obligatoriedad |
|
|
Tipo de operación [1] |
string |
|
Obligatorio |
|
|
Tipo de operación secundaria [2] |
string |
|
Obligatorio |
|
|
Identificador de la herramienta |
string |
|
Recomendado |
|
|
Descripción de la herramienta |
string |
|
Recomendado |
|
|
Nombre de la herramienta |
string |
Recomendado |
|
|
|
Tipo de herramienta |
string |
|
Recomendado |
|
|
Identificador único de la skill de GenAI. |
string |
|
Obligatorio al cargar una skill. |
|
|
Nombre de la skill de GenAI. |
string |
|
Obligatorio al cargar una skill. |
|
|
Descripción de formato libre de la skill de GenAI, proporcionada por la aplicación. |
string |
|
Recomendado |
|
|
Versión de la skill de GenAI. |
string |
|
Recomendado |
|
|
Parámetros de entrada de la llamada a la herramienta [2] |
string |
|
Opcional |
|
|
Valor devuelto por la llamada a la herramienta [3] |
string |
|
Opcional |
[1] gen_ai.span.kind: enumeración dedicada para el spanKind de LLM. En un span de Tool, este valor debe ser TOOL.
[2] gen_ai.tool.call.arguments: parámetros de entrada de la llamada a la herramienta, como una cadena JSON. Recopílelos únicamente cuando la marca OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT esté habilitada. Esta marca está habilitada de forma predeterminada.
[3] gen_ai.tool.call.result: valor devuelto por la llamada a la herramienta, como una cadena JSON. Recopílelo únicamente cuando la marca OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT esté habilitada. Esta marca está habilitada de forma predeterminada.
Agent
Un span de tipo Agent representa un escenario de agente inteligente, es decir, una cadena (Chain) más compleja. El agente utiliza los resultados de inference del LLM para decidir el siguiente paso. Este proceso puede implicar varias llamadas a LLM y Tool, las cuales avanzan paso a paso hasta obtener una respuesta final.
Establezca gen_ai.operation.name como invoke_agent o create_agent. Cuando gen_ai.operation.name es invoke_agent o create_agent, infiera gen_ai.span.kind como AGENT.
Asigne al span el nombre {gen_ai.operation.name} {gen_ai.agent.name}. En casos especiales se admiten otros formatos de nomenclatura.
Atributos
|
Clave del atributo |
Descripción |
Tipo |
Ejemplo |
Nivel de obligatoriedad |
|
|
Tipo de operación [1] |
string |
|
Obligatorio |
|
|
Tipo de operación secundario [2] |
string |
|
Obligatorio |
|
|
Identificador único de la conversación [3] |
string |
|
Obligatorio si está disponible |
|
|
Descripción del agente |
string |
|
Obligatorio si está disponible |
|
|
Identificador único del agente |
string |
|
Obligatorio si está disponible |
|
|
Nombre del agente |
string |
|
Obligatorio si está disponible |
|
|
Identificador único de la fuente de datos [4] |
string |
|
Obligatorio si está disponible |
|
|
Número de tokens de entrada utilizados |
integer |
|
Recomendado |
|
|
Número de tokens de salida utilizados |
integer |
|
Recomendado |
|
|
Número total de tokens utilizados |
integer |
|
Recomendado |
|
|
Número de tokens escritos en la caché del proveedor del modelo [5] |
integer |
|
Recomendado |
|
|
Número de tokens leídos de la caché del proveedor del modelo [6] |
integer |
|
Recomendado |
|
|
Contenido de entrada del modelo [7] |
string |
|
Opcional |
|
|
Contenido de salida del modelo [8] |
string |
|
Opcional |
|
|
Contenido del prompt del sistema [9] |
string |
|
Opcional |
|
|
Lista de definiciones de herramientas [10] |
string |
|
Opcional |
|
|
Latencia de respuesta del primer token del agente |
integer |
|
Recomendado |
[1] gen_ai.span.kind: Enumeración dedicada para el spanKind del LLM. En un span de tipo Agent, este valor debe ser AGENT.
[2] gen_ai.operation.name: Tipo de operación secundario.
[3] gen_ai.conversation.id: Identificador único de la conversación. Recopílelo si lo obtiene fácilmente.
[4] gen_ai.data_source.id: Identificador único de la fuente de datos. Se trata de la fuente de datos de la que dependen los agentes de IA o las aplicaciones RAG. Puede ser una base de datos externa, Object Storage Service, un conjunto de documentos, un sitio web u otro sistema de almacenamiento.
[5] gen_ai.usage.cache_creation.input_tokens: Este valor ya debe estar incluido en gen_ai.usage.input_tokens.
[6] gen_ai.usage.cache_read.input_tokens: Este valor ya debe estar incluido en gen_ai.usage.input_tokens.
[7] gen_ai.input.messages: Registra el contenido de entrada de la llamada al LLM. Los mensajes deben proporcionarse en el orden en que se enviaron al modelo o al agente. Siga gen_ai.input.messages.json.
Recopile esta información solo cuando la bandera OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT esté habilitada. Esta bandera está habilitada de forma predeterminada.
[8] gen_ai.output.messages: Registra el contenido de salida del modelo. Los mensajes deben proporcionarse en el orden en que se enviaron al modelo o al agente. Siga gen_ai.output.messages.json.
Recopile esta información solo cuando la bandera OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT esté habilitada. Esta bandera está habilitada de forma predeterminada.
[9] gen_ai.system_instructions: Registra por separado el contenido del prompt o de la instrucción del sistema. Utilice este campo si obtiene dicho contenido de manera independiente. De lo contrario, regístrelo en el atributo gen_ai.input.messages. Siga gen_ai.system_instructions.json.
Recopile esta información solo cuando la bandera OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT esté habilitada. Esta bandera está habilitada de forma predeterminada.
[10] gen_ai.tool.definitions: Registra las definiciones de herramientas que se pasan al LLM. Este atributo puede ser muy extenso. De forma predeterminada, recopile únicamente los campos type y name. Recopile el resto de los campos solo cuando la bandera OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT esté habilitada. Esta bandera está habilitada de forma predeterminada.
Task
Un span de tipo Task representa una llamada interna personalizada a un método. Por ejemplo, la invocación de una función local o de otra lógica definida por la aplicación.
Asigne al span el nombre run_task {gen_ai.task.name}. En casos especiales se admiten otros formatos de nomenclatura.
La comunidad de OpenTelemetry aún no ha definido una convención semántica para este tipo de span. Por lo tanto, gen_ai.operation.name podría cambiar.
Atributos
|
Clave del atributo |
Descripción |
Tipo |
Ejemplo |
Nivel de obligatoriedad |
|
|
Tipo de operación [1] |
string |
|
Obligatorio |
|
|
Tipo de operación secundario |
string |
|
Obligatorio |
|
|
Parámetros de entrada |
string |
|
Opcional |
|
|
Tipo MIME de entrada |
string |
|
Opcional |
|
|
Tipo MIME de salida |
string |
|
Opcional |
[1] gen_ai.span.kind: Enumeración dedicada para el spanKind del LLM. En un span de tipo Task, este valor debe ser TASK.
Entry
Un span de tipo Entry marca el punto de entrada de una llamada a un sistema de aplicación de IA.
Asigne al span el nombre enter_ai_application_system. En casos especiales se admiten otros formatos de nomenclatura.
La comunidad de OpenTelemetry aún no ha definido una convención semántica para este tipo de span. Por lo tanto, gen_ai.operation.name podría cambiar.
Atributos
|
Clave del atributo |
Descripción |
Tipo |
Ejemplo |
Nivel de obligatoriedad |
|
|
Tipo de operación [1] |
string |
|
Obligatorio |
|
|
Tipo de operación secundario |
string |
|
Recomendado |
|
|
Identificador de sesión |
string |
|
Obligatorio si está disponible |
|
|
Identificador del usuario final |
string |
|
Obligatorio si está disponible |
|
|
Contenido de entrada del modelo [2] |
string |
|
Opcional |
|
|
Contenido de salida del modelo [3] |
string |
|
Opcional |
|
|
Latencia de respuesta del primer token en escenarios de respuesta en streaming [4] |
integer |
|
Recomendado |
[1] gen_ai.span.kind: Enumeración dedicada para el spanKind del LLM. En un span de tipo Entry, este valor debe ser ENTRY.
[2] gen_ai.input.messages: Registra el contenido de entrada de la llamada al LLM. Los mensajes deben proporcionarse en el orden en que se enviaron al modelo o al agente. Siga gen_ai.input.messages.json.
Recopile esta información solo cuando la bandera OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT esté habilitada. Esta bandera está habilitada de forma predeterminada.
[3] gen_ai.output.messages: Registra el contenido de salida del modelo. Los mensajes deben proporcionarse en el orden en que se enviaron al modelo o al agente. Siga gen_ai.output.messages.json.
Recopile esta información solo cuando la bandera OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT esté habilitada. Esta bandera está habilitada de forma predeterminada.
[4] gen_ai.response.time_to_first_token: Tiempo transcurrido desde que el servidor recibe la solicitud del usuario hasta que devuelve el primer paquete de respuesta. Unidad: nanosegundos.
Paso de ReAct
Un span de tipo Step marca un proceso de iteración de razonamiento y acción (Reasoning-Acting) dentro de un agente.
Asigne al span el nombre react step. En casos especiales se admiten otros formatos de nomenclatura.
La comunidad de OpenTelemetry aún no ha definido una convención semántica para este tipo de span. Por lo tanto, gen_ai.operation.name podría cambiar.
Atributos
|
Clave del atributo |
Descripción |
Tipo |
Ejemplo |
Nivel de obligatoriedad |
|
|
Tipo de operación [1] |
string |
|
Obligatorio |
|
|
Tipo de operación secundario |
string |
|
Recomendado |
|
|
Motivo de finalización de esta ronda de ReAct |
string |
|
Recomendado |
|
|
Número de ronda de esta iteración de ReAct [2] |
integer |
|
Recomendado |
[1] gen_ai.span.kind: Enumeración dedicada para el spanKind del LLM. En un span de paso de ReAct, este valor debe ser STEP.
[2] gen_ai.react.round: Los números de ronda de ReAct deben comenzar en 1 e incrementarse en 1 con cada iteración.