

# Menyimpan dan mengambil wawasan
<a name="long-term-saving-and-retrieving-insights"></a>

Setelah Anda mengonfigurasi AgentCore Memori dengan setidaknya satu strategi memori jangka panjang dan strateginya AKTIF, layanan akan secara otomatis mulai memproses data percakapan untuk mengekstrak dan menyimpan wawasan. Proses ini melibatkan dua langkah berbeda: menyimpan percakapan mentah dan kemudian mengambil wawasan terstruktur setelah diproses.

## Langkah 1: Simpan acara percakapan untuk memicu ekstraksi
<a name="long-term-step-1-save-conversational-events"></a>

Seluruh proses memori jangka panjang dipicu ketika Anda menyimpan data percakapan ke memori jangka pendek menggunakan `create_event` operasi. Setiap kali Anda merekam suatu peristiwa, Anda menyediakan bahan baku baru untuk strategi memori aktif Anda untuk dianalisis.

**penting**  
Hanya peristiwa yang dibuat **setelah** status strategi memori menjadi yang `ACTIVE` akan diproses untuk ekstraksi memori jangka panjang. Setiap percakapan yang disimpan sebelum strategi ditambahkan dan diaktifkan tidak akan disertakan.

Contoh berikut menunjukkan cara menyimpan percakapan multi-putaran ke sumber daya memori.

 **Contoh Menyimpan percakapan sebagai serangkaian acara** 

```
#'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!")
```

## Langkah 2: Ambil wawasan yang diekstraksi
<a name="long-term-step-2-retrieve-extracted-insights"></a>

Ekstraksi dan konsolidasi ingatan jangka panjang adalah **proses asinkron yang** berjalan di latar belakang. Mungkin perlu satu menit atau lebih agar wawasan dari percakapan baru tersedia untuk diambil. Logika aplikasi Anda harus memperhitungkan penundaan ini.

Untuk mengambil wawasan terstruktur, Anda menggunakan operasi. `retrieve_memory_records` Operasi ini melakukan pencarian semantik yang kuat terhadap penyimpanan memori jangka panjang. Anda harus memberikan yang benar `namespace` yang Anda definisikan dalam strategi Anda dan `searchQuery` yang menggambarkan informasi yang Anda cari.

Contoh berikut menunjukkan cara menunggu pemrosesan dan kemudian mengambil ringkasan percakapan yang disimpan di langkah sebelumnya.

 **Contoh Tunggu dan ambil ringkasan sesi** 

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