モデルと手順
モデル、システムプロンプト、ツール、メモリ、実行制限のデフォルトを使用してハーネスを一度定義します。実験する場合は、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 を開き、追加 を選択し、ハーネス を選択します。ウィザードでは、モデルと命令の設定をステップバイステップで説明します。
-
モデルプロバイダーを選択します。Amazon Bedrock、OpenAI、Google Gemini、および LiteLLM 互換プロバイダーがサポートされており、それぞれにデフォルトモデルがあります。
-
API 形式を選択します。Amazon Bedrock と OpenAI の場合は、コンバースストリーム (デフォルト)、レスポンス、またはチャット完了 を選択します。レスポンスとチャットの完了は Bedrock Mantle によって提供されます。
-
LiteLLM を選択すると、ウィザードは LiteLLM 固有のフィールド - オプションの API キー ARN、OpenAI 互換ゲートウェイ用のオプションの API ベース URL、およびプロバイダーに渡されるオプションの追加のパラメータの入力を求めます。
残りのステップ (環境、メモリ、詳細設定) を続行して確認します。次に、 を実行して適用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 Identity、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になります。
どちらの設定でもオプションの 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_completionsを converse_streamに--model-provider bedrock、responsesまたは を に受け入れchat_completionsます--model-provider open_ai。gemini または には適用されません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 など) で認証するプロバイダーには、 が必要ですapiKeyArn。bedrock/ プレフィックスでアクセスされる 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 は、オプションの maxTokens、temperature、および 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_llm。bedrock/ プレフィックスで到達した Amazon Bedrock モデルは、実行ロールのアクセス許可を使用するため、 は必要ありません--api-key-arn。
ハーネスが API キー認証情報プロバイダーを使用する場合、実行ロールにキーを読み取るアクセス許可を付与します。「セキュリティとアクセス制御について」を参照してください。
ハーネス設定の詳細については、「」を参照してください。 API ドキュメント