View a markdown version of this page

了解中代理资源的可观察性 AgentCore - Amazon Bedrock AgentCore

了解中代理资源的可观察性 AgentCore

本节定义了会话、跟踪和跨度的概念,因为它们与代理的监控和可观察性有关。

会话

会话代表用户和代理之间的完整交互上下文。会话封装了整个对话或互动流程,维护了多个交流的状态和背景。每个会话都有一个唯一的标识符,可以捕捉用户与代理互动的整个生命周期,从初始化到终止。

会话为代理提供以下功能:

  • 同一对话中多个互动的上下文持久性

  • 用于维护用户特定信息的状态管理

  • 追踪对话历史记录以实现情境理解

  • 互动期间的资源分配和管理

  • 隔离不同用户与同一个代理的互动

从可观察性的角度来看,会话提供了用户参与模式的高级视图,使您可以跨指标、跟踪和跨度监控代理表现,并了解用户如何随着时间的推移和不同的用例与您的代理进行交互。

默认情况下,在会话级别为运行 AgentCore 时中运行的代理 AgentCore 提供一组可观察性指标。您可以在 Amazon CloudWatch 控制台的生成人工智能可观测性页面上查看运行时指标。此页面提供了各种图表和可视化效果,以帮助您解释代理的数据。 AgentCore 还会输出内存资源、网关资源和内置工具的默认指标集。所有这些指标都可以在中查看 CloudWatch。除了提供的指标外,默认情况下还会为内存资源提供日志和跨度,通过检测代理代码,您可以为代理捕获自定义指标、日志和跨度,也可以在 CloudWatch 生成的 AI 可观测性页面上查看这些指标、日志和跨度。要了解更多信息,请参阅以下章节和查看 Amazon Bedrock AgentCore 代理的可观测性数据

跟踪

跟踪表示从代理调用开始的单个请求-响应周期的详细记录,可能包括对其他代理的额外调用。跟踪记录请求的完整执行路径,包括所有内部处理步骤、外部服务调用、决策点和资源利用率。每条跟踪都与特定的会话关联,并提供对代理在特定交互中的行为的精细可见性。

跟踪包括代理的以下组件:

  • 请求详情,包括时间戳、输入参数和上下文

  • 显示所执行操作顺序的处理步骤

  • 带有 input/output 参数和执行时间的工具调用

  • 资源利用率指标,例如处理时间

  • 错误信息,包括异常详情和恢复尝试

  • 响应生成详细信息和最终输出

从可观察性的角度来看,跟踪可以深入了解代理的内部运作,从而使您能够解决问题、优化性能和了解行为模式。通过分析跟踪数据,您可以识别瓶颈,检测异常,并验证您的代理在不同的场景和输入中是否按预期运行。

要收集跟踪数据,您需要使用开放遥测 AWS 发行版 (ADOT) 来检测代理代码。要了解更多信息,请参阅在代理代码中为 AgentCore-hosted 代理启用可观察性和为托管在代理之外的代理启用 AgentCore可观察性。

跨度

跨度代表代理执行流程中一个离散的、可测量的工作单元。Span 可以捕获请求处理期间发生的细粒度操作,从而详细了解构成完整跟踪的内部组件和步骤。每个跨度都有明确的开始和结束时间,从而创建代理活动及其持续时间的精确时间表。

跨度包括代理可观察性的以下基本属性:

  • 用于标识正在执行的特定函数或进程的操作名称

  • 标记操作确切开始和结束时间的时间戳

  • Parent-child 显示操作如何在大型流程中嵌套的关系

  • 标签和属性提供有关操作的上下文元数据

  • 标记跨度生命周期内发生重大事件的事件

  • 指示成功、失败或其他完成状态的状态信息

  • 特定于操作的资源利用率指标

跨度在轨迹中形成分层结构,父跨度包含表示更精细操作的子跨度。例如,高级别 “流程用户查询” 跨度可能包含 “解析输入”、“检索上下文”、“生成响应” 和 “格式化输出” 的子跨度。这种分层组织创建了一个详细的执行树,该树显示了代理内部的完整操作流程。

默认情况下,仅为内存资源 AgentCore 输出一组跨度数据。这些数据可以在 CloudWatch 日志和 CloudWatch 应用程序信号中查看。要记录代理或网关资源的跨度数据,您需要对代理进行探测。要了解更多信息,请参阅在代理代码中为 AgentCore-hosted 代理启用可观察性和为托管在代理之外的代理启用 AgentCore可观察性。

会话、轨迹和跨度之间的关系

在代理的可观察性框架中,会话、跟踪和跨度形成了三层层次关系。一个会话包含多条轨迹,每条轨迹都代表会话中更广泛的背景下的离散交互作用。反过来,每条轨迹都包含多个跨度,用于捕获该交互中的细粒度操作和步骤。这种分层结构允许您分析不同粒度级别的代理行为,从高级会话模式到中级交互流程,再到特定操作的详细执行路径。

这三个可观测性组件之间的关系可以可视化为:

  • 会话(最高级别)-表示完整的用户对话或交互上下文

  • 跟踪(中间级别)-表示会话中的各个请求-响应周期

  • 跨度(最低级别)-表示轨迹中的特定操作或步骤

这种多层关系支持多种重要的可观察性功能:

  • 在更广泛的对话流程中对个人互动进行情境分析

  • 用户互动旅程中的相关请求的关联

  • 从会话级别的异常到跟踪级别的模式,再到跨度级别的根本原因,逐步进行故障排除

  • 跨不同时间和功能维度的全面性能分析

  • 全面了解客服人员行为模式和对话过程中的演变

  • 通过跨度分析精确识别运营层面的性能瓶颈

虽然追踪提供了完整的请求-响应周期的可见性,但跨度可以更深入地了解这些周期的内部运作情况。跨度可以准确地揭示哪些操作消耗的时间最多、错误源于何处,以及不同组件在单个轨迹中是如何相互作用的。在解决复杂问题或优化复杂代理实现中的性能时,这种精细度特别有价值。

通过在可观测性策略中利用会话、追踪和跨度数据,您可以从多个细节层面全面了解代理的行为、表现和效率。这种多层次的可观察性方法支持持续改进、强大的故障排除以及对代理实现进行明智优化,从高级对话模式到个人操作性能。