EN·ES·DE·PT·FR
⌘K

Event Sourcing

Cada ação do agente é registrada como um evento imutável. Eventos são a única fonte de verdade para o que aconteceu durante uma sessão.

Tipos de Evento

O sistema rastreia 16 tipos de eventos em 6 categorias:

CategoriaTipo de EventoDescrição
SessãoSessionStartNova sessão de conversa inicia
SessionEndSessão encerrada
ConversaUserMessageUsuário envia uma mensagem
AssistantResponseAgente envia uma resposta
FerramentasToolCallAgente invoca uma ferramenta
ToolResultExecução da ferramenta concluída
RaciocínioThinkingStartAgente começa a raciocinar
TarefasTaskStartAgente inicia uma tarefa
TaskEndTarefa concluída (com status)
ErrosErrorErro ocorre durante o processamento
Sub-AgentesSubAgentSpawnSub-agente é iniciado
SubAgentCompleteSub-agente finaliza
AprovaçõesApprovalRequestedSolicitação de aprovação de comando enviada
ApprovalGrantedUsuário aprovou um comando
ApprovalDeniedUsuário negou um comando

Estrutura do Evento

rust
struct Event {
    id: i64,              // Auto-incrementing ID
    session_id: String,   // Session identifier
    event_type: EventType,// One of the 16 types above
    data: JsonValue,      // Event-specific payload
    created_at: DateTime, // Timestamp
    consolidated_at: Option<DateTime>, // When processed
    task_id: Option<String>,   // Associated goal/task run
    tool_name: Option<String>, // For tool events
}

Consolidação Diária

Uma tarefa em segundo plano roda às 3:00 AM UTC diariamente e processa eventos não consolidados:

  1. Extração de fatos — o LLM analisa sequências de eventos para extrair fatos duráveis
  2. Aprendizado de procedimentos — padrões repetidos de chamadas de ferramentas são capturados como procedimentos
  3. Rastreamento de soluções de erros — erros e suas resoluções são pareados para depuração futura

Após o processamento, os eventos são marcados com um timestamp consolidated_at.

Contexto da Sessão

O sistema de eventos fornece um resumo da sessão para o contexto do LLM que inclui ferramentas usadas, erros encontrados, aprovações concedidas/negadas e atividade de sub-agentes.

Remoção de Eventos

Uma tarefa em segundo plano roda às 3:30 AM UTC e remove eventos mais antigos que o período de retenção (padrão 30 dias).

Imutabilidade
Eventos são somente de adição (append-only). O campo consolidated_at é o único campo atualizado após a criação.