EN·ES·DE·PT·FR
⌘K

Event Sourcing

Chaque action de l'agent est enregistrée comme un événement immuable. Les événements sont la source unique de vérité pour ce qui s'est passé pendant une session.

Types d'Événements

Le système suit 16 types d'événements répartis en 6 catégories :

CatégorieType d'ÉvénementDescription
SessionSessionStartDébut d'une nouvelle session de conversation
SessionEndSession terminée
ConversationUserMessageL'utilisateur envoie un message
AssistantResponseL'agent envoie une réponse
ToolsToolCallL'agent invoque un outil
ToolResultL'exécution de l'outil se termine
ThinkingThinkingStartL'agent commence à raisonner
TasksTaskStartL'agent commence une tâche
TaskEndLa tâche se termine (avec statut)
ErrorsErrorUne erreur survient pendant le traitement
Sub-AgentsSubAgentSpawnUn sous-agent est créé
SubAgentCompleteLe sous-agent termine
ApprovalsApprovalRequestedDemande d'approbation de commande envoyée
ApprovalGrantedL'utilisateur a approuvé une commande
ApprovalDeniedL'utilisateur a refusé une commande

Structure d'un Événement

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
}

Consolidation Quotidienne

Une tâche en arrière-plan s'exécute à 3h00 UTC quotidiennement et traite les événements non consolidés :

  1. Extraction de faits — le LLM analyse les séquences d'événements pour extraire des faits durables
  2. Apprentissage de procédures — les modèles récurrents d'appels d'outils sont capturés en tant que procédures
  3. Suivi des solutions d'erreurs — les erreurs et leurs résolutions sont appariées pour le débogage futur

Après le traitement, les événements sont marqués avec un horodatage consolidated_at.

Contexte de Session

Le système d'événements fournit un résumé de session pour le contexte LLM qui inclut les outils utilisés, les erreurs rencontrées, les approbations accordées/refusées et l'activité des sous-agents.

Élagage des Événements

Une tâche en arrière-plan s'exécute à 3h30 UTC et supprime les événements plus anciens que la période de rétention (par défaut 30 jours).

Immuabilité
Les événements sont en ajout seul. Le champ consolidated_at est le seul champ mis à jour après la création.