View a markdown version of this page

Self-managed Strategie - Amazon Grundgestein AgentCore

Self-managed Strategie

Eine selbstverwaltete Strategie in Amazon Bedrock AgentCore Memory gibt Ihnen die vollständige Kontrolle über Ihre Speicherextraktions- und Konsolidierungspipelines. Mit einer selbstverwalteten Strategie können Sie benutzerdefinierte Arbeitsabläufe zur Speicherverarbeitung erstellen und gleichzeitig Amazon Bedrock AgentCore für Speicherung und Abruf nutzen.

Dank einer selbstverwalteten Strategie in Kombination mit den Batch-Operationen (BatchCreateMemoryRecords, BatchUpdateMemoryRecords, BatchDeleteMemoryRecords) können Sie diese extrahierten Datensätze für Suchfunktionen direkt in den Amazon AgentCore Bedrock-Speicher aufnehmen.

Mit selbstverwalteten Strategien können Sie:

  • Steuern Sie den Pipeline-Aufruf über konfigurierbare Trigger

  • Integrieren Sie es in externe Verarbeitungssysteme

  • Implementieren Sie benutzerdefinierte Extraktions- und Konsolidierungsalgorithmen

  • Rufen Sie ein beliebiges bevorzugtes Modell für Extraktion und Konsolidierung auf

  • Definieren Sie benutzerdefinierte Speicherdatensatzschemas, Namespaces usw.

  • Extrahierte Datensätze in den AgentCore Langzeitspeicher von Amazon Bedrock aufnehmen

Erstellen und verwenden Sie eine selbstverwaltete Strategie

Self-managed Strategien folgen einem fünfstufigen Prozess von der Triggerkonfiguration bis zur Speicherung von Speicherdatensätzen.

  1. Trigger konfigurieren: Definieren Sie Triggerbedingungen (Nachrichtenanzahl, Leerlauf-Timeout, Token-Anzahl), die Ihre Pipeline auf der Grundlage von Kurzzeitgedächtnisereignissen aufrufen

  2. Empfangen von Benachrichtigungen und Zustellung von Nutzdaten: Amazon Bedrock AgentCore veröffentlicht Benachrichtigungen zu Ihrem SNS-Thema und übermittelt Konversationsdaten an Ihren S3-Bucket, wenn die Triggerbedingungen erfüllt sind

  3. Speicherdatensätze extrahieren: Ihre benutzerdefinierte Pipeline ruft die Nutzdaten ab und wendet Extraktionslogik an, um relevante Speicher zu identifizieren

  4. Speicherdatensätze konsolidieren: Verarbeiten Sie extrahierte Speicher, um Duplikate zu entfernen und Konflikte mit vorhandenen Datensätzen zu lösen

  5. Speicherdatensätze speichern: Verwenden Sie Batch-APIs, um verarbeitete Speicherdatensätze wieder im Amazon AgentCore Bedrock-Langzeitspeicher zu speichern

Voraussetzungen

Bevor Sie selbstverwaltete Strategien einrichten, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • Ein AWS Konto mit den entsprechenden Berechtigungen

  • Zugriff auf Amazon Bedrock AgentCore

  • Grundlegendes Verständnis von AWS IAM, Amazon S3 und Amazon SNS

Richten Sie die Infrastruktur ein

Erstellen Sie die erforderlichen AWS Ressourcen, einschließlich S3-Bucket, SNS-Thema und IAM-Rolle, die Amazon Bedrock für den Zugriff auf Ihre Ressourcen AgentCore benötigt.

Schritt 1: Einen S3-Bucket erstellen

Erstellen Sie in Ihrem Konto einen S3-Bucket, in den Amazon Bedrock AgentCore gebündelte Event-Payloads liefert.

Wichtig

Konfigurieren Sie eine Lebenszyklusrichtlinie, um Objekte nach der Verarbeitung automatisch zu löschen, um die Kosten zu kontrollieren.

Schritt 2: Erstellen Sie ein SNS-Thema

Erstellen Sie ein SNS-Thema für Jobbenachrichtigungen. Verwenden Sie FIFO-Themen, wenn die Bearbeitung der Reihenfolge innerhalb von Sitzungen für Ihren Anwendungsfall wichtig ist.

Schritt 3: Erstellen Sie eine IAM-Rolle

Erstellen Sie eine IAM-Rolle, die Amazon Bedrock für den Zugriff auf Ihre Ressourcen übernehmen AgentCore kann.

Vertrauensrichtlinie

Verwenden Sie die folgende Vertrauensrichtlinie:

{ "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/*" } } } ] }

Berechtigungsrichtlinie

Verwenden Sie die folgende Berechtigungsrichtlinie:

{ "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" } ] }

Zusätzliche KMS-Berechtigungen (wenn verschlüsselte Ressourcen verwendet werden)

Wenn Sie verschlüsselte Ressourcen verwenden, fügen Sie die folgenden KMS-Berechtigungen hinzu:

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

Erstellen Sie eine selbstverwaltete Strategie

Verwenden Sie die Amazon Bedrock AgentCore Control Plane APIs, um einen AgentCore Speicher mit selbstverwalteten Strategien zu erstellen oder zu aktualisieren.

Erforderliche Berechtigungen

Ihr IAM-Benutzer oder Ihre IAM-Rolle benötigt:

  • bedrock-agentcore: * Berechtigungen

  • iam:PassRoleErlaubnis für die Ausführungsrolle

Erstellen Sie einen AgentCore Speicher mit einer selbstverwalteten Strategie

Verwenden Sie den AWS CreateMemory SDK-Vorgang, um AgentCore Speicher mit einer selbstverwalteten Strategie zu erstellen.

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" } } } } } ]'

Grundlegendes zur Payload-Bereitstellung

Wenn die Triggerbedingungen erfüllt sind, AgentCore sendet Amazon Bedrock Benachrichtigungen und Payloads mithilfe bestimmter Schemas.

SNS-Benachrichtigungsnachricht

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

Struktur der S3-Nutzlast

{ "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": "{}", } ] }

Erstellen Sie Ihre benutzerdefinierte Pipeline

In diesem Abschnitt wird ein Ansatz zum Aufbau einer selbstverwalteten Speicherverarbeitungspipeline mithilfe von AWS Lambda und SQS demonstriert. Dies ist nur ein Beispiel: Sie können Ihre Pipeline mit jeder Rechenplattform (EC2, ECS, Fargate), Logik und jedem Verarbeitungsframework implementieren, das Ihren Anforderungen entspricht.

Schritt 1: Compute einrichten

  1. Erstellen Sie eine SQS-Warteschlange und abonnieren Sie sie für Ihr SNS-Thema

  2. Erstellen Sie eine AWS Lambda-Funktion zur Verarbeitung von Benachrichtigungen

  3. Berechtigungen für Lambda-Ausführungsrollen konfigurieren

Schritt 2: Verarbeiten Sie die Pipeline

Die folgende Beispielpipeline besteht aus vier Hauptkomponenten:

  1. Umgang mit Benachrichtigungen — Verarbeitung von SNS-Benachrichtigungen und Herunterladen von S3-Payloads

  2. Speicherextraktion — Verwendung von Grundmodellen zur Extraktion relevanter Informationen aus Konversationen

  3. Speicherkonsolidierung — Deduplizierung und Zusammenführung extrahierter Speicher mit vorhandenen Datensätzen

  4. Batch-Aufnahme — Speichern verarbeiteter Erinnerungen mithilfe von Batch-APIs wieder in Amazon Bedrock AgentCore

Testen Sie Ihre Implementierung

  1. Ereignisse erstellen: Verwenden Sie die Amazon AgentCore Bedrock-APIs, um Konversationsereignisse zu erstellen () CreateEvent

  2. Benachrichtigungen überwachen: Stellen Sie sicher, dass Ihr SNS-Thema Benachrichtigungen erhält, wenn die Auslöser erfüllt werden

  3. Verarbeitung validieren: Stellen Sie sicher, dass Ihre Lambda-Funktion Payloads korrekt verarbeitet und Speicherdatensätze extrahiert

  4. Datenaufnahme überprüfen: Wird verwendet, list-memory-records um zu bestätigen, dass extrahierte Speicher gespeichert werden

Beispiel: Testereignisse erstellen

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" } }]'

Beispiel: Speicherdatensätze abrufen

# 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

Bewährte Methoden

Halten Sie sich bei der Implementierung von selbstverwalteten Strategien an diese bewährten Methoden für Leistung, Zuverlässigkeit, Kostenoptimierung und Sicherheit.

Leistung und Zuverlässigkeit

  • SLA-Sharing: Die SLA zur Generierung von Long-term Speicherdatensätzen wird von Amazon Bedrock AgentCore und Ihrer selbstverwalteten Pipeline gemeinsam genutzt

  • Fehlerbehandlung: Implementieren Sie die richtige Wiederholungslogik und Warteschlangen für fehlerhafte Verarbeitungen

  • Überwachung: Richten Sie CloudWatch Protokolle, Metriken und Alarme für Debugging- und Verarbeitungsfehler sowie Latenz ein. Überprüfen Sie außerdem die von Amazon Bedrock versendeten Protokolle auf Fehler bei der AgentCore Payload-Zustellung

Kostenoptimierung

  • S3-Lebenszyklusrichtlinien: Konfigurieren Sie das automatische Löschen verarbeiteter Payloads, um die Speicherkosten zu kontrollieren

  • Right-sizing: Wählen Sie je nach Ihren Verarbeitungsanforderungen die geeigneten Einstellungen für Rechenspeicher und Timeout

Überlegungen zur Verarbeitung

  • Trigger-Optimierung: Konfigurieren Sie Triggerbedingungen auf der Grundlage Ihrer Anwendungsfallanforderungen. Sorgen Sie für ein ausgewogenes Verhältnis zwischen Verarbeitungseffizienz und Speicheraktualität, indem Sie die Latenztoleranz Ihrer Anwendung im Vergleich zu den Verarbeitungskosten berücksichtigen.

  • FIFO-Themen: Verwenden Sie FIFO-SNS-Themen, wenn die Reihenfolge der Sitzungen entscheidend ist (z. B. für Zusammenfassungsworkflows)

  • Speicherkonsolidierung: Implementieren Sie eine Deduplizierungslogik, um das Speichern redundanter oder widersprüchlicher Speicherdatensätze zu verhindern, was die Speicherkosten senkt und die Genauigkeit beim Abrufen verbessert

  • Organisation von Speicherdatensätzen: Geben Sie immer aussagekräftige Namespaces und Strategie-IDs an, wenn Sie Datensätze aufnehmen, um Speicherdatensätze effizient zu kategorisieren, zu filtern und abzurufen

Sicherheit

  • Geringste Rechte: Gewähren Sie allen IAM-Rollen die erforderlichen Mindestberechtigungen

  • Verschlüsselung: Verwenden Sie die KMS-Verschlüsselung für S3-Buckets und SNS-Themen, die vertrauliche Daten enthalten