Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa pagina è il riferimento all'API REST per la memoria dell'agente gestito. Vengono illustrati gli endpoint, i campi della richiesta e i campi di risposta per la memoria gestita:
- Un archivio di memoria è un'entità a protezione diretta di Unity Catalog che funge da contenitore per le voci di memoria. Usare le API dell'archivio memoria per creare e gestire archivi.
- Una voce di memoria è una singola parte di contenuto archiviata all'interno di un archivio di memoria. Usare le API di immissione memoria per leggere e scrivere voci.
- Una conversazione è uno stato di conversazione compatibile con OpenAI, ovvero messaggi e chiamate di strumenti, supportato da un archivio di memoria e aggiunto a un ambito. Usare le API di conversazione per creare e gestire conversazioni e i relativi elementi.
Prerequisiti
Generare un token OAuth usando l'interfaccia della riga di comando di Databricks per chiamare le API:
databricks auth login --host ${DATABRICKS_HOST}
databricks auth token
API dell'archivio memoria
Un archivio di memoria è un'entità a protezione diretta di Unity Catalog che funge da contenitore per le voci di memoria. Gli archivi di memoria usano la denominazione a tre livelli: catalog.schema.memory_store_name.
| Operazione | Punto finale | Privilegio obbligatorio |
|---|---|---|
| Creare | POST /api/2.1/unity-catalog/memory-stores |
CREATE MEMORY STORE nel modello genitore |
| GET | GET /api/2.1/unity-catalog/memory-stores/{full_name} |
READ MEMORY STORE nel negozio |
| Elenco | GET /api/2.1/unity-catalog/memory-stores |
USE SCHEMA nel modello genitore |
| Update | PATCH /api/2.1/unity-catalog/memory-stores/{full_name} |
MANAGE nel negozio |
| Elimina | DELETE /api/2.1/unity-catalog/memory-stores/{full_name} |
MANAGE nel negozio |
Creare un archivio di memoria
Crea un nuovo archivio di memoria in uno schema padre.
-
Endpoint:
POST /api/2.1/unity-catalog/memory-stores -
Privilegio obbligatorio:
CREATE MEMORY STOREnello schema padre
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"
}'
Campi della richiesta:
| Campo | Tipo | Obbligatorio | Description |
|---|---|---|---|
name |
string |
Yes | Nome breve per l'archivio di memoria. Deve corrispondere a [A-Za-z0-9_-]+, da 1 a 255 caratteri. Univoco all'interno dello schema padre. |
catalog_name |
string |
Yes | Nome del catalogo padre. |
schema_name |
string |
Yes | Nome dello schema padre, relativo al catalogo. |
description |
string |
No | Descrizione leggibile dell'archivio di memoria. |
Ottenere un archivio di memoria
Recupera un archivio di memoria in base al nome completo in tre parti.
-
Endpoint:
GET /api/2.1/unity-catalog/memory-stores/{full_name} -
Privilegio obbligatorio:
READ MEMORY STOREnell'archivio
curl -X GET \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores/main.default.agent_memory" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Elencare gli archivi di memoria
Elenca gli archivi di memoria in uno schema. I risultati vengono filtrati per archiviare il chiamante in grado di leggere.
-
Endpoint:
GET /api/2.1/unity-catalog/memory-stores -
Privilegio obbligatorio:
USE SCHEMAnello schema padre
curl -X GET \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores?catalog_name=main&schema_name=default" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Parametri di query:
| Parametro | Tipo | Obbligatorio | Description |
|---|---|---|---|
catalog_name |
string |
Yes | Nome catalogo padre. |
schema_name |
string |
Yes | Nome schema padre. |
page_token |
string |
No | Token di paginazione da una risposta precedente. |
max_results |
integer |
No | Numero massimo di archivi per pagina. Il valore predefinito è 100, massimo 1000. |
Aggiornare un archivio di memoria
Aggiorna i campi modificabili in un archivio di memoria. Attualmente è modificabile solo description .
-
Endpoint:
PATCH /api/2.1/unity-catalog/memory-stores/{full_name} -
Privilegio obbligatorio:
MANAGEnell'archivio
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"
}'
Eliminare un archivio di memoria
Elimina un archivio memoria e tutte le relative voci di memoria.
-
Endpoint:
DELETE /api/2.1/unity-catalog/memory-stores/{full_name} -
Privilegio obbligatorio:
MANAGEnell'archivio
curl -X DELETE \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores/main.default.agent_memory" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Campi di risposta dell'archivio memoria
| Campo | Tipo | Description |
|---|---|---|
name |
string |
Nome breve dell'archivio di memoria. |
catalog_name |
string |
Nome catalogo padre. |
schema_name |
string |
Nome schema padre. |
description |
string |
Descrizione leggibile dagli umani |
owner |
string |
Entità uc proprietaria dell'archivio. Impostato in caso di creazione. |
full_name |
string |
Nome completo in tre parti: catalog.schema.name. |
memory_store_id |
string |
UUID assegnato al server. |
securable_type |
string |
Sempre MEMORY_STORE. |
created_at |
integer |
Tempo di creazione in millisecondi dell'epoca Unix. |
updated_at |
integer |
Ora dell'ultimo aggiornamento in millisecondi dell'epoca Unix. |
created_by |
string |
Entità che ha creato l'archivio. |
API di immissione della memoria
Le voci di memoria sono le singole parti di contenuto archiviate all'interno di un archivio di memoria. Ogni voce viene identificata da un ambito e da un percorso: scope è una chiave di partizione assegnata dal chiamante (ad esempio, un ID utente finale) ed path è un percorso flessibile all'interno di tale ambito che deve iniziare con /memories/ (ad esempio, /memories/preferences.md).
scope è obbligatorio per ogni richiesta di voce di memoria.
| Operazione | Punto finale | Privilegio obbligatorio |
|---|---|---|
| Creare | POST /api/2.1/unity-catalog/memory-stores/{full_name}/entries |
WRITE MEMORY STORE nel negozio |
| GET | GET /api/2.1/unity-catalog/memory-stores/{full_name}/entries:get |
READ MEMORY STORE nel negozio |
| Elenco | GET /api/2.1/unity-catalog/memory-stores/{full_name}/entries |
READ MEMORY STORE nel negozio |
| Update | PATCH /api/2.1/unity-catalog/memory-stores/{full_name}/entries |
WRITE MEMORY STORE nel negozio |
| Elimina | DELETE /api/2.1/unity-catalog/memory-stores/{full_name}/entries |
WRITE MEMORY STORE nel negozio |
| Ricerca | POST /api/2.1/unity-catalog/memory-stores/{full_name}/entries:search |
READ MEMORY STORE nel negozio |
Creare una voce di memoria
Crea una nuova voce di memoria in un archivio memoria.
-
Endpoint:
POST /api/2.1/unity-catalog/memory-stores/{full_name}/entries?scope=<scope> -
Privilegio obbligatorio:
WRITE MEMORY STOREnell'archivio
scope è un parametro di query; il corpo della richiesta è la voce stessa.
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"
}'
Campi della richiesta:
| Campo | In | Tipo | Obbligatorio | Description |
|---|---|---|---|---|
scope |
query | string |
Yes | La partizione a cui appartiene la voce, assegnata dal chiamante, ad esempio un ID utente finale. |
path |
body | string |
Yes | Percorso flessibile che identifica la voce all'interno dell'ambito. Deve iniziare con /memories/. Non modificabile. |
contents |
body | string |
No | Contenuto di testo di memoria in formato libero. |
description |
body | string |
No | Riepilogo in una riga della voce di memoria. Funge da hook di indice nelle risposte di elenco. |
Ottenere una voce di memoria
Recupera una singola voce di memoria per scope e path.
-
Endpoint:
GET /api/2.1/unity-catalog/memory-stores/{full_name}/entries:get -
Privilegio obbligatorio:
READ MEMORY STOREnell'archivio
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}"
Elencare le voci di memoria
Elenca le voci di memoria in un ambito.
-
Endpoint:
GET /api/2.1/unity-catalog/memory-stores/{full_name}/entries -
Privilegio obbligatorio:
READ MEMORY STOREnell'archivio
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}"
Parametri di query:
| Parametro | Tipo | Obbligatorio | Description |
|---|---|---|---|
scope |
string |
Yes | Ambito (partizione) da cui elencare le voci. |
path_prefix |
string |
No | Restituisce solo voci il cui percorso inizia con questo prefisso. |
page_size |
integer |
No | Numero massimo di voci per pagina. Il server delimita le dimensioni della pagina. |
page_token |
string |
No | Token di paginazione da una risposta precedente. |
Elencare le risposte omettere contents (solo metadati) e includere un next_page_token quando rimangono più pagine.
Aggiornare una voce di memoria
Applica una singola operazione di modifica a una contentsvoce esistente, identificata da scope e path. Specificare esattamente uno di str_replace, inserto replace_all.
description è modificabile: impostarla per sostituire la descrizione della voce o ometterla per lasciare invariata la descrizione.
-
Endpoint:
PATCH /api/2.1/unity-catalog/memory-stores/{full_name}/entries -
Privilegio obbligatorio:
WRITE MEMORY STOREnell'archivio
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." }
}'
Operazioni di modifica (impostate esattamente una):
| Operazione | Fields | Behavior |
|---|---|---|
replace_all |
contents |
Sovrascrivere il contenuto completo della voce. |
str_replace |
old_str, new_str |
Sostituire la singola occorrenza di old_str con new_str (deve corrispondere esattamente una volta). |
insert |
insert_line, insert_text |
Inserisci insert_text; insert_line 0 = superiore, omesso = accodare alla fine. |
Eliminare una voce di memoria
Elimina una voce di memoria, identificata da scope e path.
-
Endpoint:
DELETE /api/2.1/unity-catalog/memory-stores/{full_name}/entries -
Privilegio obbligatorio:
WRITE MEMORY STOREnell'archivio
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}"
Cerca voci di memoria
Cerca le voci di memoria per parola chiave nei campi percorso, contenuto e descrizione.
-
Endpoint:
POST /api/2.1/unity-catalog/memory-stores/{full_name}/entries:search -
Privilegio obbligatorio:
READ MEMORY STOREnell'archivio
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"
}'
Campi della richiesta: scope (obbligatorio), query (obbligatorio), (facoltativo), path_prefixtop_k (facoltativo; il valore predefinito è 10, massimo 50).
Campi di risposta della voce di memoria
| Campo | Tipo | Description |
|---|---|---|
path |
string |
Percorso flessibile della voce all'interno del relativo ambito. |
contents |
string |
Testo della memoria. Omesso nelle risposte elenco. |
description |
string |
Riepilogo su una riga. |
scope |
string |
Ambito (partizione) a cui appartiene la voce. |
memory_store_name |
string |
Nome in tre parti dell'archivio di memoria padre. |
has_contents |
boolean |
Indica se la voce non è vuota contents (utile in Elenco). |
create_time |
string |
Timestamp di creazione (RFC 3339). |
update_time |
string |
Timestamp ultimo aggiornamento (RFC 3339). |
API di conversazione
Una conversazione archivia lo stato della conversazione compatibile con OpenAI, ovvero messaggi, chiamate di strumenti e altri elementi, in un archivio memoria in un unico ambito. Con una conversazione, un agente mantiene e ricarica il lato server dello stato della sessione. Ogni conversazione viene creata su un archivio memoria (nome in tre parti) e le scopeoperazioni di conversazione e richiedono gli stessi privilegi dell'archivio di memoria sottostante.
| Operazione | Punto finale | Privilegio obbligatorio |
|---|---|---|
| Creare | POST /api/2.1/unity-catalog/conversations |
WRITE MEMORY STORE nel negozio |
| GET | GET /api/2.1/unity-catalog/conversations/{conversation_id} |
READ MEMORY STORE nel negozio |
| Update | POST /api/2.1/unity-catalog/conversations/{conversation_id} |
WRITE MEMORY STORE nel negozio |
| Elimina | DELETE /api/2.1/unity-catalog/conversations/{conversation_id} |
WRITE MEMORY STORE nel negozio |
Creare una conversazione
Crea una conversazione associata a un archivio di memoria e a un ambito.
-
Endpoint:
POST /api/2.1/unity-catalog/conversations -
Privilegio obbligatorio:
WRITE MEMORY STOREnell'archivio
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" }
}'
Campi della richiesta:
| Campo | Tipo | Obbligatorio | Description |
|---|---|---|---|
memory_store |
object |
Yes | Archivio memoria che esegue il backup della conversazione. |
memory_store.name |
string |
Yes | Nome completo in tre parti dell'archivio di memoria: catalog.schema.memory_store. |
scope |
object |
Yes | L'ambito della conversazione viene aggiunto a. |
scope.kind |
string |
Yes | Tipo di ambito, ad esempio user o user_defined. |
scope.value |
string |
Yes | Valore di ambito specifico del tipo, ad esempio un ID utente finale. |
metadata |
object |
No | Metadati chiave-valore controllati dal chiamante. Fino a 16 chiavi; chiavi fino a 64 caratteri, valori fino a 512 caratteri. |
items |
array |
No | Elementi iniziali della conversazione OpenAI per inizializzare la conversazione (fino a 20). Gli elementi senza un type oggetto vengono archiviati come elementi di messaggio. |
Ottenere una conversazione
Recupera una conversazione in base al relativo ID.
-
Endpoint:
GET /api/2.1/unity-catalog/conversations/{conversation_id} -
Privilegio obbligatorio:
READ MEMORY STOREnell'archivio
curl -X GET \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/conversations/${CONVERSATION_ID}" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Aggiornare una conversazione
Aggiorna l'oggetto di una conversazione.metadata
-
Endpoint:
POST /api/2.1/unity-catalog/conversations/{conversation_id} -
Privilegio obbligatorio:
WRITE MEMORY STOREnell'archivio
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" } }'
Eliminare una conversazione
Elimina una conversazione e i relativi elementi.
-
Endpoint:
DELETE /api/2.1/unity-catalog/conversations/{conversation_id} -
Privilegio obbligatorio:
WRITE MEMORY STOREnell'archivio
curl -X DELETE \
"https://${DATABRICKS_HOST}/api/2.1/unity-catalog/conversations/${CONVERSATION_ID}" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Campi risposta conversazione
| Campo | Tipo | Description |
|---|---|---|
id |
string |
ID conversazione assegnato dal server. |
object |
string |
Sempre conversation. |
created_at |
integer |
Tempo di creazione in secondi dell'epoca Unix. |
metadata |
object |
Metadati chiave-valore forniti dal chiamante. |
API degli elementi di conversazione
Gli elementi sono i singoli messaggi e le chiamate degli strumenti all'interno di una conversazione. Seguono la forma Degli elementi della conversazione OpenAI e usano la paginazione compatibile con OpenAI (after, limit, has_more).
| Operazione | Punto finale | Privilegio obbligatorio |
|---|---|---|
| Creare elementi | POST /api/2.1/unity-catalog/conversations/{conversation_id}/items |
WRITE MEMORY STORE nel negozio |
| Ottieni elemento | GET /api/2.1/unity-catalog/conversations/{conversation_id}/items/{item_id} |
READ MEMORY STORE nel negozio |
| Elementi elenco | GET /api/2.1/unity-catalog/conversations/{conversation_id}/items |
READ MEMORY STORE nel negozio |
| Elimina elemento | DELETE /api/2.1/unity-catalog/conversations/{conversation_id}/items/{item_id} |
WRITE MEMORY STORE nel negozio |