View a markdown version of this page

AWS SDK - Amazon Grundgestein AgentCore

AWS SDK

Verwenden Sie das AWS SDK, um direkt mit AgentCore Memory zu interagieren und die genaue Steuerung von Speicheroperationen zu gewährleisten. Die folgenden Beispiele zeigen, wie Sie mit dem AWS SDK for Python (Boto3) auf das SDK zugreifen.

Abhängigkeiten installieren

pip install boto3

Kurzzeitgedächtnis hinzufügen

import boto3 from datetime import datetime # Initialize boto3 clients control_client = boto3.client('bedrock-agentcore-control', region_name='us-east-1') data_client = boto3.client('bedrock-agentcore', region_name='us-east-1') # Create short-term memory memory_response = control_client.create_memory( name="BasicMemory", description="Basic memory for short-term event storage", eventExpiryDuration=90 ) memory_id = memory_response['memory']['id'] actor_id = f"actor_{datetime.now().strftime('%Y%m%d%H%M%S')}" session_id = f"session_{datetime.now().strftime('%Y%m%d%H%M%S')}" # Create event with multiple conversation turns event = data_client.create_event( memoryId=memory_id, actorId=actor_id, sessionId=session_id, eventTimestamp=datetime.now(), payload=[ { 'conversational': { 'content': {'text': 'I like sushi with tuna'}, 'role': 'USER' } }, { 'conversational': { 'content': {'text': 'That sounds delicious! Tuna sushi is a great choice.'}, 'role': 'ASSISTANT' } }, { 'conversational': { 'content': {'text': 'I also like pizza'}, 'role': 'USER' } }, { 'conversational': { 'content': {'text': 'Pizza is another excellent choice! You have great taste in food.'}, 'role': 'ASSISTANT' } } ] )

Fügen Sie das Langzeitgedächtnis mit Strategien hinzu

import boto3 import time from datetime import datetime # Initialize boto3 clients control_client = boto3.client('bedrock-agentcore-control', region_name='us-east-1') data_client = boto3.client('bedrock-agentcore', region_name='us-east-1') # Create long-term memory memory_response = control_client.create_memory( name=f"ComprehensiveMemory", description="Memory with strategies for long-term memory extraction", eventExpiryDuration=90, memoryStrategies=[ { 'summaryMemoryStrategy': { 'name': 'SessionSummarizer', 'namespaceTemplates': ['/summaries/{actorId}/{sessionId}/'] } }, { 'userPreferenceMemoryStrategy': { 'name': 'PreferenceLearner', 'namespaceTemplates': ['/preferences/{actorId}/'] } }, { 'semanticMemoryStrategy': { 'name': 'FactExtractor', 'namespaceTemplates': ['/facts/{actorId}/'] } } ] ) memory_id = memory_response['memory']['id'] actor_id = f"actor_{datetime.now().strftime('%Y%m%d%H%M%S')}" session_id = f"session_{datetime.now().strftime('%Y%m%d%H%M%S')}" ########## Wait for long-term memory to become active ########## while True: mem_status_response = control_client.get_memory(memoryId=memory_id) status = mem_status_response.get('memory', {}).get('status') if status == 'ACTIVE': print("Memory resource is now ACTIVE.") break elif status == 'FAILED': raise Exception("Memory resource creation FAILED.") print("Waiting for memory to become active...") time.sleep(10) # Create single event with all conversation turns event = data_client.create_event( memoryId=memory_id, actorId=actor_id, sessionId=session_id, eventTimestamp=datetime.now(), payload=[ { 'conversational': { 'content': {'text': 'I like sushi with tuna'}, 'role': 'USER' } }, { 'conversational': { 'content': {'text': 'That sounds delicious! Tuna sushi is a great choice.'}, 'role': 'ASSISTANT' } }, { 'conversational': { 'content': {'text': 'I also like pizza'}, 'role': 'USER' } }, { 'conversational': { 'content': {'text': 'Pizza is another excellent choice! You have great taste in food.'}, 'role': 'ASSISTANT' } } ] )

Die vollständige AWS SDK-Referenz zur Amazon Bedrock AgentCore AgentCore Memory API finden Sie unter: