Instalação
Baixe o wheel a partir das GitHub Releases usando seuAGENTEYE_TOKEN. Caso ainda não tenha um token, consulte Configuração do Token GitHub para ver os passos de configuração e as permissões necessárias.
Usando gh CLI + pip:
gh CLI + uv:
gh CLI):
Início Rápido
configure()
event.*. É seguro omitir; os padrões funcionam imediatamente. Todos os argumentos são apenas por palavra-chave; passe-os pelo nome conforme mostrado acima.
Quando base_dir é None (o padrão), o SDK lê $AGENTEYE_HOME se definido, caso contrário, usa ~/.agenteye. Isso corresponde à própria resolução do coletor, de modo que uma única variável de ambiente AGENTEYE_HOME configura o spool de eventos compartilhado tanto para o SDK quanto para o coletor — necessário para implantações em sidecar/single-pod onde ambos os processos precisam concordar com o caminho do spool.
Ambiente
Rotule cada evento com um ambiente de implantação (production, staging, qa, canary, etc.). Defina uma vez; o SDK o vincula a cada evento automaticamente.
Opção 1: via configure():
configure(environment=...) tem precedência sobre a variável de ambiente. Se nenhum dos dois for definido, o padrão é "dev".
O valor do ambiente aparece como um filtro de primeira classe no dashboard e é armazenado como uma coluna indexada no servidor para consultas rápidas.
Restrição: os valores de ambiente não devem conter uma vírgula , literal. Os filtros do dashboard usam multi-seleção separada por vírgulas na requisição (?environment=prod,staging), portanto, um ambiente chamado prod,blue seria dividido em dois valores. Eventos com ambientes contendo vírgulas são rejeitados no momento da ingestão.
Referência de Eventos
Todos os métodos de evento exigem estes dois campos:| Campo | Tipo | Descrição |
|---|---|---|
session_id | str | Identifica a execução de agente de nível superior |
agent_id | str | Identifica qual agente dentro da sessão emitiu o evento |
**kwargs arbitrários para metadados personalizados (consulte Campos Personalizados).
event.agent_start()
Emitido quando um agente começa a trabalhar.
event.agent_end()
Emitido quando um agente termina de trabalhar.
event.tool_use()
Emitido quando um agente invoca uma ferramenta. Combine com tool_result; o SDK calcula duration_ms automaticamente.
event.tool_result()
Emitido quando uma ferramenta retorna. Correlaciona-se com tool_use via tool_call_id.
event.model_request()
Emitido imediatamente antes de enviar um prompt para um LLM.
messages aceitam tanto um content em string simples quanto um content no estilo Anthropic de lista de blocos. Parâmetros de amostragem (temperature, max_tokens, etc.) podem ser passados como kwargs extras.
event.model_response()
Emitido quando o LLM retorna uma resposta.
content aceita tanto uma string simples (provedores genéricos) quanto uma lista de blocos de conteúdo no estilo Anthropic. Chamadas de ferramentas ficam dentro de content como blocos {"type": "tool_use", ...}, sem um campo tool_calls separado.
event.hook_triggered()
Emitido quando um hook dispara. Combine com hook_completed; o SDK calcula duration_ms automaticamente.
event.hook_completed()
Emitido quando um hook termina. Correlaciona-se com hook_triggered via hook_id.
event.error()
Emitido quando ocorre um erro não tratado.
Eventos de Human-in-the-Loop
Os eventos de human-in-the-loop oferecem supervisão sobre os momentos em que uma pessoa intervém na execução do agente (aguardando aprovação, fornecendo entrada, pausando ou interrompendo o agente). Eles permitem medir quanto tempo os humanos levam para responder (o SDK calculaduration_ms automaticamente nos eventos pareados), auditar quem pausou ou interrompeu um agente, e construir fluxos de trabalho de aprovação e supervisão que aparecem no dashboard.
event.human_wait()
Emitido quando o agente pausa a execução para aguardar que um humano forneça entrada. Combine com human_input; o SDK calcula duration_ms automaticamente (quanto tempo o humano levou para responder).
event.human_input()
Emitido quando um humano fornece entrada e o agente retoma a execução. Correlaciona-se com human_wait via input_id. duration_ms é calculado automaticamente e não deve ser passado pelo chamador.
event.human_pause()
Emitido quando um humano pausa ativamente o agente (por exemplo, via controle no dashboard). O agente é suspenso, mas não encerrado.
event.human_interrupt()
Emitido quando um humano para ativamente o agente no meio da execução. Diferente de human_pause, o trabalho do agente é encerrado em vez de suspenso.
Campos Personalizados
Quaisquer argumentos de palavra-chave extras são acrescentados ao evento após os campos padrão:timestamp, type e environment são reservados e lançam ValueError (Reserved field names cannot be used as custom fields: [...]) se passados como campos personalizados. session_id e agent_id são parâmetros obrigatórios em todos os métodos de evento e não podem ser fornecidos uma segunda vez; o Python lança TypeError se isso ocorrer. Defina o ambiente com configure(environment=...) (ou a variável AGENTEYE_ENVIRONMENT) em vez disso.
Como os Eventos São Gravados
Os eventos são armazenados em buffer no processo e descarregados em disco a cadaflush_interval segundos (padrão de 500 ms). Cada descarga grava um arquivo JSONL:

