

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.

# Guarde y recupere información
<a name="long-term-saving-and-retrieving-insights"></a>

Una vez que haya configurado una AgentCore memoria con al menos una estrategia de memoria a largo plazo y la estrategia esté ACTIVA, el servicio comenzará a procesar automáticamente los datos de las conversaciones para extraer y almacenar información. Este proceso implica dos pasos distintos: guardar la conversación sin procesar y, a continuación, recuperar la información estructurada una vez procesada.

## Paso 1: Guarde los eventos de conversación para activar la extracción
<a name="long-term-step-1-save-conversational-events"></a>

Todo el proceso de memoria a largo plazo se activa cuando se guardan los datos de una conversación en la memoria a corto plazo mediante la `create_event` operación. Cada vez que grabas un evento, estás proporcionando nueva materia prima para que la analices tus estrategias de memoria activa.

**importante**  
Solo los eventos que se creen ** después de que ** una estrategia de memoria pase a estar en estado se `ACTIVE` procesarán para la extracción de memoria a largo plazo. No se incluirán las conversaciones almacenadas antes de añadir y activar la estrategia.

El siguiente ejemplo muestra cómo guardar una conversación de varios turnos en un recurso de memoria.

 **Ejemplo: Guardar una conversación como una serie de eventos ** 

```
#'memory_id' is the ID of your memory resource with an active summary strategy.

from bedrock_agentcore.memory.session import MemorySessionManager
from bedrock_agentcore.memory.constants import ConversationalMessage, MessageRole
import time

actor_id = "User84"
session_id = "OrderSupportSession1"

# Create session manager
session_manager = MemorySessionManager(
    memory_id=memory_id,
    region_name="us-west-2"
)

# Create a session
session = session_manager.create_memory_session(
    actor_id=actor_id,
    session_id=session_id
)

print("Capturing conversational events...")

# Add all conversation turns
session.add_turns(
    messages=[
        ConversationalMessage("Hi, I'm having trouble with my order #12345", MessageRole.USER),
        ConversationalMessage("I am sorry to hear that. Let me look up your order.", MessageRole.ASSISTANT),
        ConversationalMessage("lookup_order(order_id='12345')", MessageRole.TOOL),
        ConversationalMessage("I see your order was shipped 3 days ago. What specific issue are you experiencing?", MessageRole.ASSISTANT),
        ConversationalMessage("The package arrived damaged", MessageRole.USER),
    ]
)

print("Conversation turns added successfully!")
```

## Paso 2: Recuperar la información extraída
<a name="long-term-step-2-retrieve-extracted-insights"></a>

La extracción y consolidación de recuerdos a largo plazo es un proceso ** asincrónico ** que se ejecuta en segundo plano. La información de una nueva conversación puede tardar un minuto o más en estar disponible para su recuperación. La lógica de su aplicación debe tener en cuenta este retraso.

Para recuperar la información estructurada, utilice la `retrieve_memory_records` operación. Esta operación realiza una potente búsqueda semántica en el almacén de memoria a largo plazo. Debe proporcionar la información correcta `namespace` que definió en su estrategia y otra `searchQuery` que describa la información que busca.

El siguiente ejemplo muestra cómo esperar a que se procese y, a continuación, recuperar un resumen de la conversación guardado en el paso anterior.

 **Ejemplo: esperar y recuperar el resumen de una sesión ** 

```
# 'session' is an existing session object that you created when adding the coversation turns
# session should be created on a memory resource with an active summary strategy.

# --- Example 1: Retrieve the user's shipping issues under a specific namespace ---
memories = session.search_long_term_memories(
    namespace=f"/summaries/{actor_id}/{session_id}/",
    query="What problem did the user report with their order?",
    top_k=5
)

# --- Example 2: Retrieve the user's shipping issues under a particular namespace hierarchy (e.g.: shipping issues across multiple sessions) ---
memories = session.search_long_term_memories(
    namespace_path=f"/summaries/{actor_id}/",
    query="What problem did the user report with their order?",
    top_k=5
)

print(f"Found {len(memories)} memories:")
for memory_record in memories:
    print(f"Retrieved Issue Detail: {memory_record}")
    print("--------------------------------------------------------------------")

# Example Output:
# Retrieved Issue Detail: The user reported that their package for order #12345 arrived damaged.
```