Todos los productos
Search
Centro de documentos

Simple Log Service:Recopilación de registros de observability de agentes de IA (AgentSight)

Última actualización: Oct 10, 2026

El plugin input_agentsight de LoongCollector recopila los registros de observability de las interacciones entre los agentes de IA y los modelos de lenguaje grandes (LLM). Este plugin utiliza eBPF para observar los procesos del agente a nivel de sistema sin modificar el código. De esta manera, captura solicitudes, respuestas, uso de tokens, definiciones de herramientas y otros datos que se intercambian entre los agentes y los LLM. Entre los proveedores de LLM compatibles se encuentran OpenAI, Anthropic y DashScope. En este tema se describe cómo crear una configuración de recopilación de LoongCollector en la consola de Simple Log Service para recopilar registros de AgentSight.

Requisitos previos

  • La versión del kernel del sistema operativo del servidor debe ser Linux 5.10 o posterior.

    El plugin depende de eBPF para la observación a nivel de sistema. Los kernels anteriores a la versión 5.10 no admiten las funciones de eBPF necesarias y no pueden ejecutar la recopilación.

    Los entornos compatibles verificados son a continuación:

    • Alibaba Cloud Linux 3

    • Ubuntu 22.04

    • Ubuntu 24.04

    Ejecute el siguiente comando para comprobar la versión actual de su kernel:

    uname -r
  • LoongCollector v3.3.9 o posterior está instalado en el servidor.

    La capacidad de recopilación de AgentSight requiere una versión reciente de LoongCollector. Actualice a la última versión antes de configurar este plugin.

  • El agente de IA de destino (como OpenClaw o Hermes) está desplegado y ejecutándose en el servidor.

  • Entorno de contenedores de ACK: Para recopilar registros de LLM desde pods de agentes en un clúster de Container Service for Kubernetes (ACK), compruebe que se cumplen a continuación requisitos:

    • LoongCollector está actualizado a la versión v3.3.10 o posterior.

    • El interruptor enableEBPF está habilitado en la página Component Management de la consola de ACK.

    Una vez cumplidos estos requisitos, cree una configuración de recopilación de Logtail de AgentSight en Simple Log Service para recopilar los registros de LLM del agente. Esta configuración se aplica al mismo grupo de máquinas que las demás configuraciones de LoongCollector.

Funcionamiento

La instrumentación tradicional de aplicaciones no puede seguir el ritmo de la rápida iteración ni la naturaleza altamente personalizada de los agentes de IA. Tampoco permite rastrear las cadenas de llamadas a herramientas para identificar el comportamiento real del agente. El plugin input_agentsight adjunta sondas SSL/TLS y observadores de procesos a nivel de kernel mediante eBPF. Así, captura las solicitudes y respuestas cifradas con TLS entre los procesos del agente y los servicios de LLM. Esto logra una observability de extremo a extremo sin modificar el código del agente.

Funciones

  • Recopila datos completos de interacción entre los agentes de IA y los LLM: mensajes de solicitud, mensajes de respuesta, nombre del modelo, uso de tokens, latencia, códigos de estado, entre otros.

  • Identifica los procesos que acceden a las API de LLM mediante una lista blanca de dominios que incluye de forma predeterminada los dominios comunes de API de LLM.

Proveedores de LLM compatibles

Proveedor/Protocolo

Compatible

OpenAI

Sí

Anthropic

Sí

DashScope

Sí

Para los protocolos de carga útil compatibles, el plugin genera campos estándar de OTel GenAI (como gen_ai.*). En el caso de los protocolos que aún no se han adaptado, el plugin reporta la carga útil sin procesar y anonimizada para su adaptación en el lado del servidor.

Ejemplos de agentes de IA compatibles

Categoría

Ejemplos

Agentes comunes

Claude Code, OpenClaw, QwenPaw, Hermes

Frameworks de LLM comunes

LangChain, LangGraph, Dify, AgentScope

Agentes personalizados

Agentes personalizados basados en Python, agentes personalizados basados en Node.js

Procedimiento

  1. Inicie sesión en la consola de Simple Log Service.

  2. En la sección Data Import, seleccione la entrada de configuración de recopilación de LoongCollector y luego elija el Project y el logstore de destino.

  3. En la página Machine Group Configuration, configure y aplique el grupo de máquinas de destino.

    Importante

    Si aplica el grupo de máquinas inmediatamente después de crearlo, es posible que el estado del heartbeat se muestre como FAIL porque la conexión aún no ha surtido efecto. Haga clic en Automatic Retry para resolver este problema.

  4. En la pestaña Data Source Settings, especifique un Configuration Name e introduzca la configuración del plugin. El tipo de plugin es fijo: input_agentsight.

    Elija un patrón de configuración según su escenario:

    • Utilice la configuración mínima cuando su agente y proveedor de LLM estén cubiertos por los valores predeterminados integrados.

    • Aplique la lista blanca de dominios personalizada cuando su agente se conecte a un endpoint de LLM distinto al predeterminado.

    • Recurra a la lista blanca de líneas de comandos personalizada cuando las reglas integradas no coincidan con el proceso de su agente.

    • Opte por el reporte de tráfico HTTP sin procesar cuando necesite inspeccionar tráfico que AgentSight no pueda analizar sintácticamente con semántica GenAI.

    Configuración mínima

    Configuración mínima: Especifique únicamente el tipo de plugin. Todos los ajustes usan valores predeterminados (se inyectan la lista blanca de líneas de comandos y la lista de dominios predeterminadas integradas).

    {
        "inputs": [
            {
                "type": "input_agentsight"
            }
        ]
    }

    Lista blanca de dominios personalizada: Especifique los dominios HTTPS personalizados que desea supervisar.

    {
        "inputs": [
            {
                "detail": {
                    "ProbeConfig": {
                        "Https": [
                            "api.openai.com",
                            "api.anthropic.com",
                            "dashscope-intl.aliyuncs.com",
                            "dashscope.aliyuncs.com"
                        ]
                    }
                },
                "type": "input_agentsight"
            }
        ]
    }

    Lista blanca de líneas de comandos personalizada: Filtre los agentes de destino por la línea de comandos del proceso y etiquete su tipo.

    {
        "inputs": [
            {
                "detail": {
                    "ProbeConfig": {
                        "CmdlineWhitelist": [
                            {
                                "AgentType": "openclaw",
                                "Args": ["node*", "*openclaw*"]
                            },
                            {
                                "AgentType": "claude-code",
                                "Args": ["node*", "*claude*"]
                            }
                        ]
                    }
                },
                "type": "input_agentsight"
            }
        ]
    }

    Reportar protocolos desconocidos como tráfico HTTP sin procesar: Cuando se habilita ProbeConfig.RawHttpsFallback, el tráfico que AgentSight no puede analizar sintácticamente con semántica GenAI (rutas de API desconocidas o cuerpos no estándar) ya no se descarta. En su lugar, se reporta como tráfico HTTP sin procesar. Cree un índice de campo para los eventos HTTP sin procesar y luego use la función de consulta y análisis del logstore para inspeccionarlos.

    {
        "inputs": [
            {
                "detail": {
                    "ProbeConfig": {
                        "RawHttpsFallback": true
                    }
                },
                "type": "input_agentsight"
            }
        ]
    }
    Nota

    Tenga en cuenta el siguiente comportamiento:

    • Los registros HTTP sin procesar generados por RawHttpsFallback: true se producen solo cuando AgentSight no puede resolver el tráfico con semántica GenAI. Son mutuamente excluyentes con los registros gen_ai.*: una sola solicitud produce como máximo uno de los dos tipos.

    • El tráfico HTTP sin procesar se reporta con los nombres de evento event.name=http.request y event.name=http.response.

    • Esta función solo es compatible con LoongCollector v3.3.10 y versiones posteriores.

  5. Cree índices y obtenga una vista previa de los datos. Puede crear manualmente índices de campo basados en los campos recopilados o hacer clic en Auto Generate Index.

  6. Una vez completada la configuración, espere aproximadamente 1 minuto para que el índice surta efecto. Después podrá consultar los registros recopilados en la página de consulta y análisis del logstore.

    Debería ver entradas de registro que contienen campos como gen_ai.agent.type, gen_ai.model.request y gen_ai.model.response. La presencia de estos campos confirma que la recopilación funciona correctamente.

Parámetros de configuración

Parámetro

Tipo

Obligatorio

Valor predeterminado

Descripción

Type

string

Sí

N/A

Tipo de plugin. Valor fijo: input_agentsight.

ProbeConfig

object

No

N/A

Configuración de la sonda de AgentSight. Si no se configura, todos los subparámetros usan valores predeterminados.

ProbeConfig.Verbose

uint

No

0

Indica si se imprimen registros detallados de eBPF. 1: habilitado. 0: deshabilitado.

ProbeConfig.LogPath

string

No

""

Ruta de salida para los registros de eBPF.

ProbeConfig.CmdlineWhitelist

array

No

9 reglas integradas

Lista blanca de filtros de procesos de agentes. Cada entrada es un objeto con AgentType (que se escribe en el campo de registro gen_ai.agent.type) y Args (una matriz de cadenas que realiza coincidencias glob en cada segmento de la línea de comandos del proceso por posición). Cuando no se configuran este parámetro ni CmdlineBlacklist, se inyecta la lista blanca predeterminada integrada. Una vez configurado, solo se usan las reglas definidas por el usuario y no se agregan los valores predeterminados integrados. Una matriz vacía [] se considera una configuración no válida.

ProbeConfig.CmdlineBlacklist

array

No

N/A

Lista negra de filtros de procesos de agentes. Cada entrada es una matriz de cadenas glob (sin AgentType). Los procesos coincidentes se excluyen de la recopilación. Tiene prioridad sobre la lista blanca.

ProbeConfig.Https

array

No

7 reglas integradas

Lista blanca de dominios para tráfico cifrado HTTPS (matriz de cadenas, comodín glob *, no distingue mayúsculas de minúsculas). Los procesos que acceden a los dominios de esta lista se identifican como destinos de recopilación. Si no se configura, se inyecta la lista predeterminada integrada.

ProbeConfig.Http

array

No

[] (deshabilitado)

Lista de destinos de tráfico HTTP en texto plano. Cada entrada puede ser :port, IP, IP:port o un dominio. Si se deja vacío, no se recopila tráfico HTTP en texto plano.

ProbeConfig.RawHttpsFallback

bool

No

false

Cuando se establece en true, el tráfico que no se puede analizar sintácticamente con semántica de LLM (rutas de API desconocidas o cuerpos no estándar) ya no se descarta. En su lugar, se reporta como tráfico HTTP sin procesar con los nombres de evento event.name=http.request y event.name=http.response. Estos registros HTTP sin procesar se generan solo cuando AgentSight no puede resolver el tráfico con semántica GenAI. Son mutuamente excluyentes con los registros gen_ai.*: una sola solicitud produce como máximo uno de los dos tipos. Solo es compatible con LoongCollector v3.3.9 y versiones posteriores.

ProbeConfig.EventStreamFormat

bool

No

true

Cuando es true, cada llamada al LLM genera dos registros en el mismo grupo de registros: gen_ai.model.request (solicitud) y gen_ai.model.response (respuesta), cada uno con un event.id. Cuando es false, se genera un único registro combinado sin event.name ni event.id.

ProbeConfig.MessageDeltaOnly

bool

No

true

Cuando es true, no se genera el campo completo gen_ai.input.messages. Solo se genera el campo incremental gen_ai.input.messages_delta, junto con el texto completo de system/tools cuando cambia el hash. Cuando es false, se genera el campo completo y no vacío gen_ai.input.messages en cada ocasión. No afecta a gen_ai.output.messages.

Lógica de determinación del alcance de recopilación

El tráfico cifrado HTTPS (a nivel de proceso) se determina en el siguiente orden fijo:

  1. Coincide con CmdlineBlacklist → no se recopila (la lista negra tiene prioridad).

  2. No coincide con la lista negra, pero sí con CmdlineWhitelist → se recopila.

  3. Aún no está incluido y el proceso accede a un dominio que coincide con Https → se recopila.

  4. Ninguna de las condiciones anteriores coincide → no se recopila.

Reglas de inyección predeterminadas: Cuando no se configuran ni CmdlineWhitelist ni CmdlineBlacklist, se inyectan a continuación 9 reglas predeterminadas integradas de lista blanca de líneas de comandos. Cuando Https está vacío, se inyectan a continuación 7 entradas de dominio predeterminadas integradas.

Reglas predeterminadas integradas de lista blanca de líneas de comandos

AgentType

Args (patrón glob para cada segmento de la línea de comandos)

hermes

hermes*

hermes

*python*, *hermes*

hermes

*python*, -m, *hermes*

cosh

node*, */usr/bin/co*

cosh

node*, */usr/bin/cosh*

cosh

node*, */usr/bin/copliot*

cosh

node*, *copilot-shell*

openclaw

*openclaw-gatewa*

openclaw

node*, *openclaw*

Entradas predeterminadas integradas de lista blanca de dominios

Dominio

Descripción

api.openai.com

OpenAI

api.anthropic.com

Anthropic

dashscope.aliyuncs.com

DashScope pay-as-you-go, China (Beijing)

dashscope-intl.aliyuncs.com

DashScope pay-as-you-go, Singapore

dashscope-us.aliyuncs.com

DashScope pay-as-you-go, US (Virginia)

coding.dashscope.aliyuncs.com

Plan Coding de DashScope

*.maas.aliyuncs.com

Dominios de espacio de trabajo dedicado/prueba/plan de tokens de DashScope

Importante

Sustitución, no adición: Las configuraciones definidas por el usuario sustituyen por completo los valores predeterminados integrados en lugar de agregarlos. Una vez que especifica cualquier regla, toda la lista predeterminada integrada queda inactiva. Para conservar las entradas predeterminadas integradas, debe incluirlas explícitamente en su configuración (agregarlas manualmente). De lo contrario, los tipos de agente o dominios predeterminados que no aparezcan en su configuración dejarán de recopilarse. Use solo letras minúsculas, dígitos y guiones (-) para los valores de AgentType (como openclaw o claude-code) para facilitar la agregación y el análisis entre productos.

Límites y solución de problemas

  • No hay datos en la página de vista previa o de consulta: Compruebe que la versión del kernel del servidor sea 5.10 o posterior (uname -r) y que LoongCollector esté actualizado a la versión v3.3.9 o posterior. Luego, verifique que la línea de comandos del proceso de destino coincida con una regla de CmdlineWhitelist o que los dominios a los que accede estén en la lista Https. Ejecute el siguiente comando en el servidor para ver la línea de comandos real de un proceso antes de escribir las reglas glob:

    tr '\0' ' ' < /proc/<PID>/cmdline; echo

    Consulte Technical appendix para conocer los límites de compatibilidad de los hook de eBPF que podrían impedir la recopilación en ciertos binarios de agentes.

  • Para obtener más instrucciones sobre la solución de problemas, consulte Troubleshoot Logtail log collection failures.

  • Esta función se encuentra actualmente en versión canary y está disponible en a continuación regiones: US (Virginia), US (Silicon Valley), Malaysia (Kuala Lumpur), Indonesia (Jakarta), South Korea (Seoul), entre otras.

Apéndice técnico

El plugin input_agentsight usa eBPF para la recopilación. Su capacidad para capturar tráfico cifrado HTTPS de un agente determinado depende de si eBPF puede localizar las funciones de envío y recepción SSL en el archivo ejecutable del agente. Use la siguiente tabla para determinar la compatibilidad:

Escenario

Compatible

Método de localización

Descripción

Agentes que se ejecutan mediante Node.js o Python, o agentes que conservan la tabla de símbolos

Sí

Basado en símbolos

Estos programas envían y reciben datos a través de bibliotecas SSL comunes (principalmente OpenSSL) con símbolos exportados. eBPF localiza funciones como SSL_read y SSL_write mediante los símbolos. Ejemplos: OpenClaw, Hermes, Cosh y Claude Code.

Sin tabla de símbolos (eliminada), pero vinculado estáticamente a bibliotecas SSL de C comunes (OpenSSL)

Parcial

Coincidencia de patrones de código de bytes

Sin una tabla de símbolos, la localización basada en símbolos no es posible. Sin embargo, cuando la biblioteca subyacente es una biblioteca de C común como OpenSSL, eBPF aún puede localizar las funciones de envío y recepción mediante la coincidencia de patrones de código de bytes. Ejemplo: herramientas de Python empaquetadas con uv que vinculan OpenSSL de forma estática y tienen los símbolos eliminados.

Sin tabla de símbolos (eliminada), vinculado estáticamente sin símbolos exportados y sin posibilidad de coincidir con patrones de código de bytes

No

No se puede localizar

Ni la tabla de símbolos ni los patrones de código de bytes permiten localizar las funciones de envío y recepción, por lo que no se puede establecer ningún punto de hook. Ejemplo: la versión oficial de CLI de Codex (con símbolos eliminados, vinculada estáticamente y sin símbolos exportados) entra en esta categoría y este plugin no puede recopilar sus datos.