Référence de l'API mémoire
Cette page est la référence de l'API REST pour la mémoire gérée de l'agent. Il couvre les Endpoint, les champs de requête et les champs de réponse pour la mémoire gérée :
- Un magasin de mémoire est une ressource sécurisable Unity Catalog qui agit comme un conteneur pour les entrées de mémoire. Utilisez les APIs de magasin de mémoire pour créer et gérer des magasins.
- Une **entrée de mémoire** est un élément de contenu individuel stocké dans un magasin de mémoire. Utilisez les APIs d'entrée mémoire pour lire et écrire des entrées.
- Une conversation est un état de conversation compatible avec OpenAI — messages et appels d’outils — soutenu par un magasin de mémoire et pin à une étendue. Utilisez les APIs de conversation pour créer et gérer des conversations et leurs éléments.
Prérequis
Générer un jeton OAuth à l’aide de l’interface de ligne de commande Databricks pour appeler les APIs :
databricks auth login --host ${DATABRICKS_HOST}
databricks auth token
APIs du magasin de mémoire
Un magasin de mémoire est une ressource sécurisable de Unity Catalog qui agit comme un conteneur pour les entrées de mémoire. Les magasins de mémoire utilisent une nomenclature à trois niveaux : catalog.schema.memory_store_name.
Opérations | Point de terminaison | Privilège requis |
|---|---|---|
|
| |
|
| |
|
| |
|
| |
|
|
Créer un magasin de mémoire
Crée un nouveau magasin de mémoire sous un schéma parent.
- Endpoint :
POST /api/2.1/unity-catalog/memory-stores - **Privilège requis** :
CREATE MEMORY STOREsur le schéma parent
curl -X POST "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "agent_memory",
"catalog_name": "main",
"schema_name": "default",
"description": "Memory store for customer support agents"
}'
Champs de requête :
Champ | Type | Obligatoire | Description |
|---|---|---|---|
|
| Oui | Nom abrégé du magasin de mémoire. Doit correspondre à |
|
| Oui | Nom du catalogue parent. |
|
| Oui | Nom du schéma parent, par rapport au catalogue. |
|
| Non | Description lisible par l'homme du magasin de mémoire. |
Obtenir un stockage en mémoire
Récupère un magasin de mémoire par son nom complet en trois parties.
- Endpoint :
GET /api/2.1/unity-catalog/memory-stores/{full_name} - Privilège requis :
READ MEMORY STOREsur le magasin
curl -X GET \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores/main.default.agent_memory" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Lister les stockages de mémoire
Répertorie les magasins de mémoire dans un schéma. Les résultats sont filtrés en fonction des magasins que l'appelant peut lire.
- Endpoint :
GET /api/2.1/unity-catalog/memory-stores - **Privilège requis** :
USE SCHEMAsur le schéma parent
curl -X GET \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores?catalog_name=main&schema_name=default" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Parameters de query :
parameter | Type | Obligatoire | Description |
|---|---|---|---|
|
| Oui | Nom du catalogue parent. |
|
| Oui | Nom du schéma parent. |
|
| Non | Jeton de pagination d’une réponse précédente. |
|
| Non | Nombre maximal de magasins par page. default à 100, max 1 000. |
Mettre à jour un magasin de mémoire
Met à jour les champs mutables dans un magasin de mémoire. Actuellement, seul description est mutable.
- Endpoint :
PATCH /api/2.1/unity-catalog/memory-stores/{full_name} - Privilège requis :
MANAGEsur le magasin
curl -X PATCH \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores/main.default.agent_memory" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"memory_store": {
"description": "Updated description for the memory store"
},
"update_mask": "description"
}'
Supprimer un magasin de mémoire
Supprime un magasin de mémoire et toutes ses entrées de mémoire.
- Endpoint :
DELETE /api/2.1/unity-catalog/memory-stores/{full_name} - Privilège requis :
MANAGEsur le magasin
curl -X DELETE \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores/main.default.agent_memory" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Champs de réponse du magasin de mémoire
Champ | Type | Description |
|---|---|---|
|
| Nom abrégé du magasin de mémoire. |
|
| Nom du catalogue parent. |
|
| Nom du schéma parent. |
|
| Description lisible par l'homme. |
|
| Principal UC propriétaire du magasin. Paramétré à la création. |
|
| Nom complet en trois parties : |
|
| UUID attribué par le serveur. |
|
| Toujours |
|
| Heure de création en millisecondes Unix epoch. |
|
| Heure de la dernière mise à jour en millisecondes d'époque Unix. |
|
| Principal qui a créé le store. |
APIs d’entrée de mémoire
Les entrées de mémoire sont les éléments de contenu individuels stockés dans un magasin de mémoire. Chaque entrée est identifiée par une portée et un chemin : scope est une clé de partition que l'appelant attribue (par exemple, un ID d'utilisateur final), et path est un chemin souple dans cette portée qui doit commencer par /memories/ (par exemple, /memories/preferences.md). scope est requis pour chaque requête d'entrée de mémoire.
Opérations | Point de terminaison | Privilège requis |
|---|---|---|
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
Créer une entrée de mémoire
Crée une nouvelle entrée de mémoire dans un magasin de mémoire.
- Endpoint :
POST /api/2.1/unity-catalog/memory-stores/{full_name}/entries?scope=<scope> - Privilège requis :
WRITE MEMORY STOREsur le magasin
scope est un parameter de query ; le corps de la requête est l'entrée elle-même.
curl -X POST \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores/main.default.agent_memory/entries?scope=user-42" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"path": "/memories/preferences.md",
"contents": "The user prefers responses in English and uses formal tone.",
"description": "User language and tone preferences"
}'
Champs de requête :
Champ | Dans | Type | Obligatoire | Description |
|---|---|---|---|---|
| Saisir une requête |
| Oui | Partition à laquelle appartient l’entrée, attribuée par l’appelant (par exemple, un ID d’utilisateur final). |
| corps |
| Oui | Chemin identifiant l'entrée dans le cadre. Doit start par |
| corps |
| Non | Contenu textuel de la mémoire en texte libre. |
| corps |
| Non | Résumé en une ligne de l'entrée de mémoire. Sert de point d'ancrage d'index dans les réponses de liste. |
Obtenir une entrée de mémoire
Récupère une seule entrée de mémoire par scope et path.
- Endpoint :
GET /api/2.1/unity-catalog/memory-stores/{full_name}/entries:get - Privilège requis :
READ MEMORY STOREsur le magasin
curl -X GET \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores/main.default.agent_memory/entries:get?scope=user-42&path=/memories/preferences.md" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Lister les entrées de mémoire
Répertorie les entrées de mémoire dans une portée.
- Endpoint :
GET /api/2.1/unity-catalog/memory-stores/{full_name}/entries - Privilège requis :
READ MEMORY STOREsur le magasin
curl -X GET \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores/main.default.agent_memory/entries?scope=user-42" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Parameters de query :
parameter | Type | Obligatoire | Description |
|---|---|---|---|
|
| Oui | Portée (partition) pour répertorier les entrées. |
|
| Non | Retourner uniquement les entrées dont le chemin start par ce préfixe. |
|
| Non | Nombre maximal d'entrées par page. Le serveur limite la taille de la page. |
|
| Non | Jeton de pagination d’une réponse précédente. |
Les réponses de liste omettent contents (métadonnées uniquement) et incluent un next_page_token lorsqu'il reste plus de pages.
Mettre à jour une entrée de mémoire
Applique une seule opération de modification à l’ contents d’une entrée existante, identifiée par scope et path. Fournissez exactement un de str_replace, insert, ou replace_all. description est modifiable : définissez-le pour remplacer la description de l'entrée, ou omettez-le pour laisser la description inchangée.
- Endpoint :
PATCH /api/2.1/unity-catalog/memory-stores/{full_name}/entries - Privilège requis :
WRITE MEMORY STOREsur le magasin
curl -X PATCH \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores/main.default.agent_memory/entries" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"scope": "user-42",
"path": "/memories/preferences.md",
"replace_all": { "contents": "The user prefers responses in Spanish and uses casual tone." }
}'
Modifier les Opérations (définir exactement une) :
Opérations | Champs | Comportement |
|---|---|---|
|
| Remplacer le contenu complet de l'entrée. |
|
| Remplacez l'occurrence unique de |
|
| Insérer |
Supprimer une entrée mémoire
Supprime une entrée de mémoire, identifiée par scope et path.
- Endpoint :
DELETE /api/2.1/unity-catalog/memory-stores/{full_name}/entries - Privilège requis :
WRITE MEMORY STOREsur le magasin
curl -X DELETE \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores/main.default.agent_memory/entries?scope=user-42&path=/memories/preferences.md" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Rechercher les entrées de mémoire
Recherche des entrées de mémoire par mot-clé dans les champs chemin, contenu et description.
- Endpoint :
POST /api/2.1/unity-catalog/memory-stores/{full_name}/entries:search - Privilège requis :
READ MEMORY STOREsur le magasin
curl -X POST \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores/main.default.agent_memory/entries:search" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"scope": "user-42",
"query": "language preferences"
}'
Champs de la requête : scope (obligatoire), query (obligatoire), path_prefix (facultatif), top_k (facultatif ; default 10, max. 50).
Champs de réponse d'entrée de mémoire
Champ | Type | Description |
|---|---|---|
|
| Chemin souple de l'entrée dans sa portée. |
|
| Texte de la mémoire. Omis dans les réponses de liste. |
|
| Résumé d'une ligne. |
|
| Définir la portée (partition) à laquelle l'entrée appartient. |
|
| Nom en trois parties du magasin de mémoire parent. |
|
| Indique si l'entrée contient des |
|
| Timestamp de création (RFC 3339). |
|
| Timestamp de la dernière mise à jour (RFC 3339). |
Conversation APIs
Une conversation stocke l'état de la conversation compatible avec OpenAI — messages, appels d'outils et autres — dans un magasin de mémoire sous une portée unique. Avec une conversation, un agent conserve et recharge l'état de la session côté serveur. Vous créez chaque conversation dans un magasin de mémoire (nom en trois parties) et un scope, et les Opérations de conversation nécessitent les mêmes privilèges que le magasin de mémoire sous-jacent.
Opérations | Point de terminaison | Privilège requis |
|---|---|---|
|
| |
|
| |
|
| |
|
|
Créer une conversation
Crée une conversation liée à un magasin de mémoire et à une portée.
- Endpoint :
POST /api/2.1/unity-catalog/conversations - Privilège requis :
WRITE MEMORY STOREsur le magasin
curl -X POST "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/conversations" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"memory_store": { "name": "main.default.support_agent_memory" },
"scope": { "kind": "user", "value": "user-123" },
"metadata": { "source": "support-chat" }
}'
Champs de requête :
Champ | Type | Obligatoire | Description |
|---|---|---|---|
|
| Oui | Magasin de mémoire prenant en charge la conversation. |
|
| Oui | Nom entièrement qualifié en trois parties du stockage de la mémoire : |
|
| Oui | Portée à laquelle la conversation est pin. |
|
| Oui | Type de portée, par exemple : |
|
| Oui | Valeur de portée spécifique au type, par exemple un ID d'utilisateur final. |
|
| Non | Métadonnées clé-valeur contrôlées par l'appelant. Jusqu'à 16 clés ; clés jusqu'à 64 caractères, valeurs jusqu'à 512 caractères. |
|
| Non | Éléments de conversation OpenAI initiaux pour amorcer la conversation (jusqu'à 20). Les éléments sans |
Obtenir une conversation
Récupère une conversation par son ID.
- Endpoint :
GET /api/2.1/unity-catalog/conversations/{conversation_id} - Privilège requis :
READ MEMORY STOREsur le magasin
curl -X GET \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/conversations/${CONVERSATION_ID}" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Mettre à jour une conversation
Met à jour le metadata d'une conversation.
- Endpoint :
POST /api/2.1/unity-catalog/conversations/{conversation_id} - Privilège requis :
WRITE MEMORY STOREsur le magasin
curl -X POST \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/conversations/${CONVERSATION_ID}" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{ "metadata": { "source": "support-chat", "resolved": "true" } }'
Supprimer une conversation
Supprime une conversation et ses éléments.
- Endpoint :
DELETE /api/2.1/unity-catalog/conversations/{conversation_id} - Privilège requis :
WRITE MEMORY STOREsur le magasin
curl -X DELETE \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/conversations/${CONVERSATION_ID}" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Champs de réponse de la conversation
Champ | Type | Description |
|---|---|---|
|
| ID de conversation attribué par le serveur. |
|
| Toujours |
|
| Heure de création en secondes d'époque Unix. |
|
| Métadonnées clé-valeur fournies par l’appelant. |
APIs des éléments de conversation
Les éléments sont les messages individuels et les appels d'outils au sein d'une conversation. Ils suivent le format des éléments de conversation OpenAI et utilisent une pagination compatible avec OpenAI (after, limit, has_more).
Opérations | Point de terminaison | Privilège requis |
|---|---|---|
Créer des éléments |
|
|
Obtenir l'élément |
|
|
Éléments de liste |
|
|
Supprimer l'élément |
|
|