Skenario: Agen AI dukungan pelanggan menggunakan AgentCore Memori
Di bagian ini Anda mempelajari cara membangun agen AI dukungan pelanggan yang menggunakan AgentCore Memori untuk memberikan bantuan yang dipersonalisasi dengan mempertahankan riwayat percakapan dan mengekstraksi wawasan jangka panjang tentang preferensi pengguna. Topik ini mencakup contoh kode untuk AgentCore CLI dan SDK AWS .
Pertimbangkan pelanggan, Sarah, yang terlibat dengan agen AI dukungan situs web belanja Anda untuk menanyakan tentang pesanan yang tertunda. Aliran interaksi melalui API AgentCore Memori akan terlihat seperti ini:
Topik
Langkah 1: Buat AgentCore Memori
Pertama, Anda membuat sumber daya memori dengan kemampuan memori jangka pendek dan jangka panjang, mengonfigurasi strategi untuk informasi jangka panjang apa yang akan diekstrak.
contoh
Langkah 2: Mulai sesi
Ketika Sarah memulai percakapan, agen membuat ID sesi baru dan unik untuk melacak interaksi ini secara terpisah.
# 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}")
Langkah 3: Tangkap riwayat percakapan
Saat Sarah menjelaskan masalahnya, agen menangkap setiap giliran percakapan (baik pertanyaannya maupun tanggapan agen). Ini mengisi percakapan penuh dalam memori jangka pendek dan menyediakan data mentah untuk strategi memori jangka panjang untuk diproses.
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.")
Langkah 4: Hasilkan memori jangka panjang
Di latar belakang, proses ekstraksi asinkron berjalan. Proses ini menganalisis peristiwa mentah terbaru menggunakan strategi memori yang dikonfigurasi untuk mengekstrak memori jangka panjang seperti ringkasan, fakta semantik, atau preferensi pengguna, yang kemudian disimpan untuk penggunaan masa depan.
Langkah 5: Ambil interaksi masa lalu dari memori jangka pendek
Untuk memberikan bantuan sadar konteks, agen memuat riwayat percakapan saat ini. Ini membantu agen memahami masalah apa yang diangkat Sarah dalam obrolan yang sedang berlangsung.
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)
Langkah 6: Gunakan memori jangka panjang untuk bantuan yang dipersonalisasi
Agen melakukan pencarian semantik di seluruh ingatan jangka panjang yang diekstraksi untuk menemukan wawasan yang relevan tentang preferensi Sarah, riwayat pesanan, atau masalah masa lalu. Ini memungkinkan agen memberikan bantuan yang sangat personal tanpa perlu meminta Sarah untuk mengulangi informasi yang telah dia bagikan di obrolan sebelumnya.
# 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}")
Pendekatan terintegrasi ini memungkinkan agen mempertahankan konteks yang kaya di seluruh sesi, mengenali pelanggan yang kembali, mengingat detail penting, dan memberikan pengalaman yang dipersonalisasi dengan mulus, menghasilkan dukungan pelanggan yang lebih cepat, lebih alami, dan efektif.