ENΒ·ESΒ·DEΒ·PTΒ·FR
⌘K

Event Sourcing

Cada accion del agente se registra como un evento inmutable. Los eventos son la unica fuente de verdad de lo que ocurrio durante una sesion.

Tipos de Eventos

El sistema rastrea 16 tipos de eventos en 6 categorias:

CategoriaTipo de EventoDescripcion
SesionSessionStartComienza una nueva sesion de conversacion
SessionEndSesion terminada
ConversacionUserMessageEl usuario envia un mensaje
AssistantResponseEl agente envia una respuesta
HerramientasToolCallEl agente invoca una herramienta
ToolResultLa ejecucion de la herramienta se completa
RazonamientoThinkingStartEl agente comienza a razonar
TareasTaskStartEl agente comienza una tarea
TaskEndLa tarea se completa (con estado)
ErroresErrorOcurre un error durante el procesamiento
Sub-AgentesSubAgentSpawnSe genera un sub-agente
SubAgentCompleteEl sub-agente finaliza
AprobacionesApprovalRequestedSe envia solicitud de aprobacion de comando
ApprovalGrantedEl usuario aprobo un comando
ApprovalDeniedEl usuario denego un comando

Estructura del 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
}

Consolidacion Diaria

Una tarea en segundo plano se ejecuta a las 3:00 AM UTC diariamente y procesa eventos no consolidados:

  1. Extraccion de hechos — el LLM analiza secuencias de eventos para extraer hechos duraderos
  2. Aprendizaje de procedimientos — los patrones repetidos de llamadas a herramientas se capturan como procedimientos
  3. Seguimiento de soluciones de errores — los errores y sus resoluciones se emparejan para depuracion futura

Despues del procesamiento, los eventos se marcan con una marca de tiempo consolidated_at.

Contexto de Sesion

El sistema de eventos proporciona un resumen de sesion para el contexto del LLM que incluye herramientas utilizadas, errores encontrados, aprobaciones concedidas/denegadas y actividad de sub-agentes.

Limpieza de Eventos

Una tarea en segundo plano se ejecuta a las 3:30 AM UTC y elimina eventos mas antiguos que el periodo de retencion (por defecto 30 dias).

Inmutabilidad
Los eventos son de solo escritura (append-only). El campo consolidated_at es el unico campo que se actualiza despues de la creacion.