View a markdown version of this page

工作原理 - Amazon Bedrock AgentCore

工作原理

Amazon Bedrock AgentCore Runtime 可处理扩展、会话管理、安全隔离和基础设施管理,使您可以专注于构建智能代理体验,而不是复杂的操作。通过利用此处描述的特性和功能,您可以构建、部署和管理复杂的 AI 代理,为用户带来价值,同时帮助维护企业级的安全性和可靠性。

关键组件

AgentCore 运行时间

AgentCore 运行时是托管 AI 代理或工具代码的基础组件。它代表一个容器化应用程序,它使用 AI 功能处理用户输入、维护上下文并执行操作。创建代理时,需要定义代理的行为、功能及其可以访问的工具。例如,客户支持代理可能会回答产品问题、处理退货并将复杂问题上报给人工代表。

您可以使用 AgentCore CLI、AgentCore Python SDK 或直接通过AWS 软件开发工具包构建代理并将其部署到 AgentCore 运行时。使用 AgentCore Python SDK,你可以使用 CrewaI 或 Strands Agents 等 LangGraph流行框架来定义你的代理。SDK 可处理基础设施的复杂性,使您可以专注于代理的逻辑和功能。

每个 AgentCore 运行时:

  • 具有独特的身份

  • 已进行版本控制以支持受控部署和更新

版本

每个 AgentCore Runtime 都维护不可变的版本,用于捕获特定时间点配置的完整快照:

  • 创建 AgentCore 运行时时,会自动创建版本 1 (V1)

  • 每次对配置(容器镜像、协议设置、网络设置)的更新都会创建一个新版本

  • 每个版本都包含执行所需的所有必要配置

此版本控制系统提供可靠的部署历史记录和回滚功能。

端点

端点为特定版本的 AgentCore Runtime 提供了可寻址的接入点。每个端点:

  • 有唯一的 ARN 可供调用

  • 引用代理运行时的特定版本

  • 即使您更新实现也能稳定地访问您的代理

关键端点详情:

  • “DEFAULT” 端点是在您调用CreateAgentRuntime并指向最新版本时自动创建的

  • 当你更新 AgentCore Runtime 时,会创建一个新版本,但DEFAULT端点会自动更新以引用它

  • 您可以使用针对不同环境(开发、测试、生产)的CreateAgentRuntimeEndpoint操作创建自定义终端节点

  • 当用户向终端节点发出请求时,该请求将解析为该端点引用的特定代理版本

端点具有不同的生命周期状态:

  • CREATING-端点创建期间的初始状态

  • CREATE_FAILED-表示由于权限或其他问题而导致创建失败

  • READY-端点已运行且正在接受请求

  • UPDATING-正在修改端点以引用新版本

  • UPDATE_FAILED-表示更新操作失败

您无需停机即可更新端点,从而实现无缝版本转换和回滚。

会话

会话代表用户和您的 AgentCore 运行时之间的个人交互上下文。每节课:

  • 由您的应用程序runtimeSessionId提供的唯一标识,或者如果留空,则由运行时本身在第一次调用中runtimeSessionId标识

  • 在具有完全隔离的 CPU、内存和文件系统资源的专用 microVM 中运行

  • 在同一个对话中保留多个互动的背景信息

  • 总运行时间最多可持续 8 小时

会话状态包括:

  • 活动-当前正在处理请求或正在执行后台任务

  • Idle-不处理任何请求,但在等待下一次交互时维护上下文

  • 已终止-会话因不活动(15 分钟)、达到最长使用寿命(8 小时)或被认为不健康而结束

重要的会话特征:

  • 会话终止后,整个 microVM 将被终止并清理内存

  • 终止runtimeSessionId后具有相同内容的后续请求将创建一个新的执行环境

  • 会话隔离可防止跨会话数据污染并确保安全性

  • 会话状态是短暂的,不应用于长期持久性(使用 AgentCore 内存来获得上下文持久性)

会话之间的这种完全隔离对于企业安全至关重要,尤其是在处理非确定性的人工智能流程时。

身份验证和安全

入站身份验证控制谁可以通过 Ident AWS ity and Access Management 或 OAuth 2.0 访问您的代理,在允许请求继续进行之前,先验证身份提供商提供的持有者令牌。出站身份验证使您的代理能够使用 OAuth 或 API 密钥安全地访问第三方服务, AgentCore 身份可在用户委派或自治模式下管理凭证。有关更多信息,请参阅使用入站身份验证和出站身份验证进行身份验证和授权

入站身份验证

由 Identity 提供支持的入站 AgentCore 身份验证控制谁可以在 AgentCore Runtime 中访问和调用您的代理或工具。

身份验证方法

  • AWS IAM (Sigv4):使用 AWS 证书进行身份验证

  • OAuth 2.0:与外部身份提供商集成

OAuth 配置选项

  • 发现网址:您的身份提供商的 OpenID Connect 发现端点

  • 允许的受众:您的代币应包含的有效受众群体值列表

  • 允许的客户端:可以访问此代理的客户机标识符列表

身份验证流程

  1. 最终用户使用您的身份提供商(亚马逊 Cognito、Okta、Microsoft Entra ID)进行身份验证

  2. 成功进行身份验证后,您的客户端应用程序会收到不记名令牌

  3. 调用代理时,客户端会在授权标头中传递此令牌

  4. AgentCore 运行时使用授权服务器验证令牌

  5. 如果有效,则处理请求;如果无效,则拒绝请求

这样可以确保只有经过身份验证且具有适当授权的用户才能访问您的代理。

出站身份验证

由 Amazon Bedrock Identity 提供支持的出站 AgentCore 身份验证允许托管在 AgentCore Runtime 上的代理安全地访问第三方服务:

身份验证方法

  • OAuth:适用于支持 OAuth 流程的服务

  • API 密钥:适用于使用基于密钥的身份验证的服务

身份验证模式

  • User-delegated: 代表最终用户使用其凭证行事

  • 自主:使用服务级别凭证独立行事

受支持的服务

  • 企业系统,例如 Slack、Zoom 和 GitHub

  • AWS 服务

  • 自定义 API 和数据源

AgentCore Identity 可以安全地管理这些凭证,防止您的代理代码或日志中出现凭据泄露。

其他功能

异步处理

AgentCore 运行时通过以下方式支持长时间运行的工作负载:

  • 超出 request/response 周期的操作的后台任务处理

  • 通过/ping端点自动跟踪状态

  • Support 支持持续时间长达 8 小时的操作

有关更多信息,请参阅使用 Amazon Bedrock AgentCore Runtime 处理异步和长时间运行的代理

流式响应

代理可以在部分结果可用时对其进行流式传输,而不必等待完成处理。这使您可以提供响应速度更快的用户体验,特别是对于生成大量内容或需要花费大量时间才能完成的操作。有关更多信息,请参阅直播代理响应

WebSocket API

AgentCore 运行时WebSocket支持实时双向流媒体连接,用于交互式代理通信。这可以实现更具响应性和交互性的代理体验。有关更多信息,请参阅使用 WebSocket双向流式传输入门

协议支持

AgentCore 运行时支持多种通信协议:

实施概述

以下是开始使用 AgentCore 运行时的方法。有关完整示例,请参阅 AgentCore CLI 入门

准备代理或工具代码

  • 使用任何 AI 框架或自定义代码定义代理逻辑

  • 使用 AgentCore SDK 或自定义实现添加所需的 HTTP 端点

  • requirements.txt 文件中的软件包依赖关系

部署您的代理或工具

  • 直接或通过软件开发工具包构建容器镜像并将其推送到 Amazon ECR AgentCore

  • 使用容器镜像创建 AgentCore 运行时

  • 初始版本 (V1) 和默认端点是自动创建的

调用您的代理或工具

管理和观察会话,并进行更新

  • 使用相同的会话 ID 进行后续互动,以维护上下文

  • 查看日志、跟踪和可观察性指标

  • 通过修改 AgentCore 运行时来部署更新(创建新版本)

  • 通过更新端点以指向新版本来控制部署