View a markdown version of this page

Agen Helai SDK - Batuan Dasar Amazon AgentCore

Agen Helai SDK

Gunakan Strands Agents SDK untuk integrasi tanpa batas dengan kerangka kerja agen, menyediakan manajemen memori otomatis dan pengambilan dalam agen percakapan.

Pertama, buat memori dengan ketiga strategi jangka panjang. Anda dapat melakukan ini dengan AgentCore CLI atau melalui kode SDK pada contoh di bawah ini.

contoh
AgentCore CLI
  1. Perintah memori AgentCore CLI harus dijalankan di dalam proyek agentcore yang ada. Jika Anda belum memilikinya, buat proyek terlebih dahulu:

    agentcore create --name my-agent --no-agent cd my-agent

    Kemudian tambahkan memori dan gunakan:

    agentcore add memory --name ComprehensiveAgentMemory \ --strategies SEMANTIC,SUMMARIZATION,USER_PREFERENCE agentcore deploy
Interactive
  1. Jalankan agentcore untuk membuka TUI, lalu pilih tambah dan pilih Memori:

  2. Masukkan nama memori:

    Wizard memori: masukkan ComprehensiveAgentMemory nama
  3. Pilih ketiga strategi (Semantik, Ringkasan, preferensi Pengguna):

    Wizard memori: pilih ketiga strategi memori
  4. Tinjau konfigurasi dan tekan Enter untuk mengonfirmasi:

    Panduan memori: konfirmasikan ComprehensiveAgentMemory dengan semua strategi

    Kemudian jalankan agentcore deploy untuk menyediakan memori di AWS.

Instal dependensi

pip install bedrock-agentcore pip install strands-agents

Tambahkan memori jangka pendek

from datetime import datetime from strands import Agent from bedrock_agentcore.memory import MemoryClient from bedrock_agentcore.memory.integrations.strands.config import AgentCoreMemoryConfig, RetrievalConfig from bedrock_agentcore.memory.integrations.strands.session_manager import AgentCoreMemorySessionManager client = MemoryClient(region_name="us-east-1") basic_memory = client.create_memory( name="BasicTestMemory", description="Basic memory for testing short-term functionality" ) MEM_ID = basic_memory.get('id') ACTOR_ID = "actor_id_test_%s" % datetime.now().strftime("%Y%m%d%H%M%S") SESSION_ID = "testing_session_id_%s" % datetime.now().strftime("%Y%m%d%H%M%S") # Configure memory agentcore_memory_config = AgentCoreMemoryConfig( memory_id=MEM_ID, session_id=SESSION_ID, actor_id=ACTOR_ID ) # Create session manager session_manager = AgentCoreMemorySessionManager( agentcore_memory_config=agentcore_memory_config, region_name="us-east-1" ) # Create agent agent = Agent( system_prompt="You are a helpful assistant. Use all you know about the user to provide helpful responses.", session_manager=session_manager, ) agent("I like sushi with tuna") # Agent remembers this preference agent("I like pizza") # Agent acknowledges both preferences agent("What should I buy for lunch today?") # Agent suggests options based on remembered preferences

Tambahkan memori jangka panjang dengan strategi

from bedrock_agentcore.memory import MemoryClient from strands import Agent from bedrock_agentcore.memory.integrations.strands.config import AgentCoreMemoryConfig, RetrievalConfig from bedrock_agentcore.memory.integrations.strands.session_manager import AgentCoreMemorySessionManager from datetime import datetime # Create comprehensive memory with all built-in strategies client = MemoryClient(region_name="us-east-1") comprehensive_memory = client.create_memory_and_wait( name="ComprehensiveAgentMemory", description="Full-featured memory with all built-in strategies", strategies=[ { "summaryMemoryStrategy": { "name": "SessionSummarizer", "namespaceTemplates": ["/summaries/{actorId}/{sessionId}/"] } }, { "userPreferenceMemoryStrategy": { "name": "PreferenceLearner", "namespaceTemplates": ["/preferences/{actorId}/"] } }, { "semanticMemoryStrategy": { "name": "FactExtractor", "namespaceTemplates": ["/facts/{actorId}/"] } } ] ) MEM_ID = comprehensive_memory.get('id') ACTOR_ID = "actor_id_test_%s" % datetime.now().strftime("%Y%m%d%H%M%S") SESSION_ID = "testing_session_id_%s" % datetime.now().strftime("%Y%m%d%H%M%S") # Configure memory agentcore_memory_config = AgentCoreMemoryConfig( memory_id=MEM_ID, session_id=SESSION_ID, actor_id=ACTOR_ID ) # Create session manager session_manager = AgentCoreMemorySessionManager( agentcore_memory_config=agentcore_memory_config, region_name="us-east-1" ) # Create agent agent = Agent( system_prompt="You are a helpful assistant. Use all you know about the user to provide helpful responses.", session_manager=session_manager, ) agent("I like sushi with tuna") # Agent remembers this preference agent("I like pizza") # Agent acknowledges both preferences agent("What should I buy for lunch today?") # Agent suggests options based on remembered preferences

Pengelompokan pesan

Bila batch_size lebih besar dari 1, pesan di-buffer dalam memori dan dikirim ke AgentCore Memori dalam satu panggilan API setelah buffer mencapai ukuran yang dikonfigurasi. Ini mengurangi jumlah permintaan API dalam percakapan dengan throughput tinggi.

penting

Saat menggunakanbatch_size > 1, Anda harus menggunakan with blok atau panggilan close() saat sesi selesai. Jika tidak, pesan buffer apa pun yang belum mencapai ambang batch akan hilang.

Direkomendasikan: Manajer konteks

from strands import Agent from bedrock_agentcore.memory.integrations.strands.config import AgentCoreMemoryConfig from bedrock_agentcore.memory.integrations.strands.session_manager import AgentCoreMemorySessionManager config = AgentCoreMemoryConfig( memory_id=MEM_ID, session_id=SESSION_ID, actor_id=ACTOR_ID, batch_size=10, # Buffer up to 10 messages before sending ) # The `with` block guarantees all buffered messages are flushed on exit with AgentCoreMemorySessionManager(config, region_name='us-east-1') as session_manager: agent = Agent( system_prompt="You are a helpful assistant.", session_manager=session_manager, ) agent("Hello!") agent("Tell me about AWS") # All remaining buffered messages are automatically flushed here

Alternatif: Tutup eksplisit ()

Jika Anda tidak dapat menggunakan with blok, hubungi close() secara manual:

session_manager = AgentCoreMemorySessionManager(config, region_name='us-east-1') try: agent = Agent( system_prompt="You are a helpful assistant.", session_manager=session_manager, ) agent("Hello!") finally: session_manager.close() # Flush any remaining buffered messages

Lebih banyak contoh tersedia di GitHub: https://github.com/aws/bedrock-agentcore-sdk-python/tree/main/src/bedrock_agentcore/memory/integrations/strands