Speicher-API-Referenz

Diese Seite ist die REST-API-Referenz für verwalteten Agent-Speicher. Sie deckt die Endpunkte, Anforderungsfelder und Antwortfelder für verwalteten Speicher ab:

  • Ein Speicher ist ein Unity-Katalog sicherungsfähig, der als Container für Speichereinträge fungiert. Verwenden Sie die Speicherspeicher-APIs , um Speicher zu erstellen und zu verwalten.
  • Ein Speichereintrag ist ein einzelner Inhalt, der in einem Speicher gespeichert ist. Verwenden Sie die Speichereingabe-APIs zum Lesen und Schreiben von Einträgen.
  • Eine Unterhaltung ist openAI-kompatibler Unterhaltungszustand – Nachrichten und Toolanrufe – unterstützt durch einen Speicher und angeheftet an einen Bereich. Verwenden Sie die Unterhaltungs-APIs , um Unterhaltungen und deren Elemente zu erstellen und zu verwalten.

Voraussetzungen

Generieren Sie ein OAuth-Token mithilfe der Databricks CLI, um die APIs aufzurufen:

databricks auth login --host ${DATABRICKS_HOST}
databricks auth token

Speicher-APIs

Ein Speicher ist ein Unity-Katalog sicherungsfähig, der als Container für Speichereinträge fungiert. Speicher verwenden die Benennung auf drei Ebenen: catalog.schema.memory_store_name.

Vorgang Endpunkt Erforderliche Berechtigungen
Erstellen POST /api/2.1/unity-catalog/memory-stores CREATE MEMORY STORE im übergeordneten Schema
Get GET /api/2.1/unity-catalog/memory-stores/{full_name} READ MEMORY STORE im Store
List GET /api/2.1/unity-catalog/memory-stores USE SCHEMA im übergeordneten Schema
Update PATCH /api/2.1/unity-catalog/memory-stores/{full_name} MANAGE im Store
Löschen DELETE /api/2.1/unity-catalog/memory-stores/{full_name} MANAGE im Store

Erstellen eines Speichers

Erstellt einen neuen Speicherspeicher unter einem übergeordneten Schema.

  • Endpunkt:POST /api/2.1/unity-catalog/memory-stores
  • Erforderliche Berechtigungen: CREATE MEMORY STORE im übergeordneten Schema
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"
  }'

Anforderungsfelder:

Feld Typ Erforderlich Beschreibung
name string Ja Kurzname für den Speicher. Muss mit 1 bis 255 Zeichen übereinstimmen [A-Za-z0-9_-]+. Eindeutig im übergeordneten Schema.
catalog_name string Ja Name des übergeordneten Katalogs.
schema_name string Ja Name des übergeordneten Schemas relativ zum Katalog.
description string No Lesbare Beschreibung des Speichers.

Abrufen eines Speichers

Ruft einen Speicher mit seinem dreiteiligen vollqualifizierten Namen ab.

  • Endpunkt:GET /api/2.1/unity-catalog/memory-stores/{full_name}
  • Erforderliche Berechtigungen: READ MEMORY STORE im Store
curl -X GET \
  "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores/main.default.agent_memory" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}"

Liste von Speicherplätzen

Listet Speicher in einem Schema auf. Ergebnisse werden gefiltert, um den Aufrufer lesen zu können.

  • Endpunkt:GET /api/2.1/unity-catalog/memory-stores
  • Erforderliche Berechtigungen: USE SCHEMA im übergeordneten Schema
curl -X GET \
  "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores?catalog_name=main&schema_name=default" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}"

Abfrageparameter:

Parameter Typ Erforderlich Beschreibung
catalog_name string Ja Name des übergeordneten Katalogs.
schema_name string Ja Übergeordneter Schemaname.
page_token string No Paginierungstoken aus einer vorherigen Antwort.
max_results integer No Maximale Anzahl von Speichern pro Seite. Der Standardwert ist 100, max. 1000.

Aktualisieren eines Speichers

Aktualisiert veränderbare Felder in einem Speicher. Derzeit ist nur description änderbar.

  • Endpunkt:PATCH /api/2.1/unity-catalog/memory-stores/{full_name}
  • Erforderliche Berechtigungen: MANAGE im Store
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"
  }'

Löschen eines Speichers

Löscht einen Speicher und alle zugehörigen Speichereinträge.

  • Endpunkt:DELETE /api/2.1/unity-catalog/memory-stores/{full_name}
  • Erforderliche Berechtigungen: MANAGE im Store
curl -X DELETE \
  "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores/main.default.agent_memory" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}"

Antwortfelder für Speicherspeicher

Feld Typ Beschreibung
name string Kurzer Name des Speichers.
catalog_name string Name des übergeordneten Katalogs.
schema_name string Übergeordneter Schemaname.
description string Menschenlesbare Beschreibung.
owner string UC-Prinzipal, der den Speicher besitzt. Beim Erstellen festlegen.
full_name string Dreiteiliger vollqualifizierter Name: catalog.schema.name.
memory_store_id string Server zugewiesene UUID.
securable_type string Immer MEMORY_STORE.
created_at integer Schöpfungszeit in Unix-Epoche Millisekunden.
updated_at integer Letzte Aktualisierungszeit in Unix Epoche Millisekunden.
created_by string Prinzipal, der den Speicher erstellt hat.

Speichereingabe-APIs

Speichereinträge sind die einzelnen Inhalte, die in einem Speicher gespeichert sind. Jeder Eintrag wird durch einen Bereich und einen Pfad identifiziert: scope ist ein Partitionsschlüssel, den der Aufrufer zuweist (z. B. eine Endbenutzer-ID), und path es handelt sich um einen weichen Pfad innerhalb dieses Bereichs, der mit /memories/ diesem Bereich beginnen muss (z /memories/preferences.md. B. ). scope ist für jede Speichereingabeanforderung erforderlich.

Vorgang Endpunkt Erforderliche Berechtigungen
Erstellen POST /api/2.1/unity-catalog/memory-stores/{full_name}/entries WRITE MEMORY STORE im Store
Get GET /api/2.1/unity-catalog/memory-stores/{full_name}/entries:get READ MEMORY STORE im Store
List GET /api/2.1/unity-catalog/memory-stores/{full_name}/entries READ MEMORY STORE im Store
Update PATCH /api/2.1/unity-catalog/memory-stores/{full_name}/entries WRITE MEMORY STORE im Store
Löschen DELETE /api/2.1/unity-catalog/memory-stores/{full_name}/entries WRITE MEMORY STORE im Store
Suchen POST /api/2.1/unity-catalog/memory-stores/{full_name}/entries:search READ MEMORY STORE im Store

Erstellen eines Speichereintrags

Erstellt einen neuen Speichereintrag in einem Speicher.

  • Endpunkt:POST /api/2.1/unity-catalog/memory-stores/{full_name}/entries?scope=<scope>
  • Erforderliche Berechtigungen: WRITE MEMORY STORE im Store

scope ist ein Abfrageparameter; Der Anforderungstext ist der Eintrag selbst.

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"
  }'

Anforderungsfelder:

Feld In Typ Erforderlich Beschreibung
scope Abfrage string Ja Partitionieren Sie den Eintrag, dem der Aufrufer zugewiesen ist (z. B. eine Endbenutzer-ID).
path body string Ja Weicher Pfad, der den Eintrag innerhalb des Bereichs identifiziert. Muss mit /memories/ beginnen. Unveränderlich.
contents body string No Freiform-Textinhalt.
description body string No Einzeilige Zusammenfassung des Speichereintrags. Dient als Index-Hook in Listenantworten.

Abrufen eines Speichereintrags

Ruft einen einzelnen Speichereintrag nach scope und path.

  • Endpunkt:GET /api/2.1/unity-catalog/memory-stores/{full_name}/entries:get
  • Erforderliche Berechtigungen: READ MEMORY STORE im Store
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}"

Auflisten von Speichereinträgen

Listet Speichereinträge in einem Bereich auf.

  • Endpunkt:GET /api/2.1/unity-catalog/memory-stores/{full_name}/entries
  • Erforderliche Berechtigungen: READ MEMORY STORE im Store
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}"

Abfrageparameter:

Parameter Typ Erforderlich Beschreibung
scope string Ja Bereich (Partition) auf Listeneinträge aus.
path_prefix string No Gibt nur Einträge zurück, deren Pfad mit diesem Präfix beginnt.
page_size integer No Maximale Anzahl von Einträgen pro Seite. Der Server kapitiert die Seitengröße.
page_token string No Paginierungstoken aus einer vorherigen Antwort.

Listenantworten werden weggelassen contents (nur Metadaten), und fügen Sie ein next_page_token , wenn weitere Seiten verbleiben.

Aktualisieren eines Speichereintrags

Wendet einen einzelnen Bearbeitungsvorgang auf die von und zu einem vorhandenen Eintrag contentsidentifizierten scope Einträge pathan. Geben Sie genau einen von str_replace, insert, oder replace_all. description kann bearbeitet werden: Legen Sie sie fest, um die Beschreibung des Eintrags zu ersetzen, oder lassen Sie sie aus, um die Beschreibung unverändert zu lassen.

  • Endpunkt:PATCH /api/2.1/unity-catalog/memory-stores/{full_name}/entries
  • Erforderliche Berechtigungen: WRITE MEMORY STORE im Store
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." }
  }'

Bearbeitungsvorgänge (genau eins festlegen):

Vorgang Felder Behavior
replace_all contents Überschreiben Sie den vollständigen Inhalt des Eintrags.
str_replace old_str, new_str Ersetzen Sie das einzelne Vorkommen von old_str "durch" new_str (muss genau einmal übereinstimmen).
insert insert_line, insert_text Insert insert_text; insert_line 0 = top, omitted = append to the end.

Löschen eines Speichereintrags

Löscht einen Speichereintrag, der durch scope und path.

  • Endpunkt:DELETE /api/2.1/unity-catalog/memory-stores/{full_name}/entries
  • Erforderliche Berechtigungen: WRITE MEMORY STORE im Store
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}"

Durchsuchen von Speichereinträgen

Durchsucht Speichereinträge nach Schlüsselwort über Pfad-, Inhalts- und Beschreibungsfelder hinweg.

  • Endpunkt:POST /api/2.1/unity-catalog/memory-stores/{full_name}/entries:search
  • Erforderliche Berechtigungen: READ MEMORY STORE im Store
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"
  }'

Anforderungsfelder: scope (erforderlich), query (erforderlich), (optional), path_prefixtop_k (optional; Standardwert ist 10, max. 50).

Antwortfelder für Speichereingaben

Feld Typ Beschreibung
path string Weicher Pfad des Eintrags innerhalb seines Gültigkeitsbereichs.
contents string Speichertext. In Listenantworten nicht angegeben.
description string Einzeilige Zusammenfassung.
scope string Bereich (Partition) der Eintrag gehört.
memory_store_name string Dreiteiliger Name des übergeordneten Speicherspeichers.
has_contents boolean Gibt an, ob der Eintrag nicht leer contents ist (nützlich in der Liste).
create_time string Erstellungszeitstempel (RFC 3339).
update_time string Zeitstempel der letzten Aktualisierung (RFC 3339).

Unterhaltungs-APIs

Eine Unterhaltung speichert den OpenAI-kompatiblen Unterhaltungszustand – Nachrichten, Toolanrufe und andere Elemente – in einem Speicher unter einem einzigen Bereich. Bei einer Unterhaltung wird ein Agent auf serverseitiger Sitzungszustand beibehalten und neu geladen. Sie erstellen jede Unterhaltung anhand eines Speicherspeichers (dreiteiliger Name) und einer scopeUnterhaltung, und Unterhaltungsvorgänge erfordern dieselben Berechtigungen wie der zugrunde liegende Speicher.

Vorgang Endpunkt Erforderliche Berechtigungen
Erstellen POST /api/2.1/unity-catalog/conversations WRITE MEMORY STORE im Store
Get GET /api/2.1/unity-catalog/conversations/{conversation_id} READ MEMORY STORE im Store
Update POST /api/2.1/unity-catalog/conversations/{conversation_id} WRITE MEMORY STORE im Store
Löschen DELETE /api/2.1/unity-catalog/conversations/{conversation_id} WRITE MEMORY STORE im Store

Erstellen einer Unterhaltung

Erstellt eine Unterhaltung, die an einen Speicher und einen Bereich gebunden ist.

  • Endpunkt:POST /api/2.1/unity-catalog/conversations
  • Erforderliche Berechtigungen: WRITE MEMORY STORE im Store
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" }
  }'

Anforderungsfelder:

Feld Typ Erforderlich Beschreibung
memory_store object Ja Speicherspeicher für die Sicherung der Unterhaltung.
memory_store.name string Ja Dreiteiliger vollqualifizierter Name des Speichers: catalog.schema.memory_store.
scope object Ja Bereich der Unterhaltung wird angeheftet.
scope.kind string Ja Bereichsart, z user . B. oder user_defined.
scope.value string Ja Typspezifischer Bereichswert, z. B. eine Endbenutzer-ID.
metadata object No Metadaten für anrufergesteuerte Schlüsselwert. Bis zu 16 Tasten; Tasten bis zu 64 Zeichen, Werte bis zu 512 Zeichen.
items array No Anfängliche OpenAI-Unterhaltungselemente, um die Unterhaltung zu starten (bis zu 20). Elemente ohne eine type Nachricht werden als Nachrichtenelemente gespeichert.

Abrufen einer Unterhaltung

Ruft eine Unterhaltung anhand ihrer ID ab.

  • Endpunkt:GET /api/2.1/unity-catalog/conversations/{conversation_id}
  • Erforderliche Berechtigungen: READ MEMORY STORE im Store
curl -X GET \
  "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/conversations/${CONVERSATION_ID}" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}"

Aktualisieren einer Unterhaltung

Aktualisiert die Unterhaltungen metadata.

  • Endpunkt:POST /api/2.1/unity-catalog/conversations/{conversation_id}
  • Erforderliche Berechtigungen: WRITE MEMORY STORE im Store
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" } }'

Löschen einer Unterhaltung

Löscht eine Unterhaltung und deren Elemente.

  • Endpunkt:DELETE /api/2.1/unity-catalog/conversations/{conversation_id}
  • Erforderliche Berechtigungen: WRITE MEMORY STORE im Store
curl -X DELETE \
  "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/conversations/${CONVERSATION_ID}" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}"

Unterhaltungsantwortfelder

Feld Typ Beschreibung
id string Server zugewiesene Unterhaltungs-ID.
object string Immer conversation.
created_at integer Schöpfungszeit in Unix-Epoche Sekunden.
metadata object Vom Aufrufer bereitgestellte Schlüsselwertmetadaten.

Unterhaltungselement-APIs

Elemente sind die einzelnen Nachrichten und Toolaufrufe innerhalb einer Unterhaltung. Sie folgen dem OpenAI-Unterhaltungselemente-Shape und verwenden openAI-kompatible Paginierung (after, limit, has_more).

Vorgang Endpunkt Erforderliche Berechtigungen
Erstellen von Elementen POST /api/2.1/unity-catalog/conversations/{conversation_id}/items WRITE MEMORY STORE im Store
Element abrufen GET /api/2.1/unity-catalog/conversations/{conversation_id}/items/{item_id} READ MEMORY STORE im Store
Elemente auflisten GET /api/2.1/unity-catalog/conversations/{conversation_id}/items READ MEMORY STORE im Store
Delete item (Element löschen) DELETE /api/2.1/unity-catalog/conversations/{conversation_id}/items/{item_id} WRITE MEMORY STORE im Store