

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

# Memanggil agen dari aplikasi Anda
<a name="agents-invoke-agent"></a>

Gunakan agen Anda dalam aplikasi dengan membuat [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html)permintaan dengan titik akhir [runtime Agen untuk Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt). 

Secara default, respons dari `InvokeAgent` menyertakan potongan yang berisi respons lengkap dari agen, yang dapat memakan waktu beberapa saat untuk diselesaikan. Atau, Anda dapat mengonfigurasi `InvokeAgent` untuk mengalirkan respons dalam beberapa potongan yang lebih kecil. Ini mengurangi latensi respons awal dari agen. 

**Respons streaming**

Anda dapat mengaktifkan streaming respons secara opsional dengan menyetel `streamFinalResponse` ke `true` dalam konfigurasi streaming () [StreamingConfigurations](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_StreamingConfigurations.html). Aliran respons berisi beberapa peristiwa dengan potongan untuk setiap bagian respons secara berurutan.

Untuk melakukan streaming tanggapan, pastikan peran eksekusi agen menyertakan `bedrock:InvokeModelWithResponseStream` izin untuk model Agen yang dikonfigurasi. Untuk informasi selengkapnya, lihat [Izin berbasis identitas untuk peran layanan Agen](agents-permissions.md#agents-permissions-identity).

Jika agen Anda dikonfigurasi dengan Guardrail, Anda juga dapat menentukan `applyGuardrailInterval` di`StreamingConfigurations`, untuk mengontrol seberapa sering `ApplyGuardrail` panggilan dilakukan pada karakter respons keluar (misalnya, setiap 50 karakter).

Secara default, interval pagar pembatas diatur ke 50 karakter. Jika interval yang lebih besar ditentukan, respons akan dihasilkan dalam potongan yang lebih besar dengan panggilan yang lebih sedikit`ApplyGuardrail`. Contoh berikut menunjukkan respons yang dihasilkan untuk *Halo, saya adalah string input agen*.

**Contoh respons dalam potongan: Interval diatur ke 3 karakter**

```
'Hel', 'lo, ', 'I am', ' an', ' Age', 'nt'
```

Setiap potongan memiliki setidaknya 3 karakter kecuali untuk potongan terakhir.

**Contoh respons dalam potongan: Interval disetel ke 20 karakter atau lebih**

```
'Hello, I am an Agent'
```

## Meminta agen
<a name="invoke-agent-example"></a>

PythonContoh berikut menunjukkan cara memanggil [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html)operasi dan menampilkan output dari agen, serta informasi [jejak](trace-events.md) apa pun yang dihasilkan panggilan. 

**Untuk memanggil agen**

1. Buat agen dengan mengikuti instruksi di[Buat dan konfigurasikan agen secara manual](agents-create.md). Catat ID untuk agen. Jika perlu, Anda bisa mendapatkan ID nanti. Untuk informasi selengkapnya, lihat [Lihat informasi tentang agen](agents-view.md).

1. Buat alias untuk agen, dengan mengikuti instruksi di[Buat alias untuk agen Anda](deploy-agent-proc.md). Perhatikan ID alias. Jika perlu, Anda bisa mendapatkan ID nanti. Untuk informasi selengkapnya, lihat [Lihat informasi tentang alias agen di Amazon Bedrock](agents-alias-view.md).

1. Jalankan kode berikut. Perbarui nilai `agent_id` ke ID agen Anda dan nilai `alias_id` ke ID alias agen. Untuk mengalirkan respons dari agen, ubah nilai `streamFinalResponse` ke`True`. Anda juga dapat mengubah interval pagar pembatas dengan mengubah nilai. `applyGuardrailInterval`

   ```
   import boto3
   import logging
   
   from botocore.exceptions import ClientError
   
   
   logging.basicConfig(level=logging.INFO)
   logger = logging.getLogger(__name__)
   
   def invoke_agent(client, agent_id, alias_id, prompt, session_id):
           response = client.invoke_agent(
               agentId=agent_id,
               agentAliasId=alias_id,
               enableTrace=True,
               sessionId = session_id,
               inputText=prompt,
               streamingConfigurations = { 
       "applyGuardrailInterval" : 20,
         "streamFinalResponse" : False
               }
           )
           completion = ""
           for event in response.get("completion"):
               #Collect agent output.
               if 'chunk' in event:
                   chunk = event["chunk"]
                   completion += chunk["bytes"].decode()
               
               # Log trace output.
               if 'trace' in event:
                   trace_event = event.get("trace")
                   trace = trace_event['trace']
                   for key, value in trace.items():
                       logging.info("%s: %s",key,value)
   
           print(f"Agent response: {completion}")
   
   
   if __name__ == "__main__":
   
       client=boto3.client(
               service_name="bedrock-agent-runtime"
           )
       
       agent_id = "AGENT_ID"
       alias_id = "ALIAS_ID"
       session_id = "MY_SESSION_ID"
       prompt = "Prompt to send to agent"
   
       try:
   
           invoke_agent(client, agent_id, alias_id, prompt, session_id)
   
       except ClientError as e:
           print(f"Client error: {str(e)}")
           logger.error("Client error: %s", {str(e)})
   ```