View a markdown version of this page

Memori - Batuan Dasar Amazon AgentCore

Memori

Harness secara otomatis mempertahankan status percakapan di AgentCore Memori. Pada setiap pemanggilan, percakapan disimpan, dicakup oleh ID sesi (dan juga oleh ID aktor, jika disediakan). Pada pemanggilan berikutnya dengan ID sesi yang sama, riwayat agen dimuat dari Memori sebelum alasan - ia mengingat apa yang terjadi pada giliran sebelumnya, bahkan setelah sesi microVM yang mendasarinya telah kedaluwarsa. Anda tidak perlu menyampaikan pesan sebelumnya sendiri, cukup kirim pesan baru.

Bagaimana memori bekerja

  • Short-term memori menangkap peristiwa mentah (pesan, panggilan alat) dalam sesi. Inilah yang memberikan kontinuitas agen secara bergantian.

  • Long-term memori mengekstrak pengetahuan yang tahan lama melalui strategi yang dapat dikonfigurasi (semantik, ringkasan, preferensi pengguna, episodik, atau kustom) dan membuatnya dapat diambil melalui pencarian semantik di sesi selanjutnya.

  • Actor ID mengidentifikasi entitas yang berinteraksi dengan agen (pengguna, agen lain, atau sistem). Peristiwa memori dicakup oleh ActorId+SessionID, sehingga setiap aktor memiliki memori yang terisolasi. Long-term retrieval menggunakan ActorID sebagai variabel template di jalur namespace (misalnya/summary/{actorId}/{sessionId}/), pemetaan ke strategi memori yang dikonfigurasi.

Memori terkelola (default)

Secara default, harness menyediakan instance AgentCore Memori secara otomatis dengan default yang masuk akal (strategi ringkasan semantik +, kedaluwarsa acara 30 hari). Anda tidak perlu membuat atau mengonfigurasi apa pun - memori hanya berfungsi.

Untuk menyesuaikan memori terkelola pada waktu pembuatan:

contoh
AWS CLI/boto3
aws bedrock-agentcore-control create-harness \ --harness-name "MyHarness" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \ --memory '{"managedMemoryConfiguration": {"strategies": ["SEMANTIC", "SUMMARIZATION", "USER_PREFERENCE"], "eventExpiryDuration": 60}}'

Untuk memperbarui strategi pada harness yang ada:

aws bedrock-agentcore-control update-harness \ --harness-id "MyHarness-UuFdkQoXSL" \ --memory '{"optionalValue": {"managedMemoryConfiguration": {"strategies": ["SEMANTIC", "SUMMARIZATION", "USER_PREFERENCE", "EPISODIC"]}}}'
AgentCore CLI

Memori diaktifkan secara default saat Anda membuat harness:

agentcore create --name myagent agentcore deploy

Untuk melewati memori terkelola:

agentcore create --name myagent --no-harness-memory
Interactive

Jalankan agentcore di direktori proyek, pilih tambah, lalu pilih Harness. Wizard menyertakan langkah memori.

  1. Pada langkah Memori, pilih Tidak ada memori persisten atau Diaktifkan untuk membuat memori persisten untuk harness.

    Langkah memori: Tidak ada memori persisten atau Diaktifkan
  2. Saat memori Diaktifkan, opsi penyetelan memori tambahan muncul di Pengaturan lanjutan. Aktifkan dengan Space dan tekan Enter untuk menyetel pengambilan.

    Pengaturan lanjutan: Opsi penyetelan memori
  3. Secara opsional mengatur jumlah pesan, pengambilan K teratas, dan skor relevansi (masing-masing dapat dilewati).

    Penyetelan memori: jumlah pesan, K teratas, skor relevansi

Konfirmasikan wizard, lalu jalankan agentcore deploy untuk menerapkan.

Memori yang dikelola sepenuhnya dikelola oleh harness:

  • Konfigurasi strategi dikendalikan melaluiUpdateHarness. Anda masih dapat read/write peristiwa dan catatan kueri langsung melalui API Memori.

  • Memori terkelola tidak dapat dihapus secara langsung melalui API Memori. Untuk mengubah memori terkelola menjadi sumber daya AgentCore memori biasa, Anda dapat memisahkannya dari harness dengan dua cara:

    • Gunakan UpdateHarness untuk beralih ke BYO (agentCoreMemoryConfiguration) atau dinonaktifkan.

    • deleteManagedMemory=falseTeruskan penghapusan untuk memisahkan sebagai gantinya - DeleteHarness cascade-menghapus memori yang dikelola secara default.

Strategi yang tersedia

Strategi Deskripsi

SEMANTIC

Mengekstrak pengetahuan faktual dari percakapan, dapat diambil melalui pencarian semantik.

SUMMARIZATION

Membuat ringkasan percakapan yang berjalan, dicakup oleh aktor dan sesi.

USER_PREFERENCE

Menangkap preferensi dan pengaturan pengguna yang diungkapkan selama percakapan.

EPISODIC

Merekam peristiwa dan pengalaman penting sebagai episode terpisah.

Tambahkan memori yang ada (BYO)

Jika Anda memerlukan konfigurasi lanjutan di luar apa yang disediakan oleh memori terkelola - templat namespace khusus, enkripsi KMS, atau memori bersama di beberapa harness - lampirkan instance Memori yang ada AgentCore sebagai gantinya.

contoh
AWS CLI/boto3

Buat instance memori:

aws bedrock-agentcore-control create-memory \ --name "MyMemory" \ --event-expiry-duration 30 \ --description "Memory for my harness"

Pasang ke harness:

aws bedrock-agentcore-control update-harness \ --harness-id "MyHarness-UuFdkQoXSL" \ --memory '{"optionalValue": {"agentCoreMemoryConfiguration": {"arn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:memory/MyMemory-abc123"}}}'
AgentCore CLI
agentcore create --name myagent --memory-arn "arn:aws:bedrock-agentcore:us-west-2:123456789012:memory/MyMemory-abc123" agentcore deploy

Nonaktifkan memori

Untuk menonaktifkan memori sepenuhnya:

aws bedrock-agentcore-control update-harness \ --harness-id "MyHarness-UuFdkQoXSL" \ --memory '{"optionalValue": {"disabled": {}}}'

Per-user pelingkupan memori dengan ID aktor

Lulus actorId pada waktu pemanggilan ke memori cakupan ke pengguna tertentu. Setiap aktor mendapatkan memori jangka pendek dan jangka panjang yang terisolasi:

response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, actorId="user-123", messages=[{"role": "user", "content": [{"text": "What do you remember about my preferences?"}]}], )

Long-term pengambilan memori

Ketika harness memiliki strategi memori aktif (dikelola atau BYO), pengambilan bekerja secara otomatis - harness memperoleh konfigurasi pengambilan dari strategi aktif instance Memori. Pada setiap doa, agen menanyakan ingatan jangka panjang yang relevan dan menyuntikkannya ke dalam konteks percakapan sebelum beralasan.

Perilaku default:

  • Pengambilan dikonfigurasi secara otomatis dengan parameter default (topK=10,relevanceScore=0.2) untuk setiap namespace strategi aktif.

  • Tidak diperlukan konfigurasi manual untuk memori terkelola atau BYO.

Ganti default: Jika Anda secara eksplisit memberikan a retrievalConfig dalam konfigurasi memori BYO, nilai Anda diprioritaskan dan tidak ada derivasi otomatis yang terjadi. Ini memungkinkan Anda menyesuaikan ruang nama mana yang ditanyakan, menyesuaikan topK ataurelevanceScore, atau menonaktifkan pengambilan untuk strategi tertentu.

aws bedrock-agentcore-control update-harness \ --harness-id "MyHarness-UuFdkQoXSL" \ --memory '{"optionalValue": {"agentCoreMemoryConfiguration": {"arn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:memory/MyMemory-abc123", "retrievalConfig": {"/facts/{actorId}/": {"topK": 5, "relevanceScore": 0.5, "strategyId": "FactExtractor-abc123"}}}}}'
penting

Jika Anda memperbarui strategi instans BYO Memory (menambah atau menghapus) setelah melampirkannya ke harness, panggil UpdateHarness untuk menyegarkan konfigurasi pengambilan. Untuk memori terkelola, strategi berubah melalui UpdateHarness penyegaran konfigurasi secara otomatis.

Pemotongan konteks

Ketika riwayat percakapan tumbuh di luar jendela konteks model, harness menerapkan strategi pemotongan. Konfigurasikan ini pada harness atau override per pemanggilan.

  • sliding_window(default) - menyimpan pesan N terbaru. Sederhana dan dapat diprediksi.

  • summarization- mengompres pesan lama ke dalam ringkasan, mempertahankan lebih banyak konteks dalam token yang lebih sedikit.

  • none- tidak ada pemotongan. Gunakan hanya jika Anda mengelola ukuran konteks sendiri.

aws bedrock-agentcore-control update-harness \ --harness-id "MyHarness-UuFdkQoXSL" \ --truncation '{"strategy": "sliding_window", "slidingWindowConfig": {"numMessages": 30}}'

Pelajari lebih lanjut: AgentCore Memori, membuat penyimpanan memori, strategi memori jangka panjang.