模型和指示
使用模型、系統提示、工具、記憶體和執行限制的預設值,定義一次繫帶。當您想要實驗時,在單一調用上覆寫其中任何一個。繫帶資源保持不變;只有該呼叫使用覆寫。
這是組態型模型的核心:在建立時預設為 ,在調用時覆寫 。您可以在重新部署一次所需的時間內測試 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,選取新增,然後選擇繫結 。精靈會逐步引導您完成模型和指令組態。
-
選擇您的模型提供者。支援 Amazon Bedrock、OpenAI、Google Gemini 和任何 LiteLLM 相容提供者,每個供應商都有預設模型。
-
選擇 API 格式。對於 Amazon Bedrock 和 OpenAI,選取反向串流 (預設)、回應 或聊天完成 。Bedrock Mantle 會提供回應和聊天完成。
-
如果您選取 LiteLLM ,精靈會提示 LiteLLM 特定欄位 - 選用 API 金鑰 ARN、OpenAI 相容閘道的選用 API 基礎 URL,以及傳遞給提供者的選用其他參數。
繼續完成其餘步驟 (環境、記憶體、進階設定) 並確認。然後執行 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 Identity、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 支援的端點。
對於 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接受 converse_stream、 或 chat_completions --model-provider bedrock,對於 接受 responses或 chat_completions --model-provider open_ai。它不適用於 gemini或 lite_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-pro或 anthropic/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 也接受選用的 temperature、 maxTokens和 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 文件