本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
型号和说明书
使用模型、系统提示、工具、内存和执行限制的默认值定义一次安全带。当你想进行实验时,在单次调用中覆盖其中任何一个。线束资源保持不变;只有该调用使用覆盖。
这是基于配置的模型的核心:创建时的默认值,调用时覆盖。你可以在重新部署一次所需的时间内测试 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 an empty project if one does not already exist
agentcore create --project-name ResearchAgentProject --no-agent
cd ResearchAgentProject
# Add a harness to the project
agentcore add harness \
--name research-agent \
--model-id us.anthropic.claude-sonnet-4-6 \
--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,agentcore_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,选择 “添加”,然后选择 Harn es s。该向导将逐步引导您完成模型和指令配置。
-
选择您的模型提供商。支持亚马逊 Bedrock、OpenAI、谷歌双子座和任何 LiteLLM-compatible 提供商,每个提供商都有默认型号。
-
选择 API 格式。对于亚马逊 Bedrock 和 OpenAI,选择 Converse Stream(默认)、回复或聊天完成。回复和聊天完成由 Bedrock Mantle 提供。
-
如果您选择 LitellM,向导会提示输入 LiteLLM-specific 字段——可选的 API 密钥 ARN、 OpenAI-compatible 网关的可选 API 基本 URL 以及传递给提供商的可选附加参数。
继续完成剩余步骤(环境、内存、高级设置)并确认。然后运行agentcore deploy申请。
使用任何型号,在会话中切换
通过LitellM使用来自亚马逊 Bedrock、OpenAI、谷歌 Gemini 或其他提供商的模型,包括终端节点。 OpenAI-compatible 在同一会话的轮流之间切换提供商,对话继续。上下文延续下去。
如果你没有指定型号,那么在亚马逊 Bedrock (global.anthropic.claude-sonnet-4-6) 上,安全带默认为 Anthropic 的 Claude Sonnet 4.6,因此你可以立即开始。您可以随时更改每次调用的默认值或覆盖。
将第三方 API 密钥作为 API 密钥凭AgentCore 证提供商存储在 Identity 的令牌库中。安全带会在调用时拉出钥匙。您的代理代码永远不会看到原始凭证。
例
- AWS CLI/boto3
-
使用 I AgentCore dentity 注册 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": {}},通过亚马逊 Bedrock Mantle 调用 OpenAI 模型 — 不需要 API 密钥,使用您的执行角色证书。直接调openAiModelConfig用 OpenAI 端点apiKeyArn时与一起使用。
- AgentCore CLI
-
向 I AgentCore dentity 添加 API 密钥:
agentcore add credential --type api-key --name my-openai-key --api-key $OPENAI_API_KEY
agentcore deploy
在您之前创建的 AgentCore 项目目录中,添加第二个使用 Responses 格式的工具。然后部署该项目:
agentcore add harness \
--name my-agent \
--model-provider bedrock \
--model-id us.anthropic.claude-sonnet-4-5-20250514-v1:0 \
--api-format responses
agentcore deploy
使用基岩斗篷进行召唤:
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 \
--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 身份、 API 密钥凭证提供商。
亚马逊 Bedrock 和 OpenAI 模型配置均接受一个可选apiFormat字段,用于选择该工具使用哪个 API 协议来调用模型。
对于bedrockModelConfig,apiFormat选择 API 协议和该工具调用的亚马逊 Bedrock 终端节点:
-
converse_stream-由终端节点提供服务的亚马逊 Bedrock Converse API。bedrock-runtime这是默认值。
-
responses-由bedrock-mantle端点提供的 OpenAI-compatible 响应 API。
-
chat_completions- OpenAI-compatible 聊天完成 API,由bedrock-mantle端点提供。
该bedrock-mantle端点支持的模型和功能与默认bedrock-runtime端点不同。有关详细信息,请参阅亚马逊 Bedrock 支持的终端节点。
对于openAiModelConfig,apiFormat可以是以下之一:
两种配置还接受可选additionalParams字段。 Provider-specific 中的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接受converse_streamresponses、或chat_completions赞--model-provider bedrock成、responses或chat_completions为--model-provider open_ai。它不适用于gemini或lite_llm。
应用亚马逊基岩护栏
使用 Amazon Bedrock Guardrails 筛选有害内容或屏蔽模型输入和输出中的被拒绝主题。要对每个模型请求应用护栏,请向添加一个guardrailConfig对象。bedrockModelConfig.additionalParams安全带会在每次模型请求时将此对象传递给亚马逊 Bedrock。
要将亚马逊基岩护栏与安全带一起使用,请使用 API 格式进行配置bedrockModelConfig。converse_stream如果省略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为停止原因。
有关护栏配置字段的更多信息,请参阅在 Conver se API 中使用护栏。有关 IAM 权限的更多信息,请参阅设置权限以使用亚马逊 Bedrock Guard rails。
通过 LitellM 使用模型
liteLlmModelConfig用于联系 LitellM 支持的任何提供商,包括 OpenAI-compatible 终端节点。设置modelId为以 LitellM 提供者为前缀的模型 ID,例如或。gemini/gemini-2.5-pro anthropic/claude-sonnet-4-6
使用 API 密钥(例如谷歌或 Anthropic)进行身份验证的提供商需要apiKeyArn。使用bedrock/前缀访问的 Amazon Bedrock 模型使用工具执行角色的权限,不需要 API 密钥。
-
modelId(必填)-以 LitellM 提供者为前缀的模型 ID。
-
apiKeyArn-提供商的 API 密钥的 ARN,作为 API 密钥凭AgentCore 证提供商存储在 Identity 中。端点必须接受此 API 密钥。
-
apiBase- OpenAI-compatible 网关的自定义终端节点 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-compatible 网关--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 文档