

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Salve e recupere insights
<a name="long-term-saving-and-retrieving-insights"></a>

Depois de configurar uma AgentCore memória com pelo menos uma estratégia de memória de longo prazo e a estratégia estiver ATIVA, o serviço começará automaticamente a processar dados de conversação para extrair e armazenar insights. Esse processo envolve duas etapas distintas: salvar a conversa bruta e, em seguida, recuperar os insights estruturados após serem processados.

## Etapa 1: Salve eventos de conversação para acionar a extração
<a name="long-term-step-1-save-conversational-events"></a>

Todo o processo de memória de longo prazo é acionado quando você salva dados de conversação na memória de curto prazo usando a `create_event` operação. Cada vez que você grava um evento, você está fornecendo uma nova matéria-prima para análise de suas estratégias de memória ativa.

**Importante**  
Somente os eventos criados ** após o status de ** uma estratégia de memória se tornar `ACTIVE` serão processados para extração de memória de longo prazo. Todas as conversas armazenadas antes de a estratégia ser adicionada e ativada não serão incluídas.

O exemplo a seguir mostra como salvar uma conversa de vários turnos em um recurso de memória.

 **Exemplo Salvar uma conversa como uma série 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!")
```

## Etapa 2: recuperar os insights extraídos
<a name="long-term-step-2-retrieve-extracted-insights"></a>

A extração e consolidação de memórias de longo prazo é um processo ** assíncrono executado em segundo ** plano. Pode levar um minuto ou mais para que os insights de uma nova conversa fiquem disponíveis para recuperação. A lógica do seu aplicativo deve levar em conta esse atraso.

Para recuperar os insights estruturados, você usa a `retrieve_memory_records` operação. Essa operação realiza uma pesquisa semântica poderosa no armazenamento de memória de longo prazo. Você deve fornecer o correto `namespace` que você definiu em sua estratégia e um `searchQuery` que descreva as informações que você está procurando.

O exemplo a seguir demonstra como aguardar o processamento e, em seguida, recuperar um resumo da conversa salva na etapa anterior.

 **Exemplo: Espere e recupere um resumo da sessão ** 

```
# '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.
```