Proyectos / Agent Trace Observability

Agent Trace Observability

Instrumentación con OpenTelemetry para un flujo local propio de agentes, con exportaciones limitadas a campos permitidos y pruebas de exclusión de contenido sensible.

Autor: · Python 3.11.13 y OpenTelemetry SDK 1.39.1 · Licencia: MIT

Ficha publicada: · Ficha actualizada:

Repositorio · Evidencia original · Release v0.1.0

Problema y utilidad para agentes

Las trazas de agentes pueden filtrar prompts, credenciales y documentos a través de atributos, eventos, excepciones y descripciones de estado. Eliminar únicamente el campo del prompt no alcanza.

Un contrato de exportación restringido conserva las relaciones operativas y excluye el contenido arbitrario antes de que llegue al destino local.

Arquitectura

  1. Instrumentar un flujo propio. La recuperación por coincidencia de tokens, un clasificador bayesiano ingenuo entrenado y una herramienta de catálogo emiten spans reales de OpenTelemetry.
  2. Seleccionar los campos aprobados. Los nuevos registros conservan nombres fijos de componentes, versiones, latencia, categorías de error e identificadores de correlación. Se excluyen el contenido arbitrario y el texto de las excepciones.
  3. Limitar exportaciones y fallos. Un exportador JSONL síncrono dedicado aplica límites acumulados de bytes y registros durante su vida útil y se detiene definitivamente ante un fallo del destino, sin reintentos.

Qué demuestra

  • Relaciones padre-hijo en tareas asíncronas, aislamiento de contextos concurrentes y transferencia explícita de contexto W3C entre hilos.
  • Pruebas de atributos, eventos, excepciones, contenido anidado y errores del destino.
  • Vinculación de versiones, causas de fallo y latencias en 400 ejecuciones locales reales.

Resultados publicados

Una ejecución breve en CPU Xeon procesó 400 solicitudes con una concurrencia de cuatro y OpenTelemetry SDK 1.39.1.

La ejecución alterna de manera uniforme entre éxito, fallo de recuperación, fallo del modelo y vencimiento del tiempo de la herramienta. Los fallos son inyectados; la ejecución y los tiempos son reales. La latencia incluye la exportación síncrona, pero excluye la espera por el semáforo de solicitudes.

Evidencia de trazas locales

Evidencia original
MediciónResultado observado
Solicitudes / concurrencia400 / 4
Éxitos100
Fallos inyectados de recuperación / modelo / herramienta100 / 100 / 100
Spans exportados1,300
Spans descartados / fallos de exportación0 / 0
Bytes exportados463,011
Mediana / máximo de latencia por solicitud1.388 / 4.380 ms
Costo / energíaNo medido / no medida

La ejecución demuestra la vinculación de trazas y la atribución de fallos en este flujo propio. No mide el costo adicional del trazado, la capacidad de procesamiento en producción, la calidad de un LLM ni la interoperabilidad con recolectores remotos.

Reproducir

Python 3.11 y OpenTelemetry SDK fijado en 1.39.1. La instalación accede a PyPI; la evaluación no necesita credenciales, descarga de pesos de modelos ni servicios externos.

Ejecutá las mediciones en una carpeta de salida nueva y los trabajos pesados de a uno. Dentro de la serie original de proyectos, usá el ejecutor compartido benchmark_lock.py. Los comandos siguientes usan sintaxis de shell POSIX.

Verificar la evidencia guardada

git clone https://github.com/lucioduran/agent-trace-observability.git
cd agent-trace-observability
git checkout b5d9d3465507d050a82839b7655cc6a0bb67f345
python -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements-dev.txt
python -m agent_trace verify --output results/local

Repetir el experimento local

OMP_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 MKL_NUM_THREADS=1 python -m agent_trace run --output build/new-run --runs 400 --concurrency 4
python -m agent_trace verify --output build/new-run

Alcance y límites

  • El límite de exportación no protege la memoria del proceso, los registros de la aplicación, otros exportadores ni el código malicioso de la aplicación.
  • Los identificadores de traza son pistas de correlación, no una identidad autenticada. Omitir el contenido reduce deliberadamente las posibilidades de depurarlo.
  • Un destino lento puede bloquear la ejecución; no se proporciona un tiempo máximo estricto de entrada y salida, garantía de entrega remota, reintentos, rotación ni durabilidad en disco. Las escrituras parciales pueden dejar incompleta la última línea.
  • Solo se evaluaron un clasificador local y un destino JSONL. No se midieron costo ni energía; no hubo revisión humana ni de seguridad independiente.

Fuentes y revisión

La release incluye el informe y las trazas originales con hashes de los casos de prueba y las trazas, además de versiones del entorno de ejecución. El informe no registra un commit ni una fecha de ejecución; la revisión y la fecha de la release identifican la publicación, no el momento de la medición.