型号和说明书
使用模型、系统提示、工具、内存和执行限制的默认值定义一次。当你想进行实验时,只需一次调用即可覆盖其中任何一个。线束资源保持不变;只有该调用使用覆盖。
这是基于配置的模型的核心:创建时的默认值,在调用时重写。您可以在重新部署一次所需的时间内测试 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,选择添加,然后选择 H arness 。该向导将逐步引导您完成模型和指令配置。
-
选择您的模型提供商。支持 Amazon Bedrock、OpenAI、Google Gemini 和 LiteLLM-compatible 任何提供商,每个提供商都有默认模型。
-
选择 API 格式。对于 Amazon Bedrock 和 OpenAI,请选择 “匡威直播”(默认)、 “回复” 或 “聊天完成”。回复和聊天完成由 Bedrock Mantle 提供。
-
如果您选择 LitelLM,向导会提示您输入 LiteLLM-specific 字段 — 可选的 API 密钥 ARN、 OpenAI-compatible 网关的可选 API 基本 URL 以及传递给提供商的可选其他参数。
继续完成其余步骤(环境、内存、高级设置)并确认。然后跑agentcore deploy去申请。
使用任何型号,在会话中途切换
通过 LitelLM 使用来自亚马逊 Bedrock、OpenAI、Google Gemini 或其他提供商的模型,包括端点。 OpenAI-compatible 在同一会话的轮流之间切换提供商,对话就会继续。上下文会延续下去。
如果你没有指定型号,Amazon Bedrock (global.anthropic.claude-sonnet-4-6) 上的安全带默认为 Anthropic 的 Claude Sonnet 4.6,因此你可以立即开始使用。您可以随时更改每次调用的默认值或覆盖值。
将第三方 API 密钥作为 API 密钥凭AgentCore 证提供商存储在 Id entity 的令牌库中。安全带在调用时会拉出钥匙。您的代理代码永远不会看到原始凭证。
例
- AWS CLI/boto3
-
使用AgentCore 身份注册 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 密钥,使用你的执行角色证书。直接调用 openAiModelConfig OpenAI 端点apiKeyArn时与一起使用。
- AgentCore CLI
-
在 “AgentCore 身份” 中添加 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:
# 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 密钥凭证提供商。
Amazon Bedrock 和 OpenAI 模型配置均接受一个apiFormat可选字段,用于选择线束使用哪个 API 协议来调用模型。
对于bedrockModelConfig,同时apiFormat选择 API 协议和该工具调用的 Amazon Bedrock 终端节点:
-
converse_stream-由终端节点提供的 Amazon Bedrock Converse API。bedrock-runtime这是默认值。
-
responses-由bedrock-mantle端点提供的 OpenAI-compatible 响应 API。
-
chat_completions- OpenAI-compatible 聊天完成 API,由bedrock-mantle端点提供。
该bedrock-mantle端点支持与默认bedrock-runtime端点不同的模型和功能集。有关详细信息,请参阅 Amazon 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_stream、responses、或 f chat_completions o --model-provider bedrock r 和 responses f chat_completions or --model-provider open_ai。它不适用于gemini或lite_llm。
应用 Amazon Bedrock Guardrails
使用 Amazon Bedrock Guardrails 筛选模型输入和输出中的有害内容或屏蔽被拒绝的主题。要将护栏应用于每个模型请求,请向中添加一个guardrailConfig对象。bedrockModelConfig.additionalParams安全带会将此对象与每个模型请求一起传递给 Amazon Bedrock。
要将 Amazon Bedrock Guardrails 与安全带一起使用,请使用 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 权限的更多信息,请参阅设置使用 Amazon Bedrock Guardrails 的权限。
通过 LitelLM 使用模型
用于liteLlmModelConfig访问 Lit elLM 支持的任何提供商,包括 OpenAI-compatible 端点。设置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,以 API 密钥凭据提供者的AgentCore 身份形式存储在 “身份” 中。端点必须接受此 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 文档