Pipeline Memori Agen

Important

Fitur ini ada di Beta.

Pipeline memori membangun memori jangka panjang dari percakapan agen Anda sebelumnya. Membaca riwayat percakapan dari penyimpanan sesi, dan merangkum memori jangka panjang, seperti fakta, preferensi, dan prosedur, ke dalam penyimpanan memori. Agen Anda kemudian mengingat ingatan tersebut dalam percakapan berikutnya sama seperti ia mengingat memori yang ia simpan sendiri.

Agen yang menyimpan ingatan selama percakapan menulis satu percakapan pada satu waktu, hanya dengan konteks percakapan tersebut. Dalam banyak percakapan, ingatannya mengumpulkan entri yang tumpang tindih dan bertentangan, dan fakta yang tidak terpikir agen untuk disimpan tidak sampai ke ingatan. Pipeline memori bekerja setelah kejadian, dengan semua percakapan aktor dan memori yang ada terlihat, sehingga dapat menangkap apa yang terlewat agen dan menjaga memori tetap terkonsolidasi.

Gunakan memory pipeline ketika Anda ingin:

  • Bangun memori jangka panjang dari percakapan tanpa menambahkan alat penulisan memori ke agen Anda.
  • Isi ulang memori dari riwayat percakapan yang sudah disimpan di penyimpanan sesi.
  • Jaga catatan tetap terorganisir dari waktu ke waktu dengan menggabungkan entri yang tumpang tindih dan membagi entri yang berukuran besar.

Anda dapat menggunakan pipeline memori secara mandiri atau bersama alat memori yang dipanggil agen Anda selama percakapan.

Note

Pipeline memori menggunakan harga serverless general compute untuk pekerjaan dan harga Foundation Model Serving untuk pemanggilan model.

Requirements

  • Penyimpanan sesi yang menyimpan percakapan agen Anda, dan penyimpanan memori untuk menulis memori.
  • Akses ke kedua store untuk identitas yang membuat pipeline, termasuk izin untuk membuat tabel di database memory store. Run pipeline menggunakan identitas tersebut.
  • Izin untuk melakukan query pada model yang digunakan pipeline untuk distilasi. Tanpanya, eksekusi pipeline gagal.
  • Untuk menggunakan CLI, instal databricks-agentbricks 0.6.0 ke atas. Anda juga dapat memanggil API REST langsung dari bahasa pemrograman apa pun.

Cara kerja pipeline memori

Pipeline memori adalah sumber daya memori agen yang menghubungkan satu penyimpanan sesi ke satu penyimpanan memori. Ini tidak terkait dengan pipeline Lakeflow. Penyimpanan sesi dapat menyuplai lebih dari satu penyimpanan memori, tetapi setiap pasangan penyimpanan sesi dan penyimpanan memori hanya dapat memiliki satu pipeline.

  • Pemanggilan model melalui Unity Gateway: Pipeline memanggil model distilasinya melalui Unity Gateway.
  • Pilihan model Anda: Anda memilih model saat membuat pipeline dan dapat mengubahnya nanti. Jika Anda tidak memilih salah satu, pipeline menggunakan model default.
  • Menjalankan secara manual atau terjadwal pada komputasi tanpa server: Anda memulai menjalankan sendiri, atau mengonfigurasi pipeline agar berjalan dengan jadwal sekitar setiap 24 jam. Apa pun caranya, setiap run dijalankan sebagai pekerjaan pada komputasi serverless, menggunakan identitas yang membuat pipeline.

Setiap run pipeline memproses setiap aktor di session store secara terpisah:

  1. Penyulingan: Pipeline membaca percakapan baru aktor dan menggunakan LLM untuk mengekstrak fakta yang tahan lama darinya.
  2. Gabungkan: Pipeline mendeduplikasi fakta baru dan menggabungkannya menjadi entri memori berbasis topik di bawah actor_id yang sama di penyimpanan memori.
  3. Pertahankan: Alur menata ulang memori aktor. Ini menggabungkan entri yang tumpang tindih dan membagi entri yang terlalu besar.

Eksekusi pipeline memori menyimpan checkpoint untuk setiap ID aktor. Sebuah run memproses semua sesi aktor sejak run terakhir yang berhasil dilakukan aktor tersebut, sehingga run pertama memproses riwayat lengkap aktor tersebut. Jika satu run gagal untuk satu aktor, ia berlanjut dengan aktor lain, dan run berikutnya mencoba ulang aktor yang gagal dari checkpoint-nya.

actor_id menghubungkan kedua toko tersebut. Pipeline hanya memproses aktor yang memiliki sesi di penyimpanan sesi, dan menulis memori setiap aktor di bawah actor_id yang sama yang digunakan sesi aktor. Secara default, pipeline hanya berjalan saat Anda memulai eksekusi. Anda juga bisa menjalankannya sesuai jadwal.

Note

Pemeliharaan berlaku untuk semua entri memori aktor, termasuk entri yang disimpan langsung oleh agen Anda. Pipeline dapat menulis ulang, menggabungkan, memisahkan, atau menghapus entri apa pun di bawah actor_id yang diprosesnya.

Apa yang dipertahankan oleh sebuah pipeline

Sebuah pipeline mengekstrak fakta individual dan tahan lama dari percakapan. Dirancang untuk menjaga:

  • Fakta yang dinyatakan secara eksplisit oleh pengguna dan preferensi yang mereka ungkapkan, tanpa menyimpulkan lebih jauh dari apa yang dikatakan dalam percakapan.
  • Koreksi dan umpan balik eksplisit, seperti sumber mana yang harus digunakan untuk angka pendapatan.
  • Pengetahuan domain yang tahan lama, seperti sumber otoritatif, definisi metrik, terminologi, dan konvensi tim, serta alur kerja dan proyek yang sedang berjalan.

Dirancang untuk melewati:

  • Nilai dari sumber live yang berubah seiring waktu, seperti jumlah baris tabel saat ini. Mencatat cara menemukan atau menghitung nilai sebagai gantinya.
  • Detail yang dapat dicari agen dengan alatnya, seperti skema tabel.
  • Rahasia, seperti kata sandi, kunci API, dan token.

Get started

Contoh-contoh ini membuat pipeline memori untuk sesi agen dukungan dan penyimpanan memorinya, memulai run, dan memeriksa hasilnya. Identifikasi setiap toko berdasarkan ID-nya, pengenal yang Anda pilih saat membuat toko, atau nama sumber dayanya, seperti memory-stores/support-agent-memory. Pilih klien yang sesuai dengan proyek Anda.

Agen Bricks

Agent Bricks CLI menggunakan profil CLI Databricks yang tersimpan untuk autentikasi.

  1. Instal Agent Bricks CLI, atau tingkatkan ke 0.6.0 ke atas:

    pip install --upgrade databricks-agentbricks
    
  2. Buat pipeline yang meringkas data dari support-agent-sessions penyimpanan sesi ke dalam support-agent-memory penyimpanan memori. --model bersifat opsional. Jika Anda menghilangkannya, pipeline menggunakan model default:

    agentbricks memory pipeline create \
      --session-store support-agent-sessions \
      --memory-store support-agent-memory \
      --model system.ai.claude-sonnet-5
    

    Perintah mengembalikan nama sumber daya pipeline, dalam bentuk memory-pipelines/<pipeline-id>.

  3. Mulai menjalankan pipeline:

    agentbricks memory pipeline run <pipeline-id>
    

    Perintah mengembalikan nama sumber daya run, dalam bentuk memory-pipelines/<pipeline-id>/runs/<run-id>, dan status RUNNING-nya.

  4. CLI tidak melaporkan hasil eksekusi. Untuk memeriksanya, atur DATABRICKS_HOST ke nama host workspace Anda, buat token OAuth, dan panggil REST API:

    export DATABRICKS_TOKEN=$(databricks auth token --profile <profile> | jq -r .access_token)
    curl "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines/<pipeline-id>/runs/<run-id>" \
      -H "Authorization: Bearer ${DATABRICKS_TOKEN}"
    

REST API

CLI memanggil REST API di bawah /api/2.0/agents/memory-pipelines. Panggil langsung dari bahasa pemrograman apa pun.

  1. Menghasilkan token OAuth dengan CLI Databricks:

    databricks auth login --host ${DATABRICKS_HOST}
    export DATABRICKS_TOKEN=$(databricks auth token | jq -r .access_token)
    
  2. Buat pipeline yang menyaring memori dari support-agent-sessions dan menyimpannya ke support-agent-memory. dreamer_policy.model bersifat opsional. Jika Anda menghilangkannya, pipeline menggunakan model default:

    curl -X POST "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines" \
      -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \
      -d '{"session_store": "support-agent-sessions", "memory_store": "support-agent-memory", "dreamer_policy": {"model": "system.ai.claude-sonnet-5"}}'
    

    Bidang respons name menyimpan nama sumber daya pipeline, dalam bentuk memory-pipelines/<pipeline-id>.

  3. Mulai menjalankan pipeline:

    curl -X POST "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines/<pipeline-id>/run" \
      -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \
      -d '{}'
    

    Bidang respons name berisi nama sumber daya run, dalam bentuk memory-pipelines/<pipeline-id>/runs/<run-id>.

  4. Periksa hasil proses:

    curl "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines/<pipeline-id>/runs/<run-id>" \
      -H "Authorization: Bearer ${DATABRICKS_TOKEN}"
    

Setelah sebuah run berhasil, agen Anda dapat memanggil kembali memori baru menggunakan operasi daftar dan pencarian penyimpanan memori. Lihat Memori Agen.

Memantau jalannya pipeline

state dari sebuah run adalah salah satu dari berikut ini:

State Meaning
RUNNING Eksekusi sedang menunggu atau sedang berlangsung.
SUCCEEDED Eksekusi tersebut berhasil memproses semua pelaku.
FAILED Proses berakhir dengan kesalahan untuk satu atau lebih aktor. Bidang error menjelaskan kegagalan.
CANCELLED Proses tersebut dibatalkan sebelum selesai.

Kendalikan distilasi dengan instruksi

Instruksi memberi tahu pipeline apa yang harus disimpan dan bagaimana mengaturnya. Pipeline tersebut menerapkannya di setiap tahap. Gunakan ini untuk panduan tingkat tinggi, seperti:

  • Topik yang perlu difokuskan adalah preferensi pelanggan dan detail akun.
  • Konten untuk dilewati, seperti langkah pemecahan masalah satu kali.
  • Jalur untuk mengatur entri di bawah jalur ini.

Tanpa instruksi tata letak, pipeline mengikuti tata letak entri yang sudah ada di store, atau menghasilkan tata letak berdasarkan topik saat store kosong. Aplikasi ini tidak mengganti nama entri yang sudah ada agar sesuai dengan tata letak baru. Untuk mengubah entri tertentu, suntinglah menggunakan operasi pembaruan memory store, bukan dengan instruksi.

Anda dapat mengatur instruksi saat membuat pipeline dan mengubahnya kemudian. Run berikutnya menggunakan instruksi baru.

Agen Bricks

Untuk mengatur instruksi saat Anda membuat pipeline, berikan --instructions:

agentbricks memory pipeline create \
  --session-store support-agent-sessions \
  --memory-store support-agent-memory \
  --instructions "Focus on durable customer preferences and account details. Ignore one-off troubleshooting steps. Organize entries under /preferences/ and /account/."

Untuk memuat instruksi yang lebih panjang dari file UTF-8, berikan --instructions @<path-to-file> sebagai gantinya.

Untuk mengubah instruksi pipeline yang sudah ada, jalankan hal berikut:

agentbricks memory pipeline update <pipeline-id> \
  --instructions "Keep only durable customer preferences."

REST API

Dalam REST API, objek pipeline dreamer_policy menyimpan pengaturan distilasinya: instructions, , triggerdan model. Untuk mengatur instruksi saat membuat pipeline, sertakan instruksi tersebut di dreamer_policy.instructions:

curl -X POST "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \
  -d '{"session_store": "support-agent-sessions", "memory_store": "support-agent-memory", "dreamer_policy": {"instructions": "Focus on durable customer preferences and account details. Ignore one-off troubleshooting steps. Organize entries under /preferences/ and /account/."}}'

Untuk mengubah instruksi pipeline yang sudah ada, perbarui dreamer_policy.instructions:

curl -X PATCH "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines/<pipeline-id>?update_mask=dreamer_policy.instructions" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \
  -d '{"dreamer_policy": {"instructions": "Keep only durable customer preferences."}}'

Jalankan pipeline sesuai jadwal

Pipeline terjadwal berjalan secara otomatis sekitar setiap 24 jam. Anda dapat mengatur trigger saat membuat pipeline, atau mengubahnya nanti. Penjadwal memilih kapan run terjadwal pertama dimulai. Untuk segera merangkum percakapan yang sudah ada, mulai proses secara manual.

Agen Bricks

Untuk membuat pipeline terjadwal, berikan --trigger scheduled. Defaultnya adalah --trigger manual:

agentbricks memory pipeline create \
  --session-store support-agent-sessions \
  --memory-store support-agent-memory \
  --trigger scheduled

Untuk mengubah pemicu pipeline yang sudah ada, jalankan hal berikut:

agentbricks memory pipeline update <pipeline-id> --trigger scheduled

Jika Anda memiliki pipeline terjadwal, Anda dapat menjedanya:

agentbricks memory pipeline pause <pipeline-id>

Untuk memulai ulang run terjadwal, aktifkan lagi:

agentbricks memory pipeline resume <pipeline-id>

REST API

Untuk membuat pipeline terjadwal, atur dreamer_policy.trigger ke SCHEDULED:

curl -X POST "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \
  -d '{"session_store": "support-agent-sessions", "memory_store": "support-agent-memory", "dreamer_policy": {"trigger": "SCHEDULED"}}'

Untuk mengubah pemicu pipeline yang sudah ada, perbarui dreamer_policy.trigger ke SCHEDULED atau MANUAL_ONLY:

curl -X PATCH "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines/<pipeline-id>?update_mask=dreamer_policy.trigger" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \
  -d '{"dreamer_policy": {"trigger": "SCHEDULED"}}'

Anda juga dapat memulai proses pipeline terjadwal secara manual, selama tidak ada run lain yang sedang berlangsung.

Mengelola alur kerja

Perintah berikut mendaftarkan, memeriksa, memperbarui, dan menghapus pipeline. Setiap perintah CLI menerima baik ID pipeline maupun memory-pipelines/<pipeline-id> nama sumber daya lengkapnya.

Tugas Agent Bricks CLI REST API
Buat daftar alur agentbricks memory pipeline list GET /api/2.0/agents/memory-pipelines
Dapatkan pipeline agentbricks memory pipeline get <pipeline-id> GET /api/2.0/agents/memory-pipelines/<pipeline-id>
Memperbarui alur agentbricks memory pipeline update <pipeline-id> dengan --display-name, --model, --trigger, atau --instructions PATCH /api/2.0/agents/memory-pipelines/<pipeline-id> dengan update_maskdisplay_name, dreamer_policy.model, dreamer_policy.trigger, atau dreamer_policy.instructions
Menghapus alur agentbricks memory pipeline delete <pipeline-id> DELETE /api/2.0/agents/memory-pipelines/<pipeline-id>

Jika Anda tidak mengatur nama tampilan, pipeline akan mendapatkan nama berdasarkan nama penyimpanan sesi dan penyimpanan memori. Untuk mengalihkan pipeline kembali ke model default, perbarui modelnya ke nilai kosong, seperti --model "". Perubahan model dan instruksi berlaku untuk run berikutnya.

Menghapus pipeline akan menghapus pekerjaan pendukungnya dan menghentikan eksekusi selanjutnya. Sebuah run yang sudah berlangsung terus berlanjut hingga selesai. Entri memori yang sudah ditulis oleh pipeline tetap berada di penyimpanan memori.

Limitations

  • Penyimpanan sesi dan penyimpanan memori ditetapkan saat Anda membuat pipeline. Untuk mengubah salah satunya, hapus pipeline dan buat yang baru. Pipeline baru tidak menggunakan ulang checkpoint pipeline lama, sehingga run pertamanya memproses riwayat penuh setiap aktor, bahkan untuk pasangan store yang sama.
  • Jika sebuah pipeline sudah menghubungkan penyimpanan sesi dan penyimpanan memori yang sama, membuat pipeline lain gagal dengan ALREADY_EXISTS.
  • Sebuah pipeline memiliki satu proses yang sedang berjalan pada satu waktu. Memulai run saat run lain sedang berlangsung gagal karena error ABORTED .
  • Pipeline terjadwal berjalan sekitar setiap 24 jam. Anda tidak bisa mengatur interval atau jadwal cron yang berbeda.
  • Pipeline hanya memproses aktor yang memiliki sesi di penyimpanan sesi. Entri memori untuk aktor tanpa sesi tidak berubah.
  • Jika penyimpanan sesi memiliki lebih dari sekitar 1.200 aktor dengan ID aktor UUID, proses akan gagal. Batasnya adalah 48 KiB ID aktor yang diserialisasi, sehingga ID yang lebih pendek memungkinkan lebih banyak aktor.

Sumber daya tambahan