View a markdown version of this page

Self-managed strategi - Batu Dasar Amazon AgentCore

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Self-managed strategi

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

Strategi yang dikelola sendiri dalam kombinasi dengan operasi batch (BatchCreateMemoryRecords,, BatchDeleteMemoryRecords) BatchUpdateMemoryRecords, memungkinkan Anda langsung menelan catatan yang diekstraksi ini ke 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 khusus

  • Memanggil model pilihan apa pun untuk ekstraksi dan konsolidasi

  • Tentukan skema rekaman memori khusus, ruang nama, dan sebagainya.

  • Menelan rekaman yang diekstraksi ke dalam memori jangka AgentCore panjang Amazon Bedrock

Membuat dan menggunakan strategi yang dikelola sendiri

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

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

  2. Menerima notifikasi dan pengiriman mu atan: 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 kustom 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. Menyimpan 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

Siapkan 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 bucket S3

Buat bucket S3 di akun Anda tempat Amazon Bedrock AgentCore akan mengirimkan payload event 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 urutan pemrosesan 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

Pengguna atau peran IAM Anda membutuhkan:

  • bedrock-agentcore: * 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

Ketika 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 hanya 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: Siapkan 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: Memproses pipa

Contoh pipa berikut terdiri dari empat komponen utama:

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

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

  3. Konsolidasi memori - Deduplicasi dan penggabungan memori yang diekstraksi dengan catatan yang ada

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

Uji implementasi Anda

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

  2. Pemantauan pemberitahuan: Verifikasi bahwa topik SNS Anda menerima pemberitahuan saat pemicu terpenuhi

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

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

Contoh: Membuat acara pengujian

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 dibagi antara Amazon Bedrock AgentCore dan pipeline Anda yang dikelola sendiri

  • Penanganan kesalahan: Terapkan logika coba ulang yang tepat dan antrian huruf mati untuk pemrosesan yang gagal

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

Optimalisasi biaya

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

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

Pertimbangan pemrosesan

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

  • Topik FIFO: Gunakan topik SNS FIFO saat pemesanan 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 yang bermakna dan ID strategi saat menelan catatan untuk memungkinkan kategorisasi, pemfilteran, dan pengambilan catatan memori yang efisien

Keamanan

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

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