Saltar al contenido principal
Obtén datos de sesiones, eventos y evaluaciones (y activa re-evaluaciones) directamente desde un script o agente de código, con JSON limpio en stdout que se puede canalizar directamente a jq. Estas recetas convierten los datos de observabilidad de AgentEye en algo que un usuario de terminal o un agente de código IA (Claude Code, Cursor) puede consultar y automatizar, sin necesidad de navegar por el panel de control. Los patrones a continuación están listos para copiar y pegar en el CLI de AgentEye (agenteye). Para la instalación, autenticación y la lista completa de opciones, consulta CLI; ejecuta agenteye -h o agenteye <command> -h para la ayuda integrada.

Reglas de oro

  1. Las opciones globales van antes del comando. agenteye --json sessions es correcto; agenteye sessions --json no lo es. Las globales son --json, --base-url, --org, --token, --insecure/--secure, --timeout, --quiet, --no-color.
  2. Usa --json siempre que vayas a procesar la salida. Los datos van a stdout como JSON; los mensajes de estado y errores van a stderr, por lo que stdout permanece limpio para canalizarlo a jq.
  3. Ramifica según el código de salida, no según el texto de stderr: 0 correcto · 2 argumentos inválidos · 3 no se puede alcanzar el panel · 4 no autenticado o sesión expirada · 5 permiso insuficiente.
  4. Explora con -h. Cada comando documenta sus filtros, formatos de valor y estructura JSON.

Configuración inicial

Verifica la autenticación antes de trabajar

whoami nunca falla por una sesión ausente o expirada; en su lugar reporta logged_in:false, por lo que un agente puede comprobar el estado de autenticación de forma segura. (Puede seguir saliendo con error si no hay URL base configurada o el panel no es accesible.)

Encontrar sesiones con fallos o puntuaciones bajas

El filtrado por puntuación está en evals, no en sessions. --score KEY:MIN..MAX es repetible y se combina con AND; cualquiera de los límites es opcional (..0.5 significa ≤ 0.5, 0.9.. significa ≥ 0.9). Puedes pasar hasta 20 filtros de puntuación por solicitud; más devuelve HTTP 400. sessions comparte los filtros --env, --status, --agent-id, --session-id y de rango temporal con evals, pero no tiene --score.

Leer una sesión de principio a fin

No existe un único comando session show — combina el rastro de eventos con la evaluación de la sesión:

Obtener todo (paginación)

Los resultados están ordenados del más reciente al más antiguo y se paginan con cursor.

Reducir la salida con —fields

Restringe las claves (tanto en la tabla como en --json) para reducir lo que un agente debe leer.
Los nombres de campo desconocidos son rechazados (salida 2) con la lista válida, una forma sencilla de descubrir los nombres de campo.

Descubrir valores válidos para filtros

Seleccionar tu organización (multitenant)

Si perteneces a más de una organización, elige el tenant activo al iniciar sesión (se guarda):
Un inicio de sesión con múltiples organizaciones sin --org sale con error no cero e imprime las organizaciones disponibles para elegir.

Aprovisionar una clave API para el SDK/colector

Ejecutar una consulta guardada o ad hoc

Gestionar un incidente de forma no interactiva

Las mutaciones omiten automáticamente su confirmación cuando se usa --json o cuando stdin no es un TTY, por lo que los agentes nunca quedan bloqueados; usa --yes/-y para omitirla explícitamente en otros casos.

Manejo de códigos de salida en un script

Estructuras de salida JSON

ComandoJSON en stdout (con --json)
whoami{"logged_in": true, "id", "email", "is_instance_admin", "active_org", "permissions": [...], "memberships": [...]} o {"logged_in": false}
orgs list{"active_org", "orgs": [{"org_slug","org_name","permission_set","permissions"}]}
events{"events": [...], "next_cursor": <cursor or null>}
evals{"evaluations": [...], "next_cursor": <cursor or null>}
sessions{"sessions": [...], "next_cursor": <cursor or null>}
errors{"errors": [...], "next_cursor": <cursor or null>}
list <kind>{"kind", "values": [...]}
keys list / keys create{"keys": [...]} / {id, name, permissions, created_at, key} (key se muestra una sola vez)
query run{columns: [{name,type}], rows: [[...]], truncated, elapsed_ms}
users list / settings list{"users": [...]} / {"settings": [...]}
alerts list / incidents list{"alerts": [...]} / {"incidents": [...]}
create/update/delete (cualquiera)el objeto del recurso, o {"deleted": true, "id"} para eliminaciones
error (cualquiera, con --json){"error": "...", "exit_code": <n>, "status"?: <http>, "hint"?: "..."} en stdout
  • Cada elemento de evento (events): id, session_id, agent_id, event_type, ts, payload, environment.
  • Cada elemento de evaluación (evals): id, session_id, agent_id, environment, status, scores, reasoning, summary, error, attempt_count, duration_ms, completed_at, created_at.
  • Cada elemento de sesión (sessions): session_id, agent_id, environment, status, scores, event_count, started_at, last_event_at, first_event_id, last_event_id, latest_evaluation.
El --fields de cada comando acepta exactamente los nombres de campo de su propio elemento — el conjunto difiere entre sessions y evals, por lo que un nombre válido para uno puede ser rechazado por el otro.