Utilisez l'opération AddMemories pour écrire des messages de conversation ou du texte dans un magasin de mémoires configuré avec inputType=messages. Le service stocke les messages d'origine sous forme de mémoire à court terme et génère de manière asynchrone une mémoire structurée, des fichiers de mémoire en lecture seule, ou les deux, selon les paramètres outputTypes du magasin.
Prérequis
Vous avez créé une instance AgentStorage dont l'état est
normal, et vous avez obtenu le point de terminaison ainsi que le nom de l'instance.Vous avez généré une clé API.
Le paramètre
inputTypedu magasin de mémoires cible doit être défini surmessages.Règles de portée : lors de l'écriture des données, le champ
appIdest obligatoire et les caractères génériques (*) ne sont pas autorisés. Si d'autres champs sont omis, ils prennent la valeur par défaut__default__.
Paramètres de requête
|
Champ |
Type |
Obligatoire |
Description |
|
|
string |
Oui |
Nom du magasin de mémoires cible. |
|
|
object |
Oui |
Portée. Lors de l'écriture des données, le champ |
|
|
array |
|
Tableau de messages de conversation. Ce tableau peut contenir jusqu'à 20 messages, et la longueur totale du contenu ne doit pas dépasser 32 000 octets (UTF-8). |
|
|
string |
|
Contenu textuel. La longueur maximale est de 32 000 octets (UTF-8). |
|
|
object |
Non |
Paires clé-valeur de type chaîne au niveau de l'écriture. Jusqu'à 16 clés sont autorisées. Chaque clé peut comporter jusqu'à 64 caractères Unicode. La taille totale après encodage JSON ne doit pas dépasser 65 536 octets (UTF-8, 64 KiB). |
|
|
boolean |
Non |
Indique s'il faut attendre de manière synchrone la fin de la génération de la mémoire structurée. Valeur par défaut : |
|
|
string |
Non |
Heure de référence de la session au format RFC3339 (point d'ancrage « as-of »). Une fois ce paramètre défini, les messages qui ne contiennent pas de champ |
Les limites de l'opération AddMemories sont soumises aux restrictions décrites dans la section Limitations et remarques.
Une écriture réussie indique que le service a reçu les messages. La génération de toutes les sorties dépend de l'état de la tâche. Pour les appels asynchrones, enregistrez l'identifiant requestId présent dans la réponse. Ne générez pas ce champ dans le corps de la requête. Une fois les fichiers générés, appelez l'opération ListItems avec la portée exacte, puis lisez le contenu en appelant GetItem(view=full).
Exemples de requêtes
Lorsque vous utilisez l'authentification par clé API, transmettez le nom de l'instance et la clé API dans les en-têtes de requête x-ots-instancename et x-ots-apikey.
curl -X POST https://<endpoint>/AddMemories \
-H "x-ots-instancename: <instance-name>" \
-H "x-ots-apikey: <your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"memoryStoreName": "agent_memory",
"scope": {
"appId": "app-001",
"tenantId": "user-001",
"agentId": "assistant",
"runId": "session-001"
},
"messages": [
{
"role": "user",
"content": "I like drinking coffee."
},
{
"role": "assistant",
"content": "OK, I noted that."
}
],
"metadata": {
"source": "chat"
},
"sync": false
}'
Écriture de texte :
{
"memoryStoreName": "agent_memory",
"scope": {
"appId": "app-001",
"tenantId": "user-001"
},
"text": "The user likes coffee and prefers concise responses."
}
Réponse
|
Champ |
Description |
|
|
Identifiant de la requête. |
|
|
État de la requête. Les écritures asynchrones renvoient généralement |
|
|
Nombre de messages reçus. |
|
|
Portée utilisée pour l'écriture effective. |
|
|
Nom du magasin de mémoires. |
|
|
Renvoyé pour les écritures synchrones. Indique le nombre de segments de mémoire créés. |
|
|
Renvoyé pour les écritures synchrones. Indique le nombre d'unités de mémoire à long terme créées. |
|
|
Renvoyé uniquement lorsque |
Lorsque la requête spécifie sync=true, vous pouvez obtenir directement les identifiants de la mémoire à long terme générée à partir du tableau memoryIds dans la réponse.
{
"requestId": "req-001",
"status": "completed",
"acceptedMessages": 2,
"scope": {
"appId": "app-001",
"tenantId": "user-001",
"agentId": "assistant",
"runId": "session-001"
},
"memoryStoreName": "agent_memory",
"memcellsCreated": 1,
"unitsCreated": 1,
"memoryIds": [
"memory-001"
]
}