View a markdown version of this page

模型和指示 - Amazon Bedrock AgentCore

模型和指示

使用模型、系統提示、工具、記憶體和執行限制的預設值,定義一次繫帶。當您想要實驗時,在單一調用上覆寫其中任何一個。繫帶資源保持不變;只有該呼叫使用覆寫。

這是組態型模型的核心:在建立時預設為 ,在調用時覆寫 。您可以在重新部署一次所需的時間內測試 N model/prompt/tool組合。

範例
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以列印用於偵錯的原始串流 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 以套用。

使用任何模型、切換工作階段中

透過 LiteLLM 使用來自 Amazon Bedrock、OpenAI、Google Gemini 或其他供應商的模型,包括 OpenAI 相容端點。在相同工作階段輪換之間切換供應商,對話會繼續。內容會轉移。

如果您未指定模型,則繫帶預設為 Amazon Bedrock (global.anthropic.claude-sonnet-4-6) 上的 Anthropic 的 Claude Sonnet 4.6,以便您立即開始使用。您可以隨時變更每次調用的預設或覆寫。

將第三方 API 金鑰存放在 AgentCore Identity 的字符保存庫中,做為 API 金鑰憑證提供者。繫帶會在叫用時提取金鑰。您的客服人員程式碼永遠不會看到原始登入資料。

範例
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搭配 透過 Amazon Bedrock Mantle "endpoint": {"bedrockMantle": {}}呼叫 OpenAI 模型 - 不需要 API 金鑰, 使用您的執行角色登入資料。直接呼叫 OpenAI 端點apiKeyArn時,請使用 openAiModelConfig搭配 。

AgentCore CLI

將 API 金鑰新增至 AgentCore Identity

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:

# 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 模型組態各接受選用apiFormat欄位,該欄位會選取繫帶用來呼叫模型的 API 通訊協定。

對於 bedrockModelConfig, 會apiFormat同時選取繫帶呼叫的 API 通訊協定和 Amazon Bedrock 端點:

  • converse_stream - 由bedrock-runtime端點提供的 Amazon Bedrock Converse API。這是預設值。

  • responses - bedrock-mantle端點提供的 OpenAI 相容回應 API。

  • chat_completions - 與 OpenAI 相容的聊天完成 API,由bedrock-mantle端點提供。

bedrock-mantle 端點支援與預設bedrock-runtime端點不同的一組模型和功能。如需詳細資訊,請參閱 Amazon Bedrock 支援的端點

對於 openAiModelConfigapiFormat 可以是下列其中一項:

  • responses - OpenAI Responses API。這是預設值。

  • chat_completions - OpenAI 聊天完成 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接受 converse_stream、 或 chat_completions --model-provider bedrock,對於 接受 responseschat_completions --model-provider open_ai。它不適用於 geminilite_llm

套用 Amazon Bedrock 護欄

使用 Amazon Bedrock Guardrails 在模型輸入和輸出中篩選有害內容或封鎖拒絕的主題。若要將護欄套用至每個模型請求,請將guardrailConfig物件新增至 bedrockModelConfig.additionalParams。每個模型請求都會將此物件傳遞給 Amazon Bedrock。

若要搭配繫帶使用 Amazon Bedrock Guardrails,bedrockModelConfig請使用 converse_stream API 格式設定 。如果您省略 apiFormat,則根據converse_stream預設,該繫帶會使用 。在 CreateHarness或 中設定此組態UpdateHarness,或在 中覆寫一次呼叫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 Guardrails 的許可

透過 LiteLLM 使用模型

使用 liteLlmModelConfig 聯絡 LiteLLM 支援的任何供應商,包括 OpenAI 相容端點。modelId 設定為 LiteLLM 提供者字首模型 ID,例如 gemini/gemini-2.5-proanthropic/claude-sonnet-4-6

使用 API 金鑰進行身分驗證的提供者 (例如 Google 或 Anthropic) 需要 apiKeyArn。使用 bedrock/字首存取的 Amazon Bedrock 模型會使用繫帶執行角色的許可,且不需要 API 金鑰。

  • modelId (必要) - LiteLLM 提供者字首模型 ID。

  • apiKeyArn - 提供者 API 金鑰的 ARN,存放在 AgentCore Identity 中做為 API 金鑰登入資料提供者。端點必須接受此 API 金鑰。

  • apiBase - OpenAI 相容閘道的自訂端點 URL,例如代理或自我託管端點。

  • additionalParams - 傳遞至 LiteLLM 的提供者特定參數保持不變。這包括可以覆寫端點 (aws_bedrock_runtime_endpoint)、擔任 IAM 角色 (aws_role_name) 或更改請求路由的參數。請參閱 共同責任模型

liteLlmModelConfig 也接受選用的 temperaturemaxTokenstopP 欄位。

範例
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 文件