Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memanggil agen AgentCore Runtime
InvokeAgentRuntimeOperasi ini memungkinkan Anda mengirim permintaan ke titik akhir AgentCore Runtime tertentu yang diidentifikasi oleh Nama Sumber Daya Amazon (ARN) dan menerima respons streaming yang berisi keluaran agen. API mendukung manajemen sesi melalui pengenal sesi, memungkinkan Anda mempertahankan konteks percakapan di beberapa interaksi. Anda dapat menargetkan titik akhir agen tertentu menggunakan kualifikasi opsional.
Untuk menelep InvokeAgentRuntime on, Anda memerlukan bedrock-agentcore:InvokeAgentRuntime izin. Dalam panggilan Anda juga dapat meneruskan token pembawa yang dapat digunakan agen untuk otentikasi pengguna.
InvokeAgentRuntimeOperasi menerima payload permintaan Anda sebagai data biner hingga ukuran 100 MB dan mengembalikan respons streaming yang mengirimkan potongan data secara real-time saat agen memproses permintaan Anda. Pendekatan streaming ini memungkinkan Anda untuk menerima hasil parSIAL segera daripada menunggu respons lengkap, menjadikannya ideal untuk aplikasi interaktif.
Untuk menjalankan perintah shell (seperti menjalankan pengujian, operasi git, atau pengaturan lingkungan) dalam sesi yang sama, gunakan perintah Execute shell dalam operasi sesi AgentCore Runtime. Kedua operasi bekerja pada runtime dan sesi agen yang sama.
Jika Anda berencana mengintegrasikan agen Anda dengan OAuth, Anda tidak dapat menggunakan AWS SDK untuk menelepon. InvokeAgentRuntime Sebagai gantinya, buat permintaan HTTPS ke InvokeAgentRuntime. Untuk informasi selengkapnya, lihat Meng autentikasi dan mengotorisasi dengan Auth Inbound dan Auth Outbound.
Memanggil agen streaming
Contoh berikut menunjukkan cara menggunakan boto3 untuk memanggil runtime agen:
import boto3 import json # Initialize the Bedrock AgentCore client agent_core_client = boto3.client('bedrock-agentcore') # Prepare the payload payload = json.dumps({"prompt": prompt}).encode() # Invoke the agent response = agent_core_client.invoke_agent_runtime( agentRuntimeArn=agent_arn, runtimeSessionId=session_id, payload=payload ) # Process and print the response if "text/event-stream" in response.get("contentType", ""): # Handle streaming response content = [] for line in response["response"].iter_lines(chunk_size=10): if line: line = line.decode("utf-8") if line.startswith("data: "): line = line[6:] print(line) content.append(line) print("\nComplete response:", "\n".join(content)) elif response.get("contentType") == "application/json": # Handle standard JSON response content = [] for chunk in response.get("response", []): content.append(chunk.decode('utf-8')) print(json.loads(''.join(content))) else: # Print raw response for other content types print(response)
Memanggil agen multi-modal
Anda dapat menggunakan InvokeAgentRuntime operasi untuk mengirim permintaan multi-modal yang mencakup teks dan gambar. Contoh berikut menunjukkan cara memanggil agen multi-modal:
import boto3 import json import base64 # Read and encode image with open("image.jpg", "rb") as image_file: image_data = base64.b64encode(image_file.read()).decode('utf-8') # Prepare multi-modal payload payload = json.dumps({ "prompt": "Describe what you see in this image", "media": { "type": "image", "format": "jpeg", "data": image_data } }).encode() # Invoke the agent response = agent_core_client.invoke_agent_runtime( agentRuntimeArn=agent_arn, runtimeSessionId=session_id, payload=payload )
Manajemen sesi
InvokeAgentRuntimeOperasi mendukung manajemen sesi melalui runtimeSessionId parameter. Dengan menyediakan pengenal sesi yang sama di beberapa permintaan, Anda dapat mempertahankan konteks percakapan, memungkinkan agen untuk mereferensikan interaksi sebelumnya.
Untuk memulai percakapan baru, buat pengenal sesi unik. Untuk melanjutkan percakapan yang sudah ada, gunakan pengenal sesi yang sama dari permintaan sebelumnya. Pendekatan ini memungkinkan Anda untuk membangun aplikasi interaktif yang mempertahankan konteks dari waktu ke waktu.
Tip
Untuk hasil terbaik, gunakan UUID atau pengenal unik lainnya untuk ID sesi Anda untuk menghindari tabrakan antara pengguna atau percakapan yang berbeda.
Penanganan kesalahan
Saat menggunakan InvokeAgentRuntime operasi, Anda mungkin mengalami berbagai kesalahan. Berikut adalah beberapa kesalahan umum dan cara menanganinya:
- ValidationException
-
Terjadi ketika parameter permintaan tidak valid. Periksa apakah ARN agen Anda, ID sesi, dan payload diformat dengan benar.
- ResourceNotFoundException
-
Terjadi ketika runtime agen yang ditentukan tidak dapat ditemukan. Verifikasi bahwa agen ARN benar dan agen tersebut ada di AWS akun Anda.
- AccessDeniedException
-
Terjadi ketika Anda tidak memiliki izin yang diperlukan. Pastikan kebijakan IAM Anda menyertakan
bedrock-agentcore:InvokeAgentRuntimeizin tersebut. - ThrottlingException
-
Terjadi ketika Anda melebihi batas tarif permintaan. Terapkan logika backoff eksponensial dan coba lagi di aplikasi Anda.
- RetryableConflictException
-
Terjadi (HTTP 409) ketika operasi kedua menargetkan sesi saat layanan menyediakan atau menghancurkan sesi itu. Pesannya adalah
Session operation in progress, please retry. Kondisi ini bersifat sementara dan dapat dicoba kembali. Jendelanya singkat dan sesi yang sudah berjalan tidak terpengaruh. Coba lagi dengan mundur eksponensial pendek. SDK AWS mencoba ulang pengecualian ini secara otomatis saat percobaan ulang default diaktifkan. Jika Anda menonaktifkan percobaan ulang atau memanggil API secara langsung, coba lagi sendiri.
Terapkan penanganan kesalahan yang tepat dalam aplikasi Anda untuk memberikan pengalaman pengguna yang lebih baik dan memecahkan masalah secara efektif.
Praktik terbaik
Ikuti praktik terbaik ini saat menggunakan InvokeAgentRuntime operasi:
-
Validasi bidang prompt adalah string di titik masuk agen Anda —Payload tiba sebagai JSON yang diurai, sehingga
promptbidang dapat berupa jenis JSON apa pun (string, daftar, objek). Jika nilai non-string yang berisi bloktoolUsekonten mencapai kerangka kerja agen Anda, kerangka kerja mungkin mengeksekusi alat bernama secara langsung. Penalaran model dan evaluasi pagar pembatas dilewati. Selalu terapisinstance(prompt, str)kan sebelum memberikan masukan ke agen. Untuk informasi selengkapnya, lihat Praktik terbaik keamanan untuk AgentCore Runtime. -
Gunakan manajemen sesi untuk mempertahankan konteks percakapan untuk pengalaman pengguna yang lebih baik.
-
Memproses respons streaming secara bertahap untuk memberikan umpan balik real-time kepada pengguna.
-
Terapkan penanganan kesalahan yang tepat dan logika coba lagi untuk aplikasi yang kuat.
-
Pertimbangkan batasan ukuran payload (100 MB) saat mengirim permintaan, terutama untuk konten multi-modal.
-
Gunakan kualifikasi yang sesuai untuk menargetkan versi agen atau titik akhir tertentu.
-
Menerapkan mekanisme otentikasi bila perlu menggunakan token pembawa.
-
Gunakan
InvokeAgentRuntimeCommanduntuk operasi deterministik (tes, git, build) alih-alih merutekan mereka melalui LLM agen. Lihat Menjalankan perintah shell di sesi AgentCore Runtime.