Szenario: Ein KI-Agent für den Kundensupport, der AgentCore Memory verwendet
In diesem Abschnitt erfahren Sie, wie Sie einen KI-Agenten für den Kundensupport einrichten, der AgentCore Memory verwendet, um personalisierte Unterstützung zu bieten, indem er den Konversationsverlauf verwaltet und langfristige Erkenntnisse über Benutzerpräferenzen gewinnt. Das Thema enthält Codebeispiele für die AgentCore CLI und das AWS SDK.
Stellen Sie sich eine Kundin namens Sarah vor, die sich beim KI-Supportmitarbeiter Ihrer Shopping-Website nach einer verspäteten Bestellung erkundigt. Der Interaktionsfluss durch die AgentCore Memory-APIs würde wie folgt aussehen:
Themen
Schritt 1: Erstellen Sie einen AgentCore Speicher
Zunächst erstellen Sie eine Speicherressource mit Funktionen für Kurzzeit- und Langzeitgedächtnis und konfigurieren die Strategien, welche Langzeitinformationen extrahiert werden sollen.
Beispiel
Schritt 2: Starten Sie die Sitzung
Wenn Sarah die Konversation initiiert, erstellt der Agent eine neue und eindeutige Sitzungs-ID, um diese Interaktion separat zu verfolgen.
# Unique identifier for the customer, Sarah sarah_actor_id = "user-sarah-123" # Unique identifier for this specific support session support_session_id = "customer-support-session-1" print(f"Session started for Actor ID: {sarah_actor_id}, Session ID: {support_session_id}")
Schritt 3: Erfassen Sie den Konversationsverlauf
Während Sarah ihr Problem erklärt, zeichnet der Agent jede Runde der Konversation auf (sowohl ihre Fragen als auch die Antworten des Agenten). Dadurch wird die gesamte Konversation im Kurzzeitgedächtnis gespeichert und die Rohdaten für die Verarbeitung der Langzeitgedächtnisstrategien bereitgestellt.
print("Capturing conversational events...") full_conversation_payload = [ { 'conversational': { 'role': 'USER', 'content': {'text': "Hi, my order #ABC-456 is delayed."} } }, { 'conversational': { 'role': 'ASSISTANT', 'content': {'text': "I'm sorry to hear that, Sarah. Let me check the status for you."} } }, { 'conversational': { 'role': 'USER', 'content': {'text': "By the way, for future orders, please always use FedEx. I've had issues with other carriers."} } }, { 'conversational': { 'role': 'ASSISTANT', 'content': {'text': "Thank you for that information. I have made a note to use FedEx for your future shipments."} } } ] data_client.create_event( memoryId=memory_id, actorId=sarah_actor_id, sessionId=support_session_id, eventTimestamp=datetime.now(), payload=full_conversation_payload ) print("Conversation history has been captured in short-term memory.")
Schritt 4: Generieren Sie das Langzeitgedächtnis
Im Hintergrund läuft der asynchrone Extraktionsprozess. Dieser Prozess analysiert die jüngsten Rohereignisse mithilfe Ihrer konfigurierten Speicherstrategien, um Langzeiterinnerungen wie Zusammenfassungen, semantische Fakten oder Benutzerpräferenzen zu extrahieren, die dann für die future Verwendung gespeichert werden.
Schritt 5: Rufen Sie vergangene Interaktionen aus dem Kurzzeitgedächtnis ab
Um kontextsensitive Unterstützung zu bieten, lädt der Agent den aktuellen Konversationsverlauf. Dies hilft dem Agenten zu verstehen, welche Probleme Sarah im laufenden Chat angesprochen hat.
print("\nRetrieving current conversation history from short-term memory...") response = data_client.list_events( memoryId=memory_id, actorId=sarah_actor_id, sessionId=support_session_id, maxResults=10 ) # Reverse the list of events to display them in chronological order event_list = reversed(response.get('events', [])) for event in event_list: print(event)
Schritt 6: Nutzen Sie Langzeiterinnerungen für persönliche Unterstützung
Der Agent führt eine semantische Suche in den extrahierten Langzeiterinnerungen durch, um relevante Erkenntnisse über Sarahs Vorlieben, Bestellhistorie oder frühere Anliegen zu finden. Auf diese Weise kann der Agent hochgradig personalisierte Unterstützung bieten, ohne Sarah bitten zu müssen, Informationen zu wiederholen, die sie bereits in früheren Chats geteilt hat.
# Wait for the asynchronous extraction to finish print("\nWaiting 60 seconds for long-term memory processing...") time.sleep(60) # --- Example 1: Retrieve the user's shipping preference --- print("\nRetrieving user preferences from long-term memory...") preference_response = data_client.retrieve_memory_records( memoryId=memory_id, namespace=f"/users/{sarah_actor_id}/preferences/", searchCriteria={"searchQuery": "Does the user have a preferred shipping carrier?"} ) for record in preference_response.get('memoryRecordSummaries', []): print(f"- Retrieved Record: {record}") # --- Example 2: Broad query about the user's issue (across sessions with the help of namespacePath) --- print("\nPerforming a broad search for user's reported issues...") issue_response = data_client.retrieve_memory_records( memoryId=memory_id, namespacePath=f"/summaries/{sarah_actor_id}/", searchCriteria={"searchQuery": "What problem did the user report with their order?"} ) for record in issue_response.get('memoryRecordSummaries', []): print(f"- Retrieved Record: {record}")
Dieser integrierte Ansatz ermöglicht es dem Agenten, während der gesamten Sitzung einen umfassenden Kontext beizubehalten, wiederkehrende Kunden zu erkennen, sich an wichtige Details zu erinnern und personalisierte Erlebnisse nahtlos bereitzustellen, was zu einem schnelleren, natürlicheren und effektiveren Kundensupport führt.