View a markdown version of this page

SDK Agen Helai - Batu Dasar Amazon AgentCore

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

SDK Agen Helai

Gunakan Str ands 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 dalam contoh di bawah ini.

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

    agentcore create --project-name MemoryProject --no-agent cd MemoryProject

    Kemudian tambahkan memori dan terapkan:

    agentcore add memory --name ComprehensiveAgentMemory \ --strategies SEMANTIC,SUMMARIZATION,USER_PREFERENCE agentcore deploy
Interactive
  1. J agentcore alankan 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:

    Wizard memori: konfirmas ComprehensiveAgentMemory ikan dengan semua strategi

    Kemudian jalankan agentcore deploy untuk menyediakan memori 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

Batching pesan

Ketika batch_size lebih besar dari 1, pesan disangga dalam memori dan dikirim ke Mem AgentCore ori dalam panggilan API tunggal setelah buffer mencapai ukuran yang dikonfigurasi. Ini mengurangi jumlah permintaan API dalam percakapan throughput tinggi.

penting

Saat menggunakanbatch_size > 1, Anda harus menggunakan with blok atau panggilan close() ketika sesi selesai. Jika tidak, pesan buffer apa pun yang belum mencapai ambang batas 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: Dekat 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