Instalación
Descarga el wheel desde GitHub Releases usando tuAGENTEYE_TOKEN. Si aún no tienes un token, consulta Configuración del token de GitHub para ver los pasos de configuración y los permisos necesarios.
Usando gh CLI + pip:
gh CLI + uv:
gh CLI):
Inicio rápido
configure()
event.*. Es seguro omitirla; los valores por defecto funcionan sin configuración adicional. Todos los argumentos son solo por nombre (keyword-only); pásalos por nombre tal como se muestra arriba.
Cuando base_dir es None (el valor por defecto), el SDK lee $AGENTEYE_HOME si está definida; de lo contrario, recurre a ~/.agenteye. Esto coincide con la resolución propia del recolector, de modo que una única variable de entorno AGENTEYE_HOME configura el spool de eventos compartido tanto para el SDK como para el recolector, lo cual es necesario en despliegues sidecar o de pod único donde ambos procesos deben acordar la ruta del spool.
Entorno
Etiqueta cada evento con un entorno de despliegue (production, staging, qa, canary, etc.). Configúralo una sola vez; el SDK lo adjunta automáticamente a cada evento.
Opción 1: mediante configure():
configure(environment=...) tiene precedencia sobre la variable de entorno. Si ninguno está definido, el valor por defecto es "dev".
El valor del entorno aparece como filtro de primer nivel en el dashboard y se almacena como columna indexada en el servidor para consultas rápidas.
Restricción: los valores de entorno no deben contener una coma literal ,. Los filtros del dashboard utilizan selección múltiple separada por comas en la URL (?environment=prod,staging), por lo que un entorno llamado prod,blue se dividiría en dos valores. Los eventos con entornos que contienen comas son rechazados durante la ingesta.
Referencia de eventos
Todos los métodos de evento requieren estos dos campos:| Campo | Tipo | Descripción |
|---|---|---|
session_id | str | Identifica la ejecución principal del agente |
agent_id | str | Identifica qué agente dentro de la sesión emitió el evento |
**kwargs arbitrarios para metadatos personalizados (consulta Campos personalizados).
event.agent_start()
Se emite cuando un agente comienza a trabajar.
event.agent_end()
Se emite cuando un agente termina su trabajo.
event.tool_use()
Se emite cuando un agente invoca una herramienta. Empareja con tool_result; el SDK calcula automáticamente duration_ms.
event.tool_result()
Se emite cuando una herramienta devuelve un resultado. Se correlaciona con tool_use mediante tool_call_id.
event.model_request()
Se emite justo antes de enviar un prompt a un LLM.
messages aceptan tanto un content de cadena de texto simple como un content de lista de bloques al estilo Anthropic. Los parámetros de muestreo (temperature, max_tokens, etc.) pueden pasarse como kwargs adicionales.
event.model_response()
Se emite cuando el LLM devuelve una respuesta.
content acepta tanto una cadena de texto simple (proveedores genéricos) como una lista de bloques de contenido al estilo Anthropic. Las llamadas a herramientas viven dentro de content como bloques {"type": "tool_use", ...}, sin un campo tool_calls separado.
event.hook_triggered()
Se emite cuando se activa un hook. Empareja con hook_completed; el SDK calcula automáticamente duration_ms.
event.hook_completed()
Se emite cuando un hook finaliza. Se correlaciona con hook_triggered mediante hook_id.
event.error()
Se emite cuando ocurre un error no controlado.
Eventos de supervisión humana
Los eventos de supervisión humana te permiten controlar los momentos en que una persona interviene en la ejecución del agente (esperando aprobación, proporcionando información, pausando o deteniendo el agente). Te permiten medir cuánto tiempo tardan los humanos en responder (el SDK calcula automáticamenteduration_ms en los eventos emparejados), auditar quién pausó o interrumpió un agente, y construir flujos de trabajo de aprobación y supervisión que aparecen en el dashboard.
event.human_wait()
Se emite cuando el agente pausa su ejecución para esperar que un humano proporcione información. Empareja con human_input; el SDK calcula automáticamente duration_ms (el tiempo que tardó el humano en responder).
event.human_input()
Se emite cuando un humano proporciona información y el agente se reanuda. Se correlaciona con human_wait mediante input_id. duration_ms se calcula automáticamente y no debe ser pasado por el llamante.
event.human_pause()
Se emite cuando un humano pausa activamente el agente (p. ej., mediante un control del dashboard). El agente queda suspendido pero no finalizado.
event.human_interrupt()
Se emite cuando un humano detiene activamente el agente durante su ejecución. A diferencia de human_pause, el trabajo del agente se termina en lugar de suspenderse.
Campos personalizados
Cualquier argumento de palabra clave adicional se añade al evento después de los campos estándar:timestamp, type y environment son campos reservados y generan un ValueError (Reserved field names cannot be used as custom fields: [...]) si se pasan como campos personalizados. session_id y agent_id son parámetros obligatorios en cada método de evento y no pueden suministrarse una segunda vez; Python genera un TypeError si lo haces. Define el entorno con configure(environment=...) (o la variable AGENTEYE_ENVIRONMENT) en su lugar.
Cómo se escriben los eventos
Los eventos se almacenan en memoria y se vuelcan al disco cadaflush_interval segundos (500 ms por defecto). Cada volcado escribe un archivo JSONL:

