View a markdown version of this page

Self-managed strategi - Batuan Dasar Amazon AgentCore

Self-managed strategi

Strategi yang dikelola sendiri di Amazon Bedrock AgentCore Memory memberi Anda kendali penuh atas ekstraksi memori dan pipeline konsolidasi Anda. Dengan strategi yang dikelola sendiri, Anda dapat membangun alur kerja pemrosesan memori khusus sambil memanfaatkan Amazon AgentCore Bedrock untuk penyimpanan dan pengambilan.

Strategi yang dikelola sendiri dalam kombinasi dengan operasi batch (BatchCreateMemoryRecords,, BatchDeleteMemoryRecords) BatchUpdateMemoryRecords, memungkinkan Anda langsung memasukkan catatan yang diekstraksi ini ke dalam AgentCore memori Amazon Bedrock untuk kemampuan pencarian.

Dengan strategi yang dikelola sendiri, Anda dapat:

  • Kontrol pemanggilan pipa melalui pemicu yang dapat dikonfigurasi

  • Integrasikan dengan sistem pemrosesan eksternal

  • Menerapkan algoritma ekstraksi dan konsolidasi kustom

  • Minta model pilihan apa pun untuk ekstraksi dan konsolidasi

  • Tentukan skema catatan memori kustom, ruang nama, dan sebagainya.

  • Ingest mengekstrak catatan ke dalam memori jangka panjang Amazon Bedrock AgentCore

Buat dan gunakan strategi yang dikelola sendiri

Self-managed strategi mengikuti proses lima langkah dari konfigurasi pemicu ke penyimpanan catatan memori.

  1. Konfigurasi pemicu: Tentukan kondisi pemicu (jumlah pesan, batas waktu idle, jumlah token) yang memanggil pipeline Anda berdasarkan peristiwa memori jangka pendek

  2. Menerima pemberitahuan dan pengiriman payload: Amazon Bedrock AgentCore menerbitkan notifikasi ke topik SNS Anda dan mengirimkan data percakapan ke bucket S3 Anda saat kondisi pemicu terpenuhi

  3. Ekstrak catatan memori: Pipeline khusus Anda mengambil muatan dan menerapkan logika ekstraksi untuk mengidentifikasi memori yang relevan

  4. Mengkonsolidasikan catatan memori: Memproses memori yang diekstraksi untuk menghapus duplikat dan menyelesaikan konflik dengan catatan yang ada

  5. Simpan catatan memori: Gunakan API batch untuk menyimpan catatan memori yang diproses kembali ke memori AgentCore jangka panjang Amazon Bedrock

Prasyarat

Sebelum menyiapkan strategi yang dikelola sendiri, verifikasi bahwa Anda memiliki:

  • AWS Akun dengan izin yang sesuai

  • Akses Amazon Bedrock AgentCore

  • Pemahaman dasar tentang AWS IAM, Amazon S3, dan Amazon SNS

Menyiapkan infrastruktur

Buat AWS sumber daya yang diperlukan termasuk bucket S3, topik SNS, dan peran IAM yang AgentCore dibutuhkan Amazon Bedrock untuk mengakses sumber daya Anda.

Langkah 1: Buat ember S3

Buat bucket S3 di akun Anda di mana Amazon Bedrock AgentCore akan mengirimkan muatan acara batch.

penting

Konfigurasikan kebijakan siklus hidup untuk menghapus objek secara otomatis setelah diproses untuk mengontrol biaya.

Langkah 2: Buat topik SNS

Buat topik SNS untuk pemberitahuan pekerjaan. Gunakan topik FIFO jika memproses pesanan dalam sesi penting untuk kasus penggunaan Anda.

Langkah 3: Buat peran IAM

Buat peran IAM yang AgentCore dapat diasumsikan oleh Amazon Bedrock untuk mengakses sumber daya Anda.

Kebijakan kepercayaan

Gunakan kebijakan kepercayaan berikut:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:<region>:<account-id>:memory/*" } } } ] }

Kebijakan izin

Gunakan kebijakan izin berikut:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3PayloadDelivery", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::your-agentcore-payloads-bucket", "arn:aws:s3:::your-agentcore-payloads-bucket/*" ] }, { "Sid": "SNSNotifications", "Effect": "Allow", "Action": [ "sns:GetTopicAttributes", "sns:Publish" ], "Resource": "arn:aws:sns:us-east-1:123456789012:agentcore-memory-jobs" } ] }

Izin KMS tambahan (jika menggunakan sumber daya terenkripsi)

Jika Anda menggunakan sumber daya terenkripsi, tambahkan izin KMS berikut:

{ "Sid": "KMSPermissions", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/your-key-id" }

Buat strategi yang dikelola sendiri

Gunakan API bidang AgentCore kontrol Amazon Bedrock untuk membuat atau memperbarui AgentCore Memori dengan strategi yang dikelola sendiri.

Izin yang diperlukan

Kebutuhan pengguna atau peran IAM Anda:

  • batuan dasar agen: * izin

  • iam:PassRoleizin untuk peran eksekusi

Buat AgentCore Memori dengan strategi yang dikelola sendiri

Gunakan CreateMemory operasi AWS SDK untuk membuat AgentCore Memori yang memiliki strategi yang dikelola sendiri.

aws bedrock-agentcore-control create-memory \ --name "MyCustomMemory" \ --description "Memory with self-managed extraction strategy" \ --memory-execution-role-arn "arn:aws:iam::123456789012:role/AgentCoreMemoryRole" \ --event-expiry-duration 90 \ --memory-strategies '[ { "customMemoryStrategy": { "name": "SelfManagedExtraction", "description": "Custom extraction strategy", "configuration": { "selfManagedConfiguration": { "triggerConditions": [ { "messageBasedTrigger": { "messageCount": 6 } }, { "tokenBasedTrigger": { "tokenCount": 1000 } }, { "timeBasedTrigger": { "idleSessionTimeout": 30 } } ], "historicalContextWindowSize": 2, "invocationConfiguration": { "payloadDeliveryBucketName": "your-agentcore-payloads-bucket", "topicArn": "arn:aws:sns:us-east-1:123456789012:agentcore-memory-jobs" } } } } } ]'

Memahami pengiriman muatan

Saat kondisi pemicu terpenuhi, Amazon Bedrock AgentCore mengirimkan notifikasi dan muatan menggunakan skema tertentu.

Pesan notifikasi SNS

{ "jobId": "unique-job-identifier", "s3PayloadLocation": "s3://bucket/path/to/payload.json", "memoryId": "your-memory-id", "strategyId": "your-strategy-id" }

Struktur muatan S3

{ "requestId": "request-identifier", "accountId": "123456789012", "memoryId": "your-memory-id", "actorId": "user-or-agent-id", "sessionId": "conversation-session-id", "strategyId": "your-strategy-id", "startingTimestamp": 1634567890, "endingTimestamp": 1634567920, "currentContext": [ { "role": "USER", "content": { "text": "User message content" } }, { "role": "ASSISTANT", "content": { "text": "Assistant response" } } ], "historicalContext": [ { "role": "USER", "content": { "text": "User message content" } }, { "role": "ASSISTANT", "content": { "text": "Previous assistant response" } }, { "blob": "{}", } ] }

Bangun pipeline kustom Anda

Bagian ini menunjukkan satu pendekatan untuk membangun pipeline pemrosesan memori yang dikelola sendiri menggunakan AWS Lambda dan SQS. Ini hanyalah satu contoh - Anda dapat mengimplementasikan pipeline Anda menggunakan platform komputasi apa pun (EC2, ECS, Fargate), logika, dan kerangka pemrosesan yang memenuhi persyaratan Anda.

Langkah 1: Mengatur komputasi

  1. Buat antrian SQS dan berlangganan ke topik SNS Anda

  2. Buat fungsi AWS Lambda untuk memproses notifikasi

  3. Konfigurasikan izin peran eksekusi Lambda

Langkah 2: Proses pipa

Contoh pipa berikut terdiri dari empat komponen utama:

  1. Penanganan pemberitahuan - Memproses notifikasi SNS dan mengunduh muatan S3

  2. Ekstraksi memori - Menggunakan model batuan dasar untuk mengekstrak informasi yang relevan dari percakapan

  3. Konsolidasi memori - Mendeduplikasi dan menggabungkan memori yang diekstraksi dengan catatan yang ada

  4. Batch ingestion - Menyimpan memori yang diproses kembali ke Amazon Bedrock menggunakan API AgentCore batch

Uji implementasi Anda

  1. Membuat acara: Gunakan Amazon Bedrock AgentCore API untuk membuat acara percakapan () CreateEvent

  2. Memantau notifikasi: Verifikasi bahwa topik SNS Anda menerima notifikasi saat pemicu terpenuhi

  3. Memvalidasi pemrosesan: Periksa apakah fungsi Lambda Anda memproses muatan dengan benar dan mengekstrak catatan memori

  4. Verifikasi konsumsi: Gunakan list-memory-records untuk mengonfirmasi memori yang diekstraksi disimpan

Contoh: Membuat acara uji

aws bedrock-agentcore create-event \ --memory-id "your-memory-id" \ --actor-id "test-user" \ --session-id "test-session-1" \ --event-timestamp "2024-01-15T10:00:00Z" \ --payload '[{ "conversational": { "content": {"text": "I prefer Italian restaurants with outdoor seating"}, "role": "USER" } }]'

Contoh: Mengambil catatan memori

# List records belonging to a specific namespace aws bedrock-agentcore list-memory-records \ --memory-id "your-memory-id" \ --namespace "/actor/Jane/" # lists all records present in the given namespace # List records belonging to a particular namespace hierarchy aws bedrock-agentcore list-memory-records \ --memory-id "your-memory-id" \ --namespace-path "/" # lists all records present under the namespace hierarchy

Praktik terbaik

Ikuti praktik terbaik ini untuk kinerja, keandalan, pengoptimalan biaya, dan keamanan saat menerapkan strategi yang dikelola sendiri.

Kinerja dan keandalan

  • Berbagi SLA: SLA pembuatan catatan Long-term memori dibagikan antara Amazon Bedrock AgentCore dan pipeline yang dikelola sendiri

  • Penanganan kesalahan: Menerapkan logika coba lagi yang tepat dan antrian huruf mati untuk pemrosesan yang gagal

  • Pemantauan: Siapkan CloudWatch log, metrik, alarm untuk kegagalan dan latensi proses debug dan pemrosesan. Juga, periksa log yang dijual dari Amazon Bedrock AgentCore untuk kegagalan pengiriman muatan

Optimalisasi biaya

  • Kebijakan siklus hidup S3: Konfigurasikan penghapusan otomatis muatan yang diproses untuk mengontrol biaya penyimpanan

  • Right-sizing: Pilih memori komputasi dan pengaturan batas waktu yang sesuai berdasarkan persyaratan pemrosesan Anda

Pertimbangan pemrosesan

  • Optimalisasi pemicu: Konfigurasikan kondisi pemicu berdasarkan persyaratan kasus penggunaan Anda - seimbangkan antara efisiensi pemrosesan dan kesegaran memori dengan mempertimbangkan toleransi aplikasi Anda terhadap latensi versus biaya pemrosesan.

  • Topik FIFO: Gunakan topik FIFO SNS saat pengurutan sesi sangat penting (misalnya, untuk alur kerja ringkasan)

  • Konsolidasi memori: Menerapkan logika deduplikasi untuk mencegah penyimpanan catatan memori yang berlebihan atau bertentangan, yang mengurangi biaya penyimpanan dan meningkatkan akurasi pengambilan

  • Organisasi catatan memori: Selalu sertakan ruang nama dan ID strategi yang bermakna saat menelan catatan untuk mengaktifkan kategorisasi, pemfilteran, dan pengambilan catatan memori yang efisien

Keamanan

  • Hak istimewa paling sedikit: Berikan izin minimal yang diperlukan untuk semua peran IAM

  • Enkripsi: Gunakan enkripsi KMS untuk bucket S3 dan topik SNS yang berisi data sensitif