View a markdown version of this page

Organisasi memori dalam AgentCore Memori - Batuan Dasar Amazon AgentCore

Organisasi memori dalam AgentCore Memori

Anda dapat mengatur bagaimana ingatan jangka pendek dan jangka panjang diatur dalam AgentCore Memori. Ini memungkinkan Anda mengisolasi ingatan berdasarkan sesi dan aktor. Untuk memori jangka panjang, Anda juga dapat mengatur namespace untuk mengatur memori yang diekstraksi untuk strategi memori.

  • Aktor — Mengacu pada entitas seperti pengguna akhir atau agent/user kombinasi. Misalnya, dalam chatbot dukungan pengkodean, aktor biasanya pengembang mengajukan pertanyaan. Menggunakan ID aktor membantu sistem mengetahui pengguna mana memori itu dimiliki, menjaga data setiap pengguna terpisah dan terorganisir.

  • Sesi — Percakapan tunggal atau periode interaksi antara pengguna dan agen AI. Ini mengelompokkan semua pesan dan peristiwa terkait yang terjadi selama percakapan itu.

  • Strategi (hanya Long-term memori) - Menunjukkan strategi memori jangka panjang mana yang digunakan. Pengidentifikasi strategi ini dibuat secara otomatis saat Anda membuat AgentCore Memori.

Short-term organisasi memori

Saat Anda membuat acara memori jangka pendek dengan CreateEvent, Anda menentukan ID sesi (sessionId) dan ID aktor (actorId) yang secara unik mengidentifikasi sesi dan aktor untuk acara tersebut. Kemudian, Anda dapat mengambil peristiwa untuk pengguna atau sesi dengan menggunakan operasi memori jangka pendek.

Misalnya kode, lihat Langkah 3: Menangkap riwayat percakapan.

Long-term organisasi memori

Saat Anda membuat atau memperbarui AgentCore Memori, Anda dapat secara opsional membuat satu atau lebih strategi memori. Dalam strategi, gunakan namespace untuk menentukan AgentCore Memori mengatur memori jangka panjang.

Setiap kali AgentCore Memory mengekstrak memori jangka panjang baru dengan strategi memori, memori jangka panjang disimpan di bawah namespace yang Anda atur. Ini berarti bahwa semua memori jangka panjang dicakup ke namespace spesifiknya, menjaganya tetap teratur dan mencegah konflik dengan pengguna atau sesi lain. Anda harus menggunakan format hierarkis yang dipisahkan oleh garis miring maju/, diakhiri dengan garis miring. Garis miring di belakang mencegah tabrakan awalan dalam aplikasi multi-penyewa—misalnya, gunakan sebagai pengganti. /actors/Alice/ /actors/Alice Jika diperlukan, Anda dapat menggunakan variabel yang telah ditentukan sebelumnya berikut dalam tanda kurung di namespace berdasarkan kebutuhan organisasi aplikasi Anda:

  • ActoRid — Mengidentifikasi siapa memori jangka panjang milik.

  • StrategyId — Menunjukkan strategi memori mana yang digunakan.

  • SessionID - Mengidentifikasi sesi atau percakapan mana memori berasal.

Misalnya, jika Anda mendefinisikan namespace berikut sebagai masukan ke strategi Anda saat membuat AgentCore Memori:

/strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}/

Setelah pembuatan memori, namespace ini mungkin terlihat seperti:

/strategy/summarization-93483043/actor/actor-9830m2w3/session/session-9330sds8/

Namespace dapat memiliki tingkat granularitas yang berbeda:

Tingkat organisasi yang paling terperinci

/strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}/

Granular di Level aktor di seluruh sesi

/strategy/{memoryStrategyId}/actor/{actorId}/

Granular pada Level strategi lintas aktor

/strategy/{memoryStrategyId}/

Global di semua strategi

/

Misalnya kode, lihat Mengaktifkan memori jangka panjang.

Batasi akses dengan IAM

Anda dapat membuat kebijakan IAM untuk membatasi akses memori berdasarkan cakupan yang Anda tentukan, seperti aktor, sesi, dan namespace. Gunakan cakupan sebagai kunci konteks dalam kebijakan IAM Anda.

Kebijakan berikut membatasi akses untuk mengambil memori ke namespace atau catatan tertentu di bawah hierarki NamespacePath tertentu. Dalam contoh ini, kebijakan hanya mengizinkan akses ke memori dengan ruang nama yang tepat seperti summaries/agent1/ OR dengan ruang nama di bawah hierarki NamespacePath berikut dengan, seperti atau. summaries/agent1/ summaries/agent1/session1/ summaries/agent1/session2/

{ "Version":"2012-10-17", "Statement": [ { "Sid": "SpecificNamespaceAccess", "Effect": "Allow", "Action": [ "bedrock-agentcore:RetrieveMemoryRecords" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:123456789012:memory/memory_id", "Condition": { "StringEquals": { "bedrock-agentcore:namespace": "summaries/agent1/" } } }, { "Sid": "SpecificNamespacePathAccess", "Effect": "Allow", "Action": [ "bedrock-agentcore:RetrieveMemoryRecords" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:123456789012:memory/memory_id", "Condition": { "StringLike": { "bedrock-agentcore:namespacePath": "summaries/agent1/*" } } } ] }