View a markdown version of this page

モデルと手順 - Amazon Bedrock AgentCore

モデルと手順

モデル、システムプロンプト、ツール、メモリ、実行制限のデフォルトを使用してハーネスを一度定義します。実験する場合は、1 回の呼び出しでこれらを上書きします。ハーネスリソースは変更されず、その呼び出しのみがオーバーライドを使用します。

これは設定ベースのモデルの中核です。作成時にデフォルト、呼び出し時に上書きされます。N model/prompt/toolの組み合わせは、1 回再デプロイするのにかかる時間内にテストできます。

AWS CLI/boto3

のデフォルトcreate-harness:

aws bedrock-agentcore-control create-harness \ --harness-name "research-agent" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \ --system-prompt '[{"text": "You are a research assistant."}]' \ --tools '[{"type": "agentcore_browser", "name": "browser"}]'

呼び出しあたりのオーバーライド:

response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, # These apply only to this call; the harness defaults stay intact model={"bedrockModelConfig": {"modelId": "us.anthropic.claude-opus-4-5-20251101-v1:0"}}, systemPrompt=[{"text": "You are a terse research assistant. One paragraph answers only."}], tools=[ {"type": "agentcore_browser", "name": "browser"}, {"type": "agentcore_code_interpreter", "name": "code_interpreter"}, ], messages=[{"role": "user", "content": [{"text": "Summarize this paper as a bullet list."}]}], )

デフォルトを完全に変更するには、 を使用しますupdate-harness

AgentCore CLI

ハーネスを作成または更新するときにデフォルトを設定します。

# Create a project if one does not already exist. agentcore create # Add a harness to the project agentcore add harness \ --name research-agent \ --model-id us.anthropic.claude-sonnet-4-6-20250514-v1:0 \ --system-prompt "You are a research assistant." \ --tools agentcore-browser agentcore deploy

呼び出しを上書きする:

# Switch the model for one call agentcore invoke --harness research-agent \ --model-id us.anthropic.claude-opus-4-5-20251101-v1:0 \ "Summarize this research paper" # Swap tools for one call agentcore invoke --harness research-agent \ --tools agentcore-browser,code-interpreter \ "Plot the citation counts as a bar chart"

呼び出し時に上書き可能: --model-id--tools、、--system-prompt--max-iterations、、--max-tokens--harness-timeout--skills--allowed-tools、、--actor-id--verbose を追加して、デバッグ用の raw ストリーミング JSON イベントを出力します。

デフォルトを完全に変更するには、 を編集app/<name>/harness.jsonして実行しますagentcore deploy

Interactive

プロジェクトディレクトリagentcoreで を実行して TUI を開き、追加 を選択し、ハーネス を選択します。ウィザードでは、モデルと命令の設定をステップバイステップで説明します。

  1. モデルプロバイダーを選択します。Amazon Bedrock、OpenAI、Google Gemini、および LiteLLM 互換プロバイダーがサポートされており、それぞれにデフォルトモデルがあります。

    ハーネスの追加ウィザード: モデルプロバイダーを選択する
  2. API 形式を選択します。Amazon Bedrock と OpenAI の場合は、コンバースストリーム (デフォルト)、レスポンス、またはチャット完了 を選択します。レスポンスとチャットの完了は Bedrock Mantle によって提供されます。

    ハーネスの追加ウィザード: API 形式を選択する
  3. LiteLLM を選択すると、ウィザードは LiteLLM 固有のフィールド - オプションの API キー ARN、OpenAI 互換ゲートウェイ用のオプションの API ベース URL、およびプロバイダーに渡されるオプションの追加のパラメータの入力を求めます。

    ハーネスの追加ウィザード: LiteLLM API キー ARN、API ベース、および追加のパラメータステップ

残りのステップ (環境、メモリ、詳細設定) を続行して確認します。次に、 を実行して適用agentcore deployします。

任意のモデルを使用し、セッションの途中で切り替える

Amazon Bedrock、OpenAI、Google Gemini、または OpenAI 互換エンドポイントを含む LiteLLM を介した他のプロバイダーのモデルを使用します。同じセッションのターン間でプロバイダーを切り替えると、会話が続行されます。コンテキストが引き継がれます。

モデルを指定しない場合、ハーネスはデフォルトで Amazon Bedrock (global.anthropic.claude-sonnet-4-6) の Anthropic の Claude Sonnet 4.6 になり、すぐに開始できます。呼び出しごとにデフォルトまたはオーバーライドをいつでも変更できます。

API キー認証情報プロバイダーとして、サードパーティーの API キーを AgentCore Identity のトークンボールトに保存します。ハーネスは呼び出し時にキーをプルします。エージェントコードに raw 認証情報が表示されることはありません。

AWS CLI/boto3

AgentCore Identity に API キーを登録します。

aws bedrock-agentcore-control create-api-key-credential-provider \ --name my-openai-key \ --api-key "$OPENAI_API_KEY"

プロバイダーを同じセッションのターン間で切り替えます。

# Turn 1: Bedrock (native Converse API) response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, model={"bedrockModelConfig": {"modelId": "us.anthropic.claude-sonnet-4-5-20250514-v1:0"}}, messages=[{"role": "user", "content": [{"text": "Analyze this codebase."}]}], ) # Turn 2: Bedrock Mantle (OpenAI Responses format, no API key needed) response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, model={ "bedrockModelConfig": { "modelId": "openai.gpt-4o", "apiFormat": "responses", "additionalParams": {"reasoning": {"effort": "high"}}, } }, messages=[{"role": "user", "content": [{"text": "Now suggest fixes for the top three issues."}]}], ) # Turn 3: OpenAI model via Bedrock Mantle (no API key needed) response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, model={ "openAiModelConfig": { "modelId": "gpt-5.4", "apiFormat": "responses", "endpoint": {"bedrockMantle": {}}, } }, messages=[{"role": "user", "content": [{"text": "Summarize the fixes as a bullet list."}]}], )
ヒント

openAiModelConfig"endpoint": {"bedrockMantle": {}}を使用して、Amazon Bedrock Mantle を介して OpenAI モデルを呼び出します。API キーは必要ありません。 は実行ロールの認証情報を使用します。OpenAI エンドポイントを直接呼び出すapiKeyArnときは、 openAiModelConfigで を使用します。

AgentCore CLI

AgentCore Identity に API キーを追加します。

agentcore add credential --type api-key --name my-openai-key --api-key $OPENAI_API_KEY agentcore deploy

Bedrock Mantle で を呼び出します (応答形式、API キーは必要ありません)。

SESSION_ID="$(uuidgen)" # Turn 1: Bedrock Mantle (Responses format) agentcore invoke --harness my-agent \ --model-id us.anthropic.claude-sonnet-4-5-20250514-v1:0 \ --api-format responses \ --session-id "$SESSION_ID" \ "Analyze this codebase and identify performance bottlenecks."

同じセッションで OpenAI direct に切り替えます。

# Turn 2: OpenAI direct on the same session agentcore invoke --harness my-agent \ --model-provider open_ai \ --model-id gpt-5.4 \ --api-key-arn arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-openai-key \ --session-id "$SESSION_ID" \ "Now suggest fixes for the top three issues."

詳細: AgentCore IdentityAPI キー認証情報プロバイダー

モデル API 形式を選択する

Amazon Bedrock モデル設定と OpenAI モデル設定はそれぞれ、ハーネスがモデルを呼び出すために使用する API プロトコルを選択するオプションのapiFormatフィールドを受け入れます。

の場合bedrockModelConfig、 はハーネスが呼び出す API プロトコルと Amazon Bedrock エンドポイントの両方apiFormatを選択します。

  • converse_stream - bedrock-runtimeエンドポイントが提供する Amazon Bedrock Converse API。これがデフォルトです。

  • responses - bedrock-mantleエンドポイントが提供する OpenAI 互換の Responses API。

  • chat_completions - エンドポイントが提供する OpenAI 互換のチャット完了 API。 bedrock-mantle

bedrock-mantle エンドポイントは、デフォルトのbedrock-runtimeエンドポイントとは異なるモデルと機能をサポートしています。詳細については、「Amazon Bedrock でサポートされているエンドポイント」を参照してください。

の場合openAiModelConfig、 は次のいずれかapiFormatになります。

  • responses - OpenAI Responses API。これがデフォルトです。

  • chat_completions - OpenAI Chat Completions API。

どちらの設定でもオプションの additionalParams フィールドを使用できます。のプロバイダー固有のパラメータadditionalParamsは、変更されずにモデルプロバイダーに渡されます。

重要

のパラメータは、エンドポイントのルーティング、認証情報の処理、リージョンの選択など、プロバイダーの動作を変化させるadditionalParams可能性があります。アプリケーションが発信者提供のモデル設定を に転送する場合はInvokeHarness、呼び出し前にこれらのフィールドを検証します。「責任共有モデル」を参照してください。

AgentCore CLI

--api-format フラグを使用してハーネスを作成または更新するときに API 形式を設定します。

# Bedrock model through the OpenAI-compatible Responses API (bedrock-mantle endpoint) agentcore add harness --name research-agent \ --model-provider bedrock \ --model-id us.anthropic.claude-sonnet-4-5-20250514-v1:0 \ --api-format responses agentcore deploy
# OpenAI model using the Chat Completions API agentcore add harness --name openai-agent \ --model-provider open_ai \ --model-id gpt-5.4 \ --api-key-arn arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-openai-key \ --api-format chat_completions agentcore deploy
注記

--api-format は、、responses、または chat_completionsconverse_stream--model-provider bedrockresponsesまたは を に受け入れchat_completionsます--model-provider open_aigemini または には適用されませんlite_llm

Amazon Bedrock ガードレールを適用する

Amazon Bedrock ガードレールを使用して、モデルの入力と出力で有害なコンテンツをフィルタリングしたり、拒否されたトピックをブロックしたりします。各モデルリクエストにガードレールを適用するには、 guardrailConfig オブジェクトを に追加しますbedrockModelConfig.additionalParams。ハーネスは、モデルリクエストごとにこのオブジェクトを Amazon Bedrock に渡します。

ハーネスで Amazon Bedrock ガードレールを使用するには、 converse_stream API 形式で bedrockModelConfig を設定します。を省略するとapiFormat、ハーネスはconverse_streamデフォルトで を使用します。この設定を CreateHarnessまたは に設定するかUpdateHarness、 で 1 回の呼び出しに対して上書きしますInvokeHarness

次の Python の例では、ガードレール設定InvokeHarnessを使用して を呼び出します。HARNESS_ARN をハーネス ARN に置き換え、SESSION_ID を一意のランタイムセッション ID に置き換えます。

import boto3 client = boto3.client("bedrock-agentcore") response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, model={ "bedrockModelConfig": { "modelId": "us.amazon.nova-micro-v1:0", "apiFormat": "converse_stream", "additionalParams": { "guardrailConfig": { "guardrailIdentifier": "arn:aws:bedrock:us-west-2:111122223333:guardrail/abc123def456", "guardrailVersion": "1", "trace": "enabled_full", } }, } }, messages=[{"role": "user", "content": [{"text": "Help me plan a trip."}]}], )

ベースラインモデルのアクセス許可については、「実行ロールポリシー」を参照してください。次の JSON ステートメントをハーネス実行ロールポリシーに追加します。

{ "Effect": "Allow", "Action": "bedrock:ApplyGuardrail", "Resource": "arn:aws:bedrock:us-west-2:111122223333:guardrail/abc123def456" }

モデルリクエストと同じ AWS リージョンでガードレールを使用します。ガードレールが介入すると、レスポンスストリームは停止理由guardrail_intervenedとしてレポートします。

ガードレール設定フィールドの詳細については、「Converse API でガードレールを使用する」を参照してください。IAM アクセス許可の詳細については、「Amazon Bedrock ガードレールを使用するアクセス許可を設定する」を参照してください。

LiteLLM でモデルを使用する

を使用してliteLlmModelConfig、OpenAI 互換エンドポイントなど、LiteLLM がサポートするプロバイダーに到達します。を gemini/gemini-2.5-proや などの LiteLLM プロバイダープレフィックス付きモデル ID modelIdに設定しますanthropic/claude-sonnet-4-6

API キー (Google や Anthropic など) で認証するプロバイダーには、 が必要ですapiKeyArnbedrock/ プレフィックスでアクセスされる Amazon Bedrock モデルは、ハーネス実行ロールのアクセス許可を使用するため、API キーは必要ありません。

  • modelId (必須) - LiteLLM プロバイダープレフィックス付きモデル ID。

  • apiKeyArn - API キー認証情報プロバイダーとして AgentCore Identity に保存されているプロバイダーの API キーの ARN。エンドポイントはこの API キーを受け入れる必要があります。

  • apiBase - プロキシやセルフホストエンドポイントなど、OpenAI 互換ゲートウェイのカスタムエンドポイント URL。

  • additionalParams - LiteLLM に渡されるプロバイダー固有のパラメータは変更されません。これには、エンドポイントを上書き (aws_bedrock_runtime_endpoint)、IAM ロールを引き受け (aws_role_name)、またはリクエストルーティングを変更できるパラメータが含まれます。「責任共有モデル」を参照してください。

liteLlmModelConfig は、オプションの maxTokenstemperature、および topPフィールドも受け入れます。

boto3

LiteLLM モデルを設定します。

response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, model={ "liteLlmModelConfig": { "modelId": "gemini/gemini-2.5-pro", "apiKeyArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-gemini-key", } }, messages=[{"role": "user", "content": [{"text": "Summarize this paper."}]}], )
AgentCore CLI

を使用して LiteLLM モデルを設定します--model-provider lite_llm

agentcore add harness --name research-agent \ --model-provider lite_llm \ --model-id gemini/gemini-2.5-pro \ --api-key-arn arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-gemini-key agentcore deploy

で OpenAI 互換ゲートウェイに到達し--api-base、 でプロバイダー固有のパラメータを渡します--additional-params

agentcore add harness --name proxy-agent \ --model-provider lite_llm \ --model-id openai/gpt-5.4 \ --api-base https://my-llm-gateway.example.com/v1 \ --api-key-arn arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-gateway-key \ --additional-params '{"timeout": 30}' agentcore deploy
注記

--api-base--additional-paramsは にのみ適用されます--model-provider lite_llmbedrock/ プレフィックスで到達した Amazon Bedrock モデルは、実行ロールのアクセス許可を使用するため、 は必要ありません--api-key-arn

ハーネスが API キー認証情報プロバイダーを使用する場合、実行ロールにキーを読み取るアクセス許可を付与します。「セキュリティとアクセス制御について」を参照してください。

ハーネス設定の詳細については、「」を参照してください。 API ドキュメント