View a markdown version of this page

Menyimpan dan mengambil wawasan - Batuan Dasar Amazon AgentCore

Menyimpan dan mengambil wawasan

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

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

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.