View a markdown version of this page

型号和说明书 - 亚马逊基岩 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 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。该向导将逐步引导您完成模型和指令配置。

  1. 选择您的模型提供商。支持亚马逊 Bedrock、OpenAI、谷歌双子座和任何 LiteLLM-compatible 提供商,每个提供商都有默认型号。

    添加安全带向导:选择模型提供商
  2. 选择 API 格式。对于亚马逊 Bedrock 和 OpenAI,选择 Converse Stream(默认)、回复或聊天完成。回复和聊天完成由 Bedrock Mantle 提供。

    添加安全带向导:选择 API 格式
  3. 如果您选择 LitellM,向导会提示输入 LiteLLM-specific 字段——可选的 API 密钥 ARN、 OpenAI-compatible 网关的可选 API 基本 URL 以及传递给提供商的可选附加参数。

    添加安全带向导:LitellM API 密钥 ARN、API 基础和其他参数步骤

继续完成剩余步骤(环境、内存、高级设置)并确认。然后运行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 密钥凭证提供商。

选择模型 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可以是以下之一:

  • responses-OpenAI 响应 API。这是默认值。

  • chat_completions-OpenAI 聊天完成 API。

两种配置还接受可选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 文档