Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Escenario: un agente de IA de atención al cliente que usa AgentCore Memory
En esta sección aprenderás a crear un agente de IA de atención al cliente que utilice AgentCore Memory para brindar asistencia personalizada manteniendo el historial de conversaciones y extrayendo información a largo plazo sobre las preferencias de los usuarios. El tema incluye ejemplos de código para la AgentCore CLI y el AWS SDK.
Pensemos en una clienta, Sarah, que contacta con el agente de inteligencia artificial de soporte de su sitio web de compras para preguntar sobre un pedido retrasado. El flujo de interacción a través de las API de AgentCore memoria tendría el siguiente aspecto:
Temas
Paso 1: Crear una AgentCore memoria
En primer lugar, se crea un recurso de memoria con capacidades de memoria a corto y largo plazo, y se configuran las estrategias para extraer la información a largo plazo.
ejemplo
Paso 2: Iniciar la sesión
Cuando Sarah inicia la conversación, el agente crea un ID de sesión nuevo y único para rastrear esta interacción por separado.
# 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}")
Paso 3: Captura el historial de la conversación
A medida que Sarah explica su problema, el agente captura cada paso de la conversación (tanto sus preguntas como las respuestas del agente). Esto rellena toda la conversación en la memoria a corto plazo y proporciona los datos sin procesar para que los procesen las estrategias de memoria a largo plazo.
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.")
Paso 4: Generar memoria a largo plazo
En segundo plano, se ejecuta el proceso de extracción asincrónica. Este proceso analiza los eventos sin procesar recientes utilizando las estrategias de memoria configuradas para extraer recuerdos a largo plazo, como resúmenes, datos semánticos o preferencias del usuario, que luego se almacenan para usarlos en el futuro.
Paso 5: Recuperar las interacciones pasadas de la memoria a corto plazo
Para brindar asistencia adaptada al contexto, el agente carga el historial de conversaciones actual. Esto ayuda al agente a entender los problemas que Sarah ha planteado en el chat en curso.
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)
Paso 6: Utilice los recuerdos a largo plazo para obtener asistencia personalizada
El agente realiza una búsqueda semántica en los recuerdos extraídos a largo plazo para encontrar información relevante sobre las preferencias, el historial de pedidos o las preocupaciones pasadas de Sarah. Esto permite que el agente brinde una asistencia altamente personalizada sin necesidad de pedirle a Sarah que repita la información que ya ha compartido en chats anteriores.
# 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}")
Este enfoque integrado permite al agente mantener un contexto detallado en todas las sesiones, reconocer a los clientes que regresan, recordar detalles importantes y ofrecer experiencias personalizadas sin problemas, lo que se traduce en una atención al cliente más rápida, natural y eficaz.