View a markdown version of this page

亚马逊 Bedrock AgentCore 运行时目标 - 亚马逊基岩 AgentCore

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

亚马逊 Bedrock AgentCore 运行时目标

您可以添加亚马逊 Bedrock AgentCore 运行时代理作为网关目标。网关直接将流量发送到运行时代理,无需聚合或协议转换。与将工具功能合并到统一虚拟 MCP 服务器中的 MCP 目标不同, AgentCore 运行时目标无需修改即可在客户端和运行时代理之间转发请求和响应。

当您想执行以下操作时,向网关添加 AgentCore 运行时目标很有用:

  • 通过单个网关端点为您的运行时代理提供集中访问管理。

  • 为运行时代理使用网关的内置身份验证和可观察性。

  • 当多个目标连接到网关时,使用基于路径的路由将请求路由到特定的运行时代理。

  • 使用 Amazon Bedrock AgentCore 优化从代理跟踪中生成建议、使用网关的实时流量 A/B 测试变更以及部署获胜配置,从而优化代理的性能。有关更多信息,请参阅AgentCore 优化。

主要注意事项和局限性

使用 AgentCore 运行时目标时,请注意以下注意事项:

  • 网关无需聚合功能即可将流量直接发送到 AgentCore 运行时目标。

  • AgentCore 可以将运行时目标添加到未设置协议类型的网关中。它们不能添加到 MCP 协议类型网关中。

  • AgentCore 运行时目标没有功能同步或语义工具搜索可用。客户端必须通过基于路径的路由分别寻址每个目标。

  • Server-Sent AgentCore 运行时目标支持事件 (SSE) 直播。

  • 缓冲模式支持请求和响应拦截器 Lambda 函数。直播模式尚不支持拦截器。

目标配置

创建 AgentCore 运行时目标时,需要提供运行时 ARN 和可选限定符。网关在内部解析运行时端点,因此您无需自己构造运行时网址。

AgentCore 运行时目标的目标配置使用以下结构:

{ "http": { "agentcoreRuntime": { "arn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/RUNTIME_ID", "qualifier": "DEFAULT", "schema": { "source": { "s3": { "uri": "s3://DOC-EXAMPLE-BUCKET/agent-schema.yaml" } } } } } }
  • arn(必填)— 亚马逊 Bedrock AgentCore Runtime 代理的 ARN。

  • 限定符(可选)-运行时限定符。默认值为 DEFAULT。

  • 架构(可选)-描述运行时目标的请求和响应结构的 API 架构。网关使用此架构来启用策略引擎功能,例如护栏。架构格式会被自动检测为 OpenAPI 或 Smithy。

    对于使用 MCP 或 A2A 协议的运行时代理,系统会自动应用默认架构,您无需提供。对于使用 HTTP 协议的运行时代理,必须提供架构才能使用防护栏。

    该schema对象source包含一个用于指定架构内容所在位置的:

    • s3 — 指向架构文件的 S3 URI(例如,s3://DOC-EXAMPLE-BUCKET/agent-schema.yaml)。

    • inlinePayLoad — 直接以字符串形式提供的架构内容。

注意

如果您的运行时代理使用 HTTP 协议,并且您想通过网关的策略引擎应用防护,则必须提供架构。对于使用 MCP 或 A2A 协议的运行时代理,会自动应用默认架构。

调用 AgentCore 运行时目标

要通过网关调用 AgentCore 运行时目标,请向目标的调用 URL 发送 POST 请求。URL 格式如下:

https://{gatewayId}.gateway.bedrock-agentcore.{region}.amazonaws.com/{targetName}/invocations

{gatewayId}替换为您的网关 ID、{region} AWS 区域和{targetName}目标名称。

以下示例使用 curl 调用 AgentCore 运行时目标:

curl -X POST https://gateway-id.gateway.bedrock-agentcore.us-west-2.amazonaws.com/my-target/invocations \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <token>" \ -d '{"input": {"prompt": "Hello"}}'

您还可以使用带有终端节点 URL 覆盖的亚马逊 Bedrock AgentCore SDK:

aws bedrock-agentcore invoke-agent-runtime \ --endpoint-url https://gateway-id.gateway.bedrock-agentcore.us-west-2.amazonaws.com/my-target \ --runtimeArn arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/RUNTIME_ID

出站授权

AgentCore 运行时目标支持以下出站授权类型:

  • IAM (SigV4) — 网关扮演网关服务角色以获取证书,用于对运行时目标的签名请求。配置 IAM 授权时,您可以使用 IAM 策略仅限访问网关角色,确保所有运行时请求都流经网关。

  • 呼叫方 IAM 证书 — 网关使用调用方的 IAM 证书签署向运行时目标发出的请求。网关代表呼叫者扮演角色,并使用呼叫者的身份签署出站请求。

  • OAuth (JWT) — 网关通过亚马逊基岩身份服务从目标中配置的凭证提供商处检索 OAuth 令牌。 AgentCore

  • 令牌直通 — 网关验证入站令牌并将其传递到运行时目标,无需修改。当运行时处理自己的授权时,这很有用。

强制通过网关进行流量

您可以在 AgentCore 运行时前使用 AgentCore 网关,使网关成为运行时的单一、受管控的入口点——为您提供基于策略的授权、Amazon Bedrock Guardrails、请求和响应拦截器以及统一的可观察性,所有这些都应用在代理自己的环境之外。有关完整理由,请参见使用 AgentCore 网关作为运行时前端。但是,这仅在你无法绕过网关直接访问运行时时才有用。现在,无论运行时使用 IAM (SigV4) 还是 OAuth (JWT) 入站授权,您都可以实现此目的。

您可以在运行时配置此限制。网关会标记其转发的每个请求的来源,运行时会在传入的途中验证该来源。具体机制取决于运行时的入站授权类型:

  • IAM (SigV4) 运行时 — 附加基于资源的策略,限制对网关执行角色的调用。有关策略及其所需的信任策略强化,请参阅限制 IAM (SigV4) 对网关的入站调用。

  • OAuth (JWT) 运行时 -在运行时allowedWorkloadConfiguration上进行配置,仅customJWTAuthorizer允许网关的工作负载。有关配置和字段参考,请参阅限制对网关的调用。

与 MCP 目标的能力比较

您可以使用两种方法将 MCP 服务器与 Amazon Bedrock AgentCore 网关集成:在聚合模式下使用 MCP 目标类型,或者使用 AgentCore 运行时目标类型。下表比较了每种方法的能力。

能力 带有 MCP 目标的 MCP 网关 AgentCore 运行时目标

Tool/capability 聚合

将所有 MCP 目标的功能聚合到一个统一的虚拟 MCP 服务器中。客户会看到一份综合tools/list回复。

隔离运行。网关无需合并功能即可将流量直接发送到目标。客户端必须通过基于路径的路由分别寻址每个目标。

语义工具搜索

索引工具描述并支持通过自然语言查询进行发现。

不可用。网关不支持采集或索引功能。客户必须知道确切的工具名称或使用服务器自己的工具名称tools/list。

响应拦截器 Lambda

支持非流式 MCP 操作的请求和响应拦截器。

在缓冲模式下支持请求和响应拦截器 Lambda 函数。直播模式尚不支持拦截器。