Saltar al contenido
guía de integración

Flujo de trabajo de CrewAI Telemetry

Observa las invocaciones síncronas de kickoff de CrewAI sin streaming ni guardar entradas o salidas. Consulta por separado las llamadas que retornaron, fallaron o se interrumpieron.

Revisado por el equipo de producto Telemetry en . Revisamos qué eventos enviar, qué datos excluir y cómo añadir el código. Quién revisa esta página

Útil para
  • Observabilidad del flujo de trabajo de múltiples agentes
  • Fiabilidad de las tareas de la tripulación
  • Traspaso y análisis de resultados
Evidencia de implementación

Envía y verifica eventos con CrewAI workflow telemetry

Utilice CrewAI workflow telemetry en un límite de aplicación controlado, mantenga el contrato de evento pequeño y verifique un resultado conocido antes de crear vistas agregadas.

  1. 1

    Elige el resultado

    Observabilidad del flujo de trabajo de múltiples agentes

  2. 2

    Definir el contrato

    run_id, crew_name y estado de la invocación

  3. 3

    Emitir en el resultado

    Pasa tu Crew existente y las entradas a run_research_crew. Este envoltorio solo admite kickoff síncrono; los métodos async, streams y checkpoints reanudados necesitan su propio manejo del ciclo de vida.

  4. 4

    Verificar la evidencia

    Exercise a known fixture, then inspect crew_invocation for one correctly typed terminal row.

Antes de empezar

Antes de empezar

  • Un Crew síncrono existente configurado con stream=False y entradas de la aplicación
  • Una TELEMETRY_API_KEY del lado del servidor; este ejemplo usa HTTP de la biblioteca estándar de Python en lugar del SDK de Telemetry
  • Una política de contenido que cubra entradas de tareas, salidas de agentes, memoria, conocimiento y cargas útiles de herramientas.

Configuración de entrega

Instalar e inicializar el lado del servidor

Este envoltorio de Crew síncrono envía eventos mediante HTTP de la biblioteca estándar de Python; no requiere instalar ni inicializar el SDK de Telemetry. Mantenga las credenciales de ingesta fuera de los paquetes de navegador, las variables de entorno visibles para el cliente, el control de fuente, los registros y los mensajes de excepción.

  1. 1Envuelve el Crew síncrono existente con run_research_crew y mantén stream=False.
  2. 2Agregue el evento de resultado en el límite de éxito, error, reintento o tiempo de espera.
  3. 3Envíe accesorios controlados e inspeccione las filas almacenadas antes de habilitar una alerta.

Fragmento

Comience con un evento estructurado

Agregue esta forma donde el flujo de trabajo se completa, falla o se vuelve a intentar. Luego cree el panel a partir de campos reales.

crewai

Evento CrewAI workflow telemetry

python
import json
import os
import sys
from time import perf_counter
from urllib.request import Request, urlopen
from uuid import uuid4


def emit_crew_invocation(event):
    try:
        key = os.environ.get("TELEMETRY_API_KEY")
        if not key:
            return
        request = Request(
            "https://api.telemetry.sh/log",
            data=json.dumps({"table": "crew_invocation", "data": event}).encode("utf-8"),
            headers={"Authorization": key, "Content-Type": "application/json",
                     "User-Agent": "telemetry-crew-example/1"},
            method="POST",
        )
        with urlopen(request, timeout=1) as response:
            if not 200 <= response.status < 300:
                raise RuntimeError("telemetry_delivery_unconfirmed")
    except Exception:
        try:
            print("Telemetry delivery unconfirmed", file=sys.stderr)
        except Exception:
            pass


def run_research_crew(research_crew, inputs):
    # Use an already configured, synchronous, non-streaming Crew.
    if getattr(research_crew, "stream", False):
        raise ValueError("This wrapper requires stream=False")
    run_id = str(uuid4())
    started_at = perf_counter()
    status, error_type = "interrupted", None
    try:
        result = research_crew.kickoff(inputs=inputs)
        status = "returned"
        return result
    except Exception as error:
        status = "failed"
        error_type = "timeout" if isinstance(error, TimeoutError) else "crew_error"
        raise
    finally:
        # Neither metadata creation nor export may replace the crew outcome.
        try:
            emit_crew_invocation({
                "run_id": run_id,
                "crew_name": "research_crew",
                "status": status,
                "error_type": error_type,
                "duration_ms": round((perf_counter() - started_at) * 1000),
                "release": os.environ.get("APP_RELEASE"),
            })
        except Exception:
            pass


# Pass your application's existing Crew and inputs:
# result = run_research_crew(research_crew, inputs)

Esquema del evento

run_id, crew_name y estado de la invocación

duration_ms, error_type limitado y release

Comprueba tu configuración

Punto de control 1

Pasa tu Crew existente y las entradas a run_research_crew. Este envoltorio solo admite kickoff síncrono; los métodos async, streams y checkpoints reanudados necesitan su propio manejo del ciclo de vida.

Punto de control 2

Que kickoff retorne no prueba la aceptación del trabajo ni su entrega posterior. Registra las decisiones de revisión por separado; este ejemplo no mide tareas, delegaciones, reintentos ni coste.

Punto de control 3

Excluye de estos eventos las entradas, salidas, memoria, conocimiento, datos de herramientas y texto de excepciones.

Punto de control 4

La exportación HTTP tiene un timeout de socket de un segundo, no un límite total estricto. Los fallos de exportación y diagnóstico preservan el resultado o excepción original; la entrega síncrona puede añadir latencia. No incluye cola duradera, reintentos ni drenaje al cerrar.

Punto de control 5

Utilice el seguimiento o las devoluciones de llamada propios de CrewAI cuando se requiera un diagnóstico a nivel de paso y correlacione con una ID de ejecución aprobada.

Verificación

Demuestra que el evento llegó

Ejecute esto después de ejercitar casos conocidos de éxito y fracaso. Reemplace el nombre de la tabla alternativa si su contrato de evento final difiere del fragmento.

Verificación crewai

Consulta de verificación CrewAI workflow telemetry

sql
SELECT *
FROM crew_invocation
ORDER BY timestamp_utc DESC
LIMIT 20;
Confirme una fila terminal por resultado lógico, con el estado esperado, identificadores, unidades y hora UTC.
Inspeccione el esquema inferido y verifique que los reintentos no cambien los tipos de campos ni generen un nuevo ID de evento lógico.
Busque en los campos almacenados credenciales, cargas útiles sin procesar, mensajes, contenido privado y mensajes de error ilimitados.
Realice un tiempo de espera del proveedor, un rechazo de la ingesta y un cierre del proceso antes de considerar el panel como completo.

Referencias de implementación

Revise el contrato del evento, la guía de seguridad de los datos y la documentación primaria previa antes de habilitar una nueva ruta de producción.

Dónde registrar eventos

Mantenga el evento de resultado pequeño y recuperable

Este patrón proporciona

  • Un resultado limitado y listo para SQL junto al flujo de trabajo ascendente.
  • Campos estables para paneles, alertas y correlación entre eventos.
  • Una ruta basada en dispositivos para validar el comportamiento de éxito, fracaso, reintento y tiempo de espera.

Este patrón no proporciona

  • Un exportador de OTLP, un canal de recopilación automática o un reemplazo para seguimientos detallados y registros de diagnóstico.
  • Entrega exactamente una vez simplemente porque la carga útil contiene un ID de evento.
  • Permiso para recopilar cargas útiles sin procesar del proveedor, contenido de usuario, credenciales o datos regulados.

Ejemplos de esquemas de eventos

Revise el detalle de la fila, el límite de emisión, los tipos requeridos, las clases de privacidad, la carga útil de ejemplo y la lista de verificación de validación antes de adaptar una consulta o fragmento a producción.

Función relacionada del producto

Continúe este flujo de trabajo en Monitoreo de agentes de IA

Conecte las ejecuciones de agentes, el uso de herramientas, el costo del modelo, la calidad y los resultados del producto con SQL revisable.

Recetas SQL relacionadas

Más ejemplos de SQL

Ejecute la consulta en los campos estructurados de este flujo de trabajo, inspeccione el resultado del ejemplo y convierta una respuesta útil en un panel o alerta.

Explorar todas las recetas

Explorar por familia de implementación

Comparar patrones de integración relacionados

Plantillas para combinar con esta integración

Más integraciones