Knowledge Bases

Modèles de conception de schémas pour les graphes de connaissances temporels dans la mémoire des agents IA

À mesure que les agents IA évoluent de simples chatbots vers des entités autonomes dotées d'une mémoire à long terme, le défi du stockage et de la récupération du contexte devient primordial. Les bases de données traditionnelles par paires clé-valeur ou vectorielles échouent souvent à capturer l'évolution nuancée des faits au fil du temps. Pour y remédier, nous nous tournons vers les Graphes de Connaissances Temporels (GCT). Ces structures permettent aux agents de comprendre non seulement ce qui est vrai, mais aussi quand cela est devenu vrai, quand cela a cessé de l'être, et comment les niveaux de confiance ont évolué.

La conception d'un schéma efficace pour un GCT nécessite de trouver un équilibre entre l'expressivité et les performances de requête. Ci-dessous, nous explorons trois modèles critiques pour la modélisation des données temporelles dans les systèmes de mémoire des agents.

1. Le modèle de faits basé sur les intervalles

Le modèle le plus fondamental consiste à stocker explicitement les intervalles de temps valides pour chaque assertion. Au lieu de traiter un fait comme un booléen statique, nous le modélisons sous forme de tuple : (Sujet, Prédicat, Objet, Heure_Debut, Heure_Fin, Confiance).

Cette approche est idéale pour les changements d'état discrets, tels qu'un agent se souvenant qu'un utilisateur préfère Python (de janvier 2022 à juin 2023) avant de passer à Rust (de juin 2023 à aujourd'hui).

{
  "id": "fact_9821",
  "subject": "user_001",
  "predicate": "preferred_language",
  "object": "python",
  "valid_from": "2022-01-15T10:00:00Z",
  "valid_to": "2023-06-01T00:00:00Z",
  "confidence": 0.95
}

Astuce : Assurez-vous que lorsqu'un nouveau fait invalide un ancien, le système met automatiquement à jour l'horodatage valid_to de l'entrée précédente. Cela empêche l'existence simultanée d'états « actuels » contradictoires dans les résultats de requête.

2. Nœuds centrés sur les événements pour un contexte granulaire

Les modèles par intervalles peuvent devenir encombrants si les faits changent rapidement ou sont dérivés d'interactions spécifiques. Un modèle plus robuste consiste à traiter les événements comme des nœuds de premier ordre dans le graphe. L'événement détient le contexte temporel, et le fait est une arête reliant l'événement au sujet/objet.

Ceci est particulièrement utile pour les agents IA qui doivent tracer pourquoi une croyance existe. Par exemple, le fait que « L'utilisateur est intéressé par la randonnée » est lié à un nœud d'événement « Conversational_turn_452 » survenu le 2024-05-12. Cela permet à l'agent de récupérer non seulement le fait, mais aussi le contexte de la conversation originale si une revalidation est nécessaire.

class TemporalEvent:
    def __init__(self, event_id, timestamp, source_interaction):
        self.id = event_id
        self.timestamp = timestamp
        self.source = source_interaction

    def extract_fact(self, subject, predicate, object, duration):
        return Fact(
            subject=subject,
            predicate=predicate,
            object=object,
            valid_at=self.timestamp,
            decay_rate=duration
        )

3. Décroissance probabiliste et schémas de confiance

La mémoire des agents est rarement à 100 % certaine. Les schémas GCT avancés intègrent une decay_function (fonction de décroissance) ou un confidence_score (score de confiance) qui diminue au fil du temps s'il n'est pas renforcé. Cela imite la mémoire biologique humaine.

En stockant l'horodatage last_verified_at (dernière vérification) aux côtés de initial_observed_at (première observation), les agents peuvent prioriser les faits récents et vérifiés par rapport aux anciens. Le schéma devrait prendre en charge une « suppression douce » plutôt qu'une suppression définitive, permettant aux agents de réengager des faits potentiellement oubliés si le contexte réapparaît.

SELECT * FROM facts
WHERE subject = 'user_001'
AND valid_from <= NOW()
AND (valid_to IS NULL OR valid_to > NOW())
ORDER BY confidence DESC, last_verified_at DESC;

Conclusion

La conception de schémas temporels pour les agents IA consiste moins à choisir le bon moteur de base de données qu'à définir la sémantique du temps dans votre domaine spécifique. Que vous optiez pour des intervalles explicites, des nœuds centrés sur les événements ou une décroissance probabiliste, l'objectif reste le même : donner à votre agent une mémoire qui respecte le passage du temps. En implémentant ces modèles, vous permettez aux agents d'être non seulement informés, mais aussi contextuels, adaptatifs et historiquement conscients.

Share: