Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Important
Fitur ini ada di Beta.
Memori agen yang dikelola memberikan agen Anda memori jangka panjang yang tahan lama dan bertahan di sepanjang percakapan. Azure Databricks menyimpan memori di Lakebase dan mengelola penyimpanan, pengindeksan, serta pencarian semantik untuk Anda, sehingga agen Anda dapat mengingat preferensi pengguna, keputusan masa lalu, dan konteks yang terkumpul tanpa Anda mengoperasikan basis data.
Note
Selama pratinjau, Anda akan ditagih untuk instance Lakebase yang menyimpan entri memori Anda. Tidak ada biaya tambahan yang berlaku untuk memori agen yang dikelola itu sendiri. Harga dapat berubah seiring berjalannya pratinjau.
Gunakan memori terkelola ketika Anda ingin agen Anda:
- Ingat preferensi pengguna, fakta, dan keputusan di berbagai percakapan terpisah.
- Personalisasi respons berdasarkan apa yang dipelajari agen dalam sesi sebelumnya.
- Bagikan pengetahuan yang terkumpul di antara agen dan proyek.
- Meningkatkan akurasi dan efisiensi dari waktu ke waktu.
Memori terkelola bekerja dengan agen yang dibangun di atas framework apa pun. Untuk riwayat percakapan jangka pendek dalam satu interaksi, gunakan managed agent sessions.
Persyaratan
- Instal Python 3.10 atau versi lebih tinggi untuk menggunakan SDK AgentKit. AgentKit SDK adalah klien Databricks Python untuk API agen yang digunakan oleh contoh-contoh di bawah ini. Anda juga dapat memanggil REST API langsung dari bahasa apa saja, tanpa perlu Python.
Cara kerja memori terkelola
Memori terkelola memiliki dua tingkat:
-
Penyimpanan memori adalah wadah yang dibatasi ruang kerja untuk memori agen. Membuat store akan secara otomatis menyiapkan penyimpanan pendukung Lakebase. Anda menyapa sebuah toko dengan
display_name. -
Entri memori adalah sebuah konten individual di sebuah toko. Setiap entri memiliki teks
contentbebas, singkatandescriptionyang digunakan untuk pengambilan, dan sekumpulan bidang yang mengatur serta mempartisinya:-
actor_id(wajib): Siapa pemilik memori, seperti pengguna akhir atau agen lain. -
session_id(opsional): mencatat dari sesi mana memori diambil, untuk pelacakan dan provenans. Biarkan kosong untuk memori yang tidak terkait dengan sesi tertentu. -
path(wajib): jalur mirip sistem file yang mengatur entri dalam sebuah aktor, seperti/preferences/response-style.md.
-
Sebuah entri diidentifikasi secara unik oleh kombinasi , actor_idsession_id, dan path.
Pengambilan Data
Ambil memori dengan dua cara:
-
Daftar entri untuk aktor, yang opsional difilter berdasarkan
session_idatau awalanpath. Gunakan ini untuk menelusuri atau menampilkan indeks apa yang diketahui agen. - Cari entri aktor dengan kueri bahasa alami. Pencarian mengembalikan entri paling relevan yang diurutkan berdasarkan skor relevansi teks penuh (BM25).
Get started
Contoh-contoh ini mengatur memori terkelola untuk agen dukungan: mereka membuat penyimpanan memori, menyimpan preferensi pengguna, dan mengingatnya dalam percakapan berikutnya. Pilih klien yang sesuai dengan proyek Anda. Penyimpanan memori display_name harus terdiri dari 3 hingga 56 karakter, dimulai dengan huruf kecil, diakhiri dengan huruf atau angka, dan hanya berisi huruf kecil, angka, dan tanda hubung.
AgentKit SDK
AgentKit SDK adalah klien Databricks Python untuk API agen, yang didistribusikan dalam databricks-agentbricks paket. Perangkat ini mengautentikasi dengan SDK WorkspaceClientDatabricks .
Instal AgentKit SDK:
pip install databricks-agentbricksBuat penyimpanan memori untuk agen Anda.
AgentKitClientMengautentikasi dengan kredensial AndaWorkspaceClient:from databricks.sdk import WorkspaceClient from databricks_agentkit import AgentKitClient client = AgentKitClient(WorkspaceClient()) memory_store = client.memory_stores.create("support-agent-memory")Simpan memori setelah agen mempelajari sesuatu yang bersifat jangka panjang tentang pengguna.
actor_idmenunjukkan memori ini milik siapa,pathmengaturnya dalam aktor tersebut, dandescriptionmeningkatkan proses temu kembali:memory_store.add( actor_id="user-123", path="/preferences/communication.md", content="Prefers email over phone. Timezone: PST. Enterprise subscription.", description="User 123 communication preferences", )Temukan kembali memori pengguna di percakapan berikutnya menggunakan pencarian bahasa alami:
results = memory_store.search(actor_id="user-123", query="communication preferences", limit=10)
REST API
Klien memanggil API REST di bawah ./api/2.0/agents/memory-stores Panggil langsung untuk bahasa selain Python.
Menghasilkan token OAuth dengan CLI Databricks:
databricks auth login --host ${DATABRICKS_HOST} export DATABRICKS_TOKEN=$(databricks auth token | jq -r .access_token)Buat penyimpanan memori untuk agen Anda:
curl -X POST "https://${DATABRICKS_HOST}/api/2.0/agents/memory-stores" \ -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \ -d '{"display_name": "support-agent-memory", "description": "Support agent memory"}'Simpan entri memori untuk pengguna.
actor_idmenunjukkan ingatan milik siapa ini,pathmengaturnya, dandescriptionmeningkatkan proses temu kembali:curl -X POST "https://${DATABRICKS_HOST}/api/2.0/agents/memory-stores/support-agent-memory/entries" \ -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \ -d '{"actor_id": "user-123", "path": "/preferences/communication.md", "content": "Prefers email over phone.", "description": "Communication preferences"}'Ingat ingatan pengguna dengan pencarian bahasa alami:
curl -X POST "https://${DATABRICKS_HOST}/api/2.0/agents/memory-stores/support-agent-memory/entries:search" \ -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \ -d '{"actor_id": "user-123", "query": "communication preferences"}'
Berikan alat memori kepada agen Anda
Agar agen dapat memutuskan kapan harus menyimpan dan mengambil kembali memori, jadikan operasi klien sebagai alat dan beri agen instruksi tentang kapan harus menggunakannya dalam prompt sistem. Tetapkan actor_id dalam kode aplikasi tepercaya berdasarkan identitas pengguna akhir yang terverifikasi. Jangan pernah membiarkan model memilih memori milik siapa yang boleh dibaca atau ditulis.
Contoh berikut membungkus AgentKit SDK memory_store dari Get started sebagai alat untuk OpenAI Agents SDK.
from agents import Agent, function_tool
def make_memory_tools(memory_store, actor_id: str):
@function_tool
def search_memory(query: str) -> str:
"""Search long-term memory for relevant facts about the user."""
results = memory_store.search(actor_id=actor_id, query=query, limit=10)
return "\n\n".join(f"{r.memory.path}: {r.memory.content}" for r in results) or "No memory found."
@function_tool
def save_memory(path: str, content: str, description: str = "") -> str:
"""Save a durable, long-term memory about the user."""
memory_store.add(actor_id=actor_id, path=path, content=content, description=description)
return f"Saved memory at {path}"
return [search_memory, save_memory]
agent = Agent(
name="Support agent",
instructions="Save durable user preferences and recall them when relevant.",
tools=make_memory_tools(memory_store, actor_id="user-123"),
)
Pola yang sama juga dapat diterapkan pada Claude Agent SDK dan kerangka kerja lainnya: bungkus operasi pencarian dan penambahan milik store sebagai jenis alat pada kerangka kerja tersebut.
Partisi dan amankan memori
Di dalam toko, actor_id adalah cara untuk membedakan ingatan milik siapa. Setiap daftar dan pencarian dibatasi ke satu actor_id, jadi pilihlah strategi yang sesuai dengan apa yang perlu diingat agen Anda:
-
Memori pribadi untuk setiap pengguna: Atur
actor_idke identitas pengguna akhir yang terverifikasi. Setiap pengguna mendapatkan partisi sendiri, dan agen hanya menarik kembali entri pengguna tersebut.- Contoh: Agen dukungan mengingat preferensi komunikasi dan tiket sebelumnya dari salah satu pengguna.
-
Memori bersama untuk grup: Atur
actor_idke kunci tetap yang Anda pilih, seperti ID tim, proyek, atau organisasi. Semua orang membaca dan menulis kenangan yang sama.- Contoh: Agen tim mengingat glosarium bersama tentang istilah perusahaan dan konvensi internal.
-
Memori dipisahkan berdasarkan hal lain: Buat
actor_iddari nilai Anda sendiri, seperti ID tenant atauuser:projectkomposit.-
Contoh: Aplikasi multi-tenant menetapkan
actor_idke{tenant}:{user}agar pengguna dari tiap pelanggan tetap terisolasi satu sama lain.
-
Contoh: Aplikasi multi-tenant menetapkan
Tetapkan actor_id dalam kode aplikasi Anda dari konteks pemanggil tepercaya: identitas pengguna akhir yang terverifikasi untuk memori per-pengguna, atau kunci tim atau proyek tepercaya untuk memori bersama. Jangan pernah biarkan model memilihnya. Jika strategi Anda bergantung pada identitas pengguna akhir, tolak permintaan yang tidak membawa identitas tersebut daripada kembali ke identitas bersama actor_id.
Warning
actor_id memisahkan memori, tetapi bukan kontrol akses. Penyimpanan memori terkelola dicakup dalam lingkup ruang kerja, sehingga setiap prinsipal yang dapat mengakses penyimpanan dapat membaca dan menulis setiap entri di semua aktor. Toko, bukan aktor, adalah batas keamanan. Untuk isolasi ketat antara tenant atau pengguna, buat penyimpanan memori terpisah per batas.
Agar principal lain, seperti service principal milik agen Anda, dapat menggunakan store, berikan akses kepadanya melalui operasi grant-permission milik store (memory_store.grant_permission(principal_id) dalam AgentKit SDK).
Limitations
- Memori terkelola hanya menyediakan memori jangka panjang. Untuk riwayat percakapan jangka pendek, lihat sesi agen terkelola.
- Pencarian adalah operasi pencarian teks lengkap (BM25) yang diurutkan berdasarkan relevansi dan mengembalikan kumpulan hasil top-N hingga 100 entri. Aplikasi ini tidak mendukung pencarian paginasi atau kesamaan vektor.
- Kontrol akses ditegakkan di tingkat toko. Kontrol akses per entri dan per aktor tidak tersedia.
- Toko
display_nameini tidak dapat diubah setelah dibuat. Hanyadescriptiondapat diperbarui.