À mesure que les conversations s'allongent, les mémoires à long terme accumulent des doublons, des formulations incohérentes, des entrées fusionnables et des éléments obsolètes. Memory Dream affine, fusionne et déduplique en arrière-plan les mémoires stockées ainsi que les messages bruts. Il génère des opérations exploitables qui maintiennent le magasin de mémoire concis et cohérent. Choisissez entre un examen préalable des propositions et une application automatique conditionnée par un seuil de confiance.
Concepts clés
Memory Dream lit les données du magasin de mémoire et produit des actions de consolidation en arrière-plan. Les tâches de consolidation se déclinent en trois types, distingués par leur cible. Les actions issues des tâches memory écrivent directement dans le magasin de mémoire ; celles provenant des tâches skill et profile sont émises uniquement sous forme d'événements autonomes destinés à être consommés par l'appelant.
|
taskType |
Cible de la consolidation |
Types d'actions émis |
|
|
Mémoires à long terme : réécriture, fusion, déduplication ou suppression des entrées obsolètes. Les actions appliquées mettent directement à jour le magasin de mémoire. |
|
|
|
Compétences réutilisables extraites des interactions historiques. Les actions sont émises sous forme d'événements et n'écrivent pas dans le magasin de mémoire. |
|
|
|
Profils utilisateur structurés élaborés à partir des interactions. Les actions sont émises sous forme d'événements et n'écrivent pas dans le magasin de mémoire. |
|
Sélectionnez un mode d'application selon le niveau de confiance que vous accordez aux résultats de la consolidation :
|
applyMode |
Comportement |
|
|
La consolidation génère uniquement des actions |
|
|
Les actions atteignant le seuil de confiance ( |
Le paramètre applyMode est pris en charge uniquement pour taskType=memory. La transmission de skill ou profile renvoie une erreur 403 (applyMode is not supported for taskType=skill|profile). Les actions issues des tâches skill et profile (EMIT_SKILL / EMIT_PROFILE) sont émises sous forme d'événements destinés à être consommés par l'appelant, sans workflow apply.
Démarrage rapide
En mode proposal, le flux de travail de bout en bout utilise quatre API dans l'ordre suivant : création d'une tâche, interrogation de son statut, liste des actions proposées et application de ces dernières. Transitions d'état de la tâche : queued → running → planning → (optionnel applying) → completed. Les autres états terminaux incluent completed_with_failures, failed et cancelled.
Étape 1 : Créer une tâche de consolidation
POST /CreateMemoryDreamTask
{
"memoryStoreName": "agent_memory",
"scopes": [ { "appId": "app-001", "tenantId": "user-001" } ],
"taskType": "memory",
"applyMode": "proposal"
}
Réponse :
{
"memoryStoreName": "agent_memory",
"dreamId": "2a528008111f5dc3500c73fd965089f7",
"status": "queued",
"createdAt": "2026-06-17T07:21:25.329Z"
}
Étape 2 : Interroger le statut de la tâche
POST /GetMemoryDreamTask
{ "memoryStoreName": "agent_memory", "dreamId": "2a528008111f5dc3500c73fd965089f7" }
Immédiatement après la création d'une tâche, l'index des tâches de consolidation peut encore être en cours de construction. L'appel GetMemoryDreamTask peut brièvement renvoyer une erreur 409 (message d'erreur : dream task index is still building, please retry shortly). Réessayez après une courte attente.
Réponse (completed) :
{
"dreamId": "2a528008111f5dc3500c73fd965089f7",
"taskType": "memory",
"applyMode": "proposal",
"status": "completed",
"actions": { "total": 2, "proposed": 2, "applied": 0, "skipped": 0, "failed": 0 },
"input": { "sessionCount": 1, "messageCount": 1, "memoryCount": 2, "incremental": false },
"finishedAt": "2026-06-17T07:21:32.276Z"
}
Étape 3 : Examiner les actions proposées
POST /ListMemoryDreamActions
{ "memoryStoreName": "agent_memory", "dreamId": "2a528008111f5dc3500c73fd965089f7", "limit": 20 }
Réponse :
{
"dreamId": "2a528008111f5dc3500c73fd965089f7",
"actions": [
{
"actionId": "968768529cdfde8d56686a71e1c28227",
"action": "UPDATE",
"status": "proposed",
"targetMemoryId": "d16fd038835d89ae8586f7814e5256c1",
"newMemory": { "text": "User prefers concise responses.", "unitType": "atomic_fact" },
"reason": "Rewrite as a more precise atomic_fact.",
"confidence": 0.95
}
]
}
Champs d'action principaux :
|
Champ |
Description |
|
|
ID de l'action. Utilisé lors de l'application de l'action. |
|
|
Type d'action : |
|
|
Statut de l'action : |
|
|
Portée et ID de la mémoire cible sur lesquels l'action opère ( |
|
|
Nouveau contenu de la mémoire, incluant |
|
|
Raison fournie par le modèle pour l'action. |
|
|
Score de confiance, compris entre 0 et 1. |
Étape 4 : Appliquer les actions
POST /ApplyMemoryDreamActions
{
"memoryStoreName": "agent_memory",
"dreamId": "2a528008111f5dc3500c73fd965089f7",
"actionIds": ["968768529cdfde8d56686a71e1c28227", "a0f4715245920ea7b6a34c1828c6f1ae"]
}
Réponse :
{
"dreamId": "2a528008111f5dc3500c73fd965089f7",
"applied": 2,
"failed": 0,
"results": [
{ "actionId": "968768529cdfde8d56686a71e1c28227", "status": "applied", "memoryId": "bd14a67ed215c114896325d912c8fa71" }
]
}
Paramètres clés
Pour connaître les plages de valeurs des paramètres, consultez Limitations et notes.
|
Paramètre |
Description |
|
|
Portées à consolider. Obligatoire. Jusqu'à 20 éléments. |
|
|
IDs des actions à appliquer. Obligatoire pour |
|
|
Seuils d'application automatique. Clés : |
|
|
Portée des mémoires résultantes : |
|
|
Lorsqu'il est défini sur |
|
|
Restreint la plage temporelle des messages inclus dans la consolidation. |
|
|
Nombre maximal de sessions traitées lors d'une seule exécution de consolidation. |
|
|
Nombre maximal de messages traités lors d'une seule exécution de consolidation. |
|
|
Nombre maximal de mémoires traitées lors d'une seule exécution de consolidation. |
|
|
Nombre maximal de portées après expansion. |
|
|
Instructions de consolidation personnalisées, jusqu'à 4 000 caractères. |
Bonnes pratiques
Ne bloquez pas le chemin de requête en ligne en attendant les résultats de la consolidation. La consolidation s'exécute en arrière-plan ; interrogez
GetMemoryDreamTaskpour suivre la progression.Utilisez le mode
proposalen production et appliquez les actions uniquement après confirmation humaine ou programmatique. Lorsque vous avez confiance dans les résultats, définissez desconfidenceThresholdspouradd,updateetmerge, puis basculez vers le modesafe_auto.Pour une consolidation planifiée, définissez
incremental=trueafin d'éviter un retraitement complet à chaque exécution.