メモリ API リファレンス

このページは、 マネージド エージェント メモリの REST API リファレンスです。 マネージド メモリのエンドポイント、要求フィールド、応答フィールドについて説明します。

  • メモリ ストアは、メモリ エントリのコンテナーとして機能するセキュリティ保護可能な Unity カタログです。 メモリ ストア API を使用して、ストアを作成および管理します。
  • メモリ エントリは、メモリ ストア内に格納されている個々のコンテンツです。 メモリ エントリ API を使用して、エントリの読み取りと書き込みを行います。
  • 会話は、メモリ ストアによってサポートされ、スコープにピン留めされた OpenAI 互換の会話状態 (メッセージとツール呼び出し) です。 Conversation API を使用して、会話とそのアイテムを作成および管理します。

前提条件

Databricks CLI を使用して OAuth トークンを生成し、API を呼び出します。

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

メモリ ストア API

メモリ ストアは、メモリ エントリのコンテナーとして機能するセキュリティ保護可能な Unity カタログです。 メモリ ストアでは、 catalog.schema.memory_store_nameという 3 レベルの名前付けが使用されます。

Operation エンドポイント 必要な特権
Create POST /api/2.1/unity-catalog/memory-stores CREATE MEMORY STORE 親スキーマの場合
Get GET /api/2.1/unity-catalog/memory-stores/{full_name} READ MEMORY STORE ストア上
リスト GET /api/2.1/unity-catalog/memory-stores USE SCHEMA 親スキーマの場合
Update PATCH /api/2.1/unity-catalog/memory-stores/{full_name} MANAGE ストア上
削除 DELETE /api/2.1/unity-catalog/memory-stores/{full_name} MANAGE ストア上

メモリ ストアを作成する

親スキーマの下に新しいメモリ ストアを作成します。

  • エンドポイント:POST /api/2.1/unity-catalog/memory-stores
  • 必要な特権: 親スキーマに対するCREATE MEMORY STORE
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"
  }'

要求フィールド:

フィールド タイプ 必須 説明
name string はい メモリ ストアの短い名前。 [A-Za-z0-9_-]+ 1 ~ 255 文字と一致する必要があります。 親スキーマ内で一意です。
catalog_name string はい 親カタログの名前。
schema_name string はい カタログを基準とした親スキーマの名前。
description string いいえ メモリ ストアの人間が判読できる説明。

メモリ ストアを取得する

3 部構成の完全修飾名でメモリ ストアを取得します。

  • エンドポイント:GET /api/2.1/unity-catalog/memory-stores/{full_name}
  • 必要な特権: ストアでのREAD MEMORY STORE
curl -X GET \
  "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores/main.default.agent_memory" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}"

メモリ ストアを一覧表示する

スキーマ内のメモリ ストアを一覧表示します。 結果は、呼び出し元が読み取ることができる格納にフィルター処理されます。

  • エンドポイント:GET /api/2.1/unity-catalog/memory-stores
  • 必要な特権: 親スキーマに対するUSE 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}"

クエリ パラメーター:

Parameter タイプ 必須 説明
catalog_name string はい 親カタログ名。
schema_name string はい 親スキーマ名。
page_token string いいえ 前の応答からの改ページ位置トークン。
max_results integer いいえ ページあたりの最大ストア数。 既定値は 100、最大 1000 です。

メモリ ストアを更新する

メモリ ストアの変更可能なフィールドを更新します。 現在、変更可能なのは description だけです。

  • エンドポイント:PATCH /api/2.1/unity-catalog/memory-stores/{full_name}
  • 必要な特権: ストアでのMANAGE
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"
  }'

メモリ ストアを削除する

メモリ ストアとそのすべてのメモリ エントリを削除します。

  • エンドポイント:DELETE /api/2.1/unity-catalog/memory-stores/{full_name}
  • 必要な特権: ストアでのMANAGE
curl -X DELETE \
  "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores/main.default.agent_memory" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}"

メモリ ストアの応答フィールド

フィールド タイプ 説明
name string メモリ ストアの短い名前。
catalog_name string 親カタログ名。
schema_name string 親スキーマ名。
description string 人間が判読できる説明。
owner string ストアを所有する UC プリンシパル。 作成時に設定します。
full_name string 3 部構成の完全修飾名: catalog.schema.name
memory_store_id string サーバー割り当て UUID。
securable_type string 常に MEMORY_STORE です。
created_at integer Unix エポックの作成時間 (ミリ秒)。
updated_at integer Unix エポックの最終更新時刻 (ミリ秒)。
created_by string ストアを作成したプリンシパル。

メモリ エントリ API

メモリ エントリは、メモリ ストア内に格納されている個々のコンテンツです。 各エントリは 、スコープパスによって識別されます。 scope は呼び出し元が割り当てるパーティション キー (エンド ユーザー ID など) であり、 path はそのスコープ内のソフト パスであり、 /memories/ で始まる必要があります (たとえば、 /memories/preferences.md)。 scope は、すべてのメモリ エントリ要求で必要です。

Operation エンドポイント 必要な特権
Create POST /api/2.1/unity-catalog/memory-stores/{full_name}/entries WRITE MEMORY STORE ストア上
Get GET /api/2.1/unity-catalog/memory-stores/{full_name}/entries:get READ MEMORY STORE ストア上
リスト GET /api/2.1/unity-catalog/memory-stores/{full_name}/entries READ MEMORY STORE ストア上
Update PATCH /api/2.1/unity-catalog/memory-stores/{full_name}/entries WRITE MEMORY STORE ストア上
削除 DELETE /api/2.1/unity-catalog/memory-stores/{full_name}/entries WRITE MEMORY STORE ストア上
検索 POST /api/2.1/unity-catalog/memory-stores/{full_name}/entries:search READ MEMORY STORE ストア上

メモリ エントリを作成する

メモリ ストアに新しいメモリ エントリを作成します。

  • エンドポイント:POST /api/2.1/unity-catalog/memory-stores/{full_name}/entries?scope=<scope>
  • 必要な特権: ストアでのWRITE MEMORY STORE

scope はクエリ パラメーターです。要求本文はエントリ自体です。

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

要求フィールド:

フィールド インチ タイプ 必須 説明
scope クエリ string はい 呼び出し元 (エンドユーザー ID など) によって割り当てられた、エントリが属するパーティション。
path body string はい スコープ内のエントリを識別するソフト パス。 /memories/で始まる必要があります。 不変です。
contents body string いいえ 自由形式のメモリ テキスト コンテンツ。
description body string いいえ メモリ エントリの 1 行の概要。 リスト応答のインデックス フックとして機能します。

メモリ エントリを取得する

scopepathで 1 つのメモリ エントリを取得します。

  • エンドポイント:GET /api/2.1/unity-catalog/memory-stores/{full_name}/entries:get
  • 必要な特権: ストアでのREAD MEMORY 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}"

メモリ エントリを一覧表示する

スコープ内のメモリ エントリを一覧表示します。

  • エンドポイント:GET /api/2.1/unity-catalog/memory-stores/{full_name}/entries
  • 必要な特権: ストアでのREAD MEMORY 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}"

クエリ パラメーター:

Parameter タイプ 必須 説明
scope string はい エントリを一覧表示するスコープ (パーティション)。
path_prefix string いいえ パスがこのプレフィックスで始まるエントリのみを返します。
page_size integer いいえ ページあたりの最大エントリ数。 サーバーはページ サイズを制限します。
page_token string いいえ 前の応答からの改ページ位置トークン。

一覧の応答では、 contents が省略され (メタデータのみ)、さらにページが残っている場合は next_page_token が含まれます。

メモリ エントリを更新する

既存のエントリの contentsに 1 つの編集操作を適用します。これは、 scopepathによって識別されます。 str_replaceinsert、またはreplace_allのいずれかを指定します。 description は編集可能です。エントリの説明を置き換えるか、説明を変更せずに省略するように設定します。

  • エンドポイント:PATCH /api/2.1/unity-catalog/memory-stores/{full_name}/entries
  • 必要な特権: ストアでのWRITE MEMORY 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." }
  }'

編集操作 (厳密に 1 つ設定):

Operation Fields Behavior
replace_all contents エントリの完全な内容を上書きします。
str_replace old_strnew_str old_strの単一の出現箇所をnew_strに置き換えます (1 回だけ一致する必要があります)。
insert insert_lineinsert_text insert insert_text; insert_line 0 = top, omitted = append to the end.

メモリ エントリを削除する

scopepathで識別されるメモリ エントリを削除します。

  • エンドポイント:DELETE /api/2.1/unity-catalog/memory-stores/{full_name}/entries
  • 必要な特権: ストアでのWRITE MEMORY 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}"

メモリ エントリを検索する

パス、コンテンツ、および説明フィールド間でキーワードでメモリ エントリを検索します。

  • エンドポイント:POST /api/2.1/unity-catalog/memory-stores/{full_name}/entries:search
  • 必要な特権: ストアでのREAD MEMORY 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"
  }'

要求フィールド: scope (必須)、 query (必須)、 path_prefix (省略可能)、 top_k (省略可能、既定値は 10、最大 50)。

メモリ エントリの応答フィールド

フィールド タイプ 説明
path string スコープ内のエントリのソフト パス。
contents string メモリ テキスト。 List 応答では省略されます。
description string 1 行の概要。
scope string エントリが属するスコープ (パーティション)。
memory_store_name string 親メモリ ストアの 3 部構成の名前。
has_contents boolean エントリに空でない contents があるかどうか (List で役立ちます)。
create_time string 作成タイムスタンプ (RFC 3339)。
update_time string 最終更新日時のタイムスタンプ (RFC 3339)。

Conversation API

会話では、OpenAI と互換性のある会話状態 (メッセージ、ツール呼び出し、その他の項目) が 1 つのスコープのメモリ ストアに格納されます。 会話を使用すると、エージェントはセッション状態サーバー側を保持して再読み込みします。 メモリ ストア (3 部構成の名前) と scopeに対して各会話を作成します。会話操作には、基になるメモリ ストアと同じ特権が必要です。

Operation エンドポイント 必要な特権
Create POST /api/2.1/unity-catalog/conversations WRITE MEMORY STORE ストア上
Get GET /api/2.1/unity-catalog/conversations/{conversation_id} READ MEMORY STORE ストア上
Update POST /api/2.1/unity-catalog/conversations/{conversation_id} WRITE MEMORY STORE ストア上
削除 DELETE /api/2.1/unity-catalog/conversations/{conversation_id} WRITE MEMORY STORE ストア上

会話を作成する

メモリ ストアとスコープにバインドされた会話を作成します。

  • エンドポイント:POST /api/2.1/unity-catalog/conversations
  • 必要な特権: ストアでのWRITE MEMORY 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" }
  }'

要求フィールド:

フィールド タイプ 必須 説明
memory_store object はい 会話をサポートするメモリ ストア。
memory_store.name string はい メモリ ストアの 3 部構成の完全修飾名: catalog.schema.memory_store
scope object はい 会話のピン留め対象のスコープ。
scope.kind string はい スコープの種類 ( useruser_definedなど)。
scope.value string はい 種類固有のスコープ値 (エンド ユーザー ID など)。
metadata object いいえ 呼び出し元が制御するキーと値のメタデータ。 最大 16 個のキー。キーは最大 64 文字、値は最大 512 文字です。
items array いいえ 会話をシードするための最初の OpenAI 会話アイテム (最大 20)。 typeのないアイテムは、メッセージ アイテムとして格納されます。

会話を取得する

ID で会話を取得します。

  • エンドポイント:GET /api/2.1/unity-catalog/conversations/{conversation_id}
  • 必要な特権: ストアでのREAD MEMORY STORE
curl -X GET \
  "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/conversations/${CONVERSATION_ID}" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}"

会話を更新する

会話の metadataを更新します。

  • エンドポイント:POST /api/2.1/unity-catalog/conversations/{conversation_id}
  • 必要な特権: ストアでのWRITE MEMORY 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" } }'

会話を削除する

会話とそのアイテムを削除します。

  • エンドポイント:DELETE /api/2.1/unity-catalog/conversations/{conversation_id}
  • 必要な特権: ストアでのWRITE MEMORY STORE
curl -X DELETE \
  "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/conversations/${CONVERSATION_ID}" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}"

会話の応答フィールド

フィールド タイプ 説明
id string サーバー割り当て会話 ID。
object string 常に conversation です。
created_at integer Unix エポック秒での作成時間。
metadata object 呼び出し元が指定したキー値メタデータ。

会話アイテム API

アイテムは、会話内の個々のメッセージとツール呼び出しです。 OpenAI 会話項目の図形に従い、OpenAI 互換の改ページ位置 (afterlimithas_more) を使用します。

Operation エンドポイント 必要な特権
アイテムの作成 POST /api/2.1/unity-catalog/conversations/{conversation_id}/items WRITE MEMORY STORE ストア上
項目を取得する GET /api/2.1/unity-catalog/conversations/{conversation_id}/items/{item_id} READ MEMORY STORE ストア上
リスト アイテム GET /api/2.1/unity-catalog/conversations/{conversation_id}/items READ MEMORY STORE ストア上
アイテムの削除 DELETE /api/2.1/unity-catalog/conversations/{conversation_id}/items/{item_id} WRITE MEMORY STORE ストア上