jq. Essas receitas transformam os dados de observabilidade do AgentEye em algo que um usuário de terminal ou um agente de codificação de IA (Claude Code, Cursor) pode consultar e automatizar, sem precisar clicar pelo dashboard.
Os padrões abaixo estão prontos para copiar e colar com a CLI do AgentEye (agenteye). Para instalação, autenticação e a lista completa de opções, consulte CLI; execute agenteye -h ou agenteye <command> -h para obter a ajuda integrada.
Regras de ouro
- As opções globais vêm antes do comando.
agenteye --json sessionsestá correto;agenteye sessions --jsonnão está. As opções globais são--json,--base-url,--org,--token,--insecure/--secure,--timeout,--quiet,--no-color. - Use
--jsonsempre que for processar a saída. Os dados vão para o stdout como JSON; status e erros para humanos vão para o stderr, mantendo o stdout limpo para redirecionar aojq. - Tome decisões com base no código de saída, não no texto do stderr:
0ok ·2argumentos inválidos ·3não consegue alcançar o dashboard ·4não autenticado ou sessão expirada ·5permissão ausente. - Descubra com
-h. Cada comando documenta seus filtros, formatos de valor e estrutura JSON.
Configuração inicial
Confirme a autenticação antes de começar
whoami nunca retorna erro quando a sessão está ausente ou expirada; ele reporta logged_in:false, permitindo que um agente verifique o estado de autenticação com segurança. (Ainda pode sair com código não zero se nenhuma URL base estiver definida ou se o dashboard estiver inacessível.)
Encontre sessões com falhas ou pontuações baixas
evals, não em sessions. --score KEY:MIN..MAX pode ser repetido e é combinado com AND; qualquer um dos limites é opcional (..0.5 significa ≤ 0.5, 0.9.. significa ≥ 0.9). Você pode passar até 20 filtros de pontuação por requisição; mais do que isso retorna HTTP 400. sessions compartilha os filtros --env, --status, --agent-id, --session-id e de intervalo de tempo com evals, mas não possui --score.
Leia uma sessão completa
Não existe um único comandosession show — combine o histórico de eventos com a avaliação da sessão:
Busque tudo (paginação)
Os resultados são retornados do mais recente para o mais antigo e paginados por cursor.Reduza a saída com —fields
Restrinja as chaves (tanto na tabela quanto no--json) para diminuir o que um agente precisa processar.
2) com a lista de valores válidos — uma forma rápida de descobrir os nomes dos campos.
Descubra valores de filtro válidos
Escolha sua organização (multi-tenant)
Se você pertence a mais de uma organização, escolha o tenant ativo no momento do login (ele é salvo):--org sai com código não zero e exibe as organizações disponíveis para escolha.
Provisione uma chave de API para o SDK/coletor
Execute uma query salva ou ad-hoc
Trate um incidente de forma não interativa
Mutações ignoram automaticamente o prompt de confirmação quando--jsonestá ativo ou quando o stdin não é um TTY, então agentes nunca ficam travados; use--yes/-ypara ignorá-lo explicitamente em outros contextos.
Tratamento de códigos de saída em um script
Estruturas de saída JSON
| Comando | JSON no stdout (com --json) |
|---|---|
whoami | {"logged_in": true, "id", "email", "is_instance_admin", "active_org", "permissions": [...], "memberships": [...]} ou {"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 exibida uma única 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 (qualquer) | o objeto do recurso, ou {"deleted": true, "id"} para exclusões |
falha (qualquer, com --json) | {"error": "...", "exit_code": <n>, "status"?: <http>, "hint"?: "..."} no stdout |
- Cada item de evento (
events):id, session_id, agent_id, event_type, ts, payload, environment. - Cada item de avaliação (
evals):id, session_id, agent_id, environment, status, scores, reasoning, summary, error, attempt_count, duration_ms, completed_at, created_at. - Cada item de sessão (
sessions):session_id, agent_id, environment, status, scores, event_count, started_at, last_event_at, first_event_id, last_event_id, latest_evaluation.
--fields de cada comando aceita exatamente os nomes de campos do seu próprio item — o conjunto difere entre sessions e evals, portanto um nome válido para um pode ser rejeitado pelo outro.
