可观测性

在终端中,检查所有已部署资源的状态:

agentcore status

我们应该看到所有资源已部署并就绪:

image-20260401144731572

测试会话连续性

AgentCore Runtime 提供内置的会话管理功能。每次调用可以包含一个 --session-id 来在会话内维护对话上下文,不同会话之间相互隔离。

在会话 A 中开始对话:

SESSION_A=$(python3 -c 'import uuid; print(uuid.uuid4())')
agentcore invoke "My name is Carlos and I just bought a Mechanical Keyboard" \
  --session-id $SESSION_A --stream

继续同一会话:

agentcore invoke "What did I just buy?" \
  --session-id $SESSION_A --stream

预期结果:代理在同一会话中记住了 Carlos 购买了机械键盘。

开始一个不同的会话(会话 B):

SESSION_B=$(python3 -c 'import uuid; print(uuid.uuid4())')
agentcore invoke "What did I just buy?" \
  --session-id $SESSION_B --stream

预期结果:代理不知道购买了什么——这是一个完全独立的会话,没有来自会话 A 的上下文。

注意: 会话 ID 必须至少包含 33 个字符。使用 UUID(如上所示)是生成有效会话 ID 的最简便方式。

工作原理: AgentCore Runtime 隔离每个会话。session_id 被传递给代理的 context 对象,并由内存会话管理器用于限定内存检索范围。在同一会话内,代理维护对话历史。跨会话时,只有长期内存(SEMANTIC 事实)是共享的。

探索可观测性

AgentCore Runtime 自动使用 OpenTelemetry 对我们的代理进行插桩,并将追踪数据发送到 CloudWatch。每次调用都会生成追踪,捕获完整的对话流程。

通过 CLI 查看追踪

列出代理的最近追踪记录:

agentcore traces list --limit 10

image-20260401145101774

下载特定追踪以进行详细检查:

agentcore traces get <trace-id> --output trace.json

image-20260401145150935

通过 CLI 查看日志

实时流式查看代理日志:

agentcore logs

搜索过去一小时内的错误:

agentcore logs --since 1h --level error

搜索特定模式:

agentcore logs --since 1h --query "warranty"

image-20260401145235261

在 CloudWatch 控制台中查看

如需可视化仪表板,访问 CloudWatch 控制台

  1. 在左侧面板中,找到 GenAI ObservabilityBedrock AgentCore
  2. 点击 Agents 查看我们的 CustomerSupport 代理

image-20260401145822479

点击 Sessions 查看所有对话会话,

image-20260401145906592

点击 Traces 查看详细的请求追踪

每条追踪显示:

  • 完整的对话流程(用户提示 → 工具选择 → 工具执行 → 响应)
  • 每个步骤的延迟分解
  • 内存检索和存储操作
  • Gateway 工具调用

image-20260401150029692

注意: 首次调用后约需 10 分钟,trace数据才会出现在 CloudWatch 中。如果我们在前提条件中启用了 Transaction Search,trace数据应该已经被索引。