

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ステップ 5: Python コードからエージェントを呼び出す
<a name="agent-tutorial-step5"></a>

このステップでは、 AWS SDK for Python (Boto)を使用して、プログラムでエージェントを操作する方法について説明します。このサンプルコードでは、エージェントを呼び出すためにパラメータとして AGENT ID と ALIAS ID の両方を必要とする [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) オペレーションの使用方法を説明しています。このコードは、エージェントへのプロンプトの送信、レスポンスの処理、ストリーミングモードと非ストリーミングモードの両方のレスポンスの処理を行う方法を説明しています。これにより、Bedrock エージェントを独自の Python アプリケーションに統合できます。

詳細については、「[アプリケーションからエージェントを呼び出す](agents-invoke-agent.md)」を参照してください。

**Python コードからエージェントを呼び出すには**

1. エージェントの ID を取得します。詳細については、「[エージェントに関する情報を表示する](agents-view.md)」を参照してください。

1. エージェントのエイリアスの ID を取得します。詳細については、「[Amazon Bedrock でエージェントのエイリアスに関する情報を表示する](agents-alias-view.md)」を参照してください。

1. 以下のコードを実行します。以下を更新します。
   + **AGENT\$1ID** – エージェントの IDに置き換えます。
   + **ALIAS\$1ID** – エージェントのエイリアス ID に置き換えます。
   + **REGION** – など、エージェントを作成した AWS リージョン`us-east-1`。

   エージェントからのレスポンスをストリーミングするには、`streamFinalResponse` の値を `True` に変更します。

   ```
   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",
               region_name="REGION") 
       
       agent_id = "AGENT_ID"
       alias_id = "ALIAS_ID"
       session_id = "123456"
       prompt = "What's the current time?"
   
       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)})
   ```