メモリAPIリファレンス
このページは、マネージドエージェントメモリのREST APIリファレンスです。マネージドメモリのエンドポイント、リクエストフィールド、およびレスポンスフィールドについて説明します:
- メモリストア は、メモリのエントリのコンテナとして機能するUnity Catalogのセキュリティ保護可能なオブジェクトです。メモリストアAPIを使用して、ストアを作成および管理します。
- **メモリエントリー**は、メモリストア内に保存される個々のコンテンツです。エントリーの読み取りと書き込みを行うには、メモリエントリーAPIを使用します。
- **会話**とは、メモリストアに裏打ちされ、スコープにピン留めされた、OpenAI互換の会話状態(メッセージとツール呼び出し)のことです。Conversation APIsを使用して、会話とその項目を作成および管理します。
前提条件
Databricks CLIを使用してAPIを呼び出すOAuthトークンを生成します:
databricks auth login --host ${DATABRICKS_HOST}
databricks auth token
メモリストアAPI
メモリストアは、メモリ エントリのコンテナとして機能するUnity Catalogのセキュリティ保護可能なオブジェクトです。メモリストアは、3レベルの名前付けを使用します:catalog.schema.memory_store_name。
オペレーション | エンドポイント | 必要な権限 |
|---|---|---|
|
| |
|
| |
|
| |
|
| |
|
|
メモリストアを作成
親スキーマの下に新しいメモリストアを作成します。
- エンドポイント :
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"
}'
リクエストフィールド:
フィールド | Type | 必須 | 説明 |
|---|---|---|---|
|
| はい | メモリストアの短縮名。 |
|
| はい | 親カタログの名前。 |
|
| はい | カタログに対する親スキーマの名前です。 |
|
| No | メモリストアの人間にとってわかりやすい説明です。 |
メモリストアを取得します
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}"
クエリーパラメーター:
パラメーター | Type | 必須 | 説明 |
|---|---|---|---|
|
| はい | 親カタログ名。 |
|
| はい | 親スキーマ名。 |
|
| No | 以前のレスポンスからのページネーショントークン |
|
| No | ページあたりの最大ストア数。デフォルトは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}"
メモリストア応答フィールド
フィールド | Type | 説明 |
|---|---|---|
|
| メモリストアの短縮名です。 |
|
| 親カタログ名。 |
|
| 親スキーマ名。 |
|
| 人間が読める説明 |
|
| ストアを所有するUCプリンシパル。作成時に設定されます。 |
|
| 3部構成の完全修飾名: |
|
| サーバー割り当てのUUID。 |
|
| 常に |
|
| Unixエポックミリ秒での作成時刻。 |
|
| Unixエポックミリ秒での最終更新時刻。 |
|
| ストアを作成したプリンシパル。 |
メモリエントリAPI
メモリエントリは、メモリストア内に保存されている個々のコンテンツです。各エントリは、 スコープ と パス によって識別されます:scopeは呼び出し元が割り当てるパーティションキー(たとえば、エンドユーザーID)であり、pathは、そのスコープ内で/memories/で始まる必要があるソフトパス(たとえば、/memories/preferences.md)です。すべてのメモリエントリリクエストでscopeが必要です。
オペレーション | エンドポイント | 必要な権限 |
|---|---|---|
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
メモリのエントリを作成します
メモリストアに新しいメモリのエントリを作成します。
- エンドポイント :
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"
}'
リクエストフィールド:
フィールド | 残存有効時間: | Type | 必須 | 説明 |
|---|---|---|---|---|
| クエリー |
| はい | エントリが属するパーティション(呼び出し元によって割り当てられます。たとえば、エンドユーザーID)。 |
| 本文 |
| はい | スコープ内でエントリを識別するソフトパス。 |
| 本文 |
| No | 自由形式のメモリテキストコンテンツ。 |
| 本文 |
| No | メモリ入力の1行要約リストレスポンスのインデックスフックとして機能します。 |
メモリのエントリを取得
scopeとpathで単一のメモリ エントリを取得します。
- エンドポイント :
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}"
クエリーパラメーター:
パラメーター | Type | 必須 | 説明 |
|---|---|---|---|
|
| はい | エントリを一覧表示するスコープ(パーティション)。 |
|
| No | パスがこのプレフィックスで始まるエントリのみを返します。 |
|
| No | 1ページあたりの最大エントリ数。サーバーはページサイズに上限を設定します。 |
|
| No | 以前のレスポンスからのページネーショントークン |
リスト応答はcontents (メタデータのみ) を省略し、さらにページが残っている場合はnext_page_tokenを含めます。
メモリのエントリを更新
scopeとpathで識別される既存エントリのcontentsに、単一の編集操作を適用します。str_replace、insert、replace_allのいずれか1つを指定してください。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つを設定):
オペレーション | フィールド | 挙動 |
|---|---|---|
|
| エントリの完全な内容を上書きします。 |
|
|
|
|
|
|
メモリのエントリを削除
scopeとpathで識別されるメモリのエントリを削除します。
- エンドポイント :
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).
メモリ エントリの応答フィールド
フィールド | Type | 説明 |
|---|---|---|
|
| エントリのスコープ内のソフトパス。 |
|
| メモリテキスト。リスト応答で省略されます。 |
|
| 1行サマリー。 |
|
| エントリが属するスコープ(パーティション)。 |
|
| 親メモリストアの3部構成の名前。 |
|
| エントリに空でない |
|
| 作成タイムスタンプ(RFC 3339)。 |
|
| 最終更新タイムスタンプ (RFC 3339)。 |
会話 APIs
会話は、OpenAI互換の会話状態 — メッセージ、ツール呼び出し、その他の項目 — を、単一スコープ下のメモリストアに保存します。会話により、エージェントはセッション状態をサーバー側で永続化および再ロードします。各会話は、メモリストア (3部構成の名前) と scope に対して作成され、会話操作には基になるメモリストアと同じ権限が必要です。
オペレーション | エンドポイント | 必要な権限 |
|---|---|---|
|
| |
|
| |
|
| |
|
|
会話を作成します
メモリストアとスコープにバインドされた会話を作成します。
- エンドポイント :
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" }
}'
リクエストフィールド:
フィールド | Type | 必須 | 説明 |
|---|---|---|---|
|
| はい | 会話を支えるメモリストア。 |
|
| はい | メモリストアの3部構成の完全修飾名: |
|
| はい | 会話がピン留めされているスコープ。 |
|
| はい | スコープの種類(例: |
|
| はい | 種類固有のスコープ値(たとえば、エンドユーザーID)。 |
|
| No | 呼び出し元が制御するキーと値のメタデータです。キーは最大16個。キーは最大64文字、値は最大512文字です。 |
|
| No | 会話をシードするための初期OpenAI会話アイテム (最大20個) |
会話を取得
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}"
会話応答フィールド
フィールド | Type | 説明 |
|---|---|---|
|
| サーバーに割り当てられた会話ID。 |
|
| 常に |
|
| UNIXエポック秒での作成時間です。 |
|
| 呼び出し元が提供するキーと値のメタデータ |
会話アイテムAPIs
アイテムは、会話内の個々のメッセージとツール呼び出しです。これらはOpenAIの会話アイテムの形式に従い、OpenAI互換のページネーション(after、limit、has_more)を使用します。
オペレーション | エンドポイント | 必要な権限 |
|---|---|---|
アイテムを作成します。 |
|
|
項目を取得 |
|
|
リスト項目 |
|
|
アイテムを削除 |
|
|