View a markdown version of this page

会话录制和重播 - Amazon Bedrock AgentCore

会话录制和重播

浏览器会话记录和重播为调试、审计或训练目的提供了全面的可观察性。当您创建启用会话记录功能的浏览器时,Amazon Bedrock AgentCore 会自动捕获浏览器交互并将其存储在您指定的 Amazon S3 存储桶中以供日后分析。

会话重播可捕获全面的浏览器交互数据,使您能够查看重播并了解浏览器会话期间发生的操作。此功能通过提供对浏览器行为的详细见解,帮助您解决错误并改进 future 的调用。

会话重播期间收集的信息包括:

  • 会话 DOM 的变化和突变

  • 用户操作,包括点击、滚动和表单交互

  • 控制台日志和错误消息

  • Chrome DevTools 协议 (CDP) 事件

  • 网络事件和 HTTP 请求

会话录制的先决条件

要启用会话录制,您需要:

  • 用于存储录音数据的 Amazon S3 存储桶

  • 具有写入您的 Amazon S3 存储桶权限的 IAM 执行角色

  • 配置为启用录制功能的自定义浏览器工具

配置 IAM 角色以进行录制

要启用会话录制,您需要一个 IAM 执行角色,该角色有权将录制数据写入 Amazon S3 并将活动记录到 CloudWatch。有关设置权限的详细说明,请参阅权限

除了标准浏览器权限之外,执行角色还需要其他权限:

{ "Sid": "S3Permissions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::your-recording-bucket", "arn:aws:s3:::your-recording-bucket/*" ] }, { "Sid": "CloudWatchLogsPermissions", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": "*" }

your-recording-bucket替换为您实际的 Amazon S3 存储桶名称。

第 1 步:创建带录制功能的浏览器工具

创建启用录制功能的自定义浏览器工具。有关创建浏览器工具的详细说明,请参阅创建 AgentCore 浏览器

创建浏览器工具时,请确保:

  • 在配置中启用会话录制

  • 指定您的 Amazon S3 存储桶和用于存储录音的前缀

  • 使用步骤 1 中的 IAM 执行角色

使用 Python 开发工具包的示例:

import boto3 import uuid region = "us-west-2" bucket = "your-recording-bucket" client = boto3.client("bedrock-agentcore-control", region_name=region) response = client.create_browser( name="MyRecordingBrowser", description="Browser with session recording enabled", networkConfiguration={"networkMode": "PUBLIC"}, executionRoleArn="arn:aws:iam::123456789012:role/AgentCoreBrowserRecordingRole", clientToken=str(uuid.uuid4()), recording={ "enabled": True, "s3Location": { "bucket": bucket, "prefix": "browser-recordings" } } ) browser_identifier = response.get("browserId") or response.get("browserIdentifier") print(f"Created browser with recording: {browser_identifier}") print(f"Recordings will be stored at: s3://{bucket}/browser-recordings/")

第 2 步:使用支持录制功能的浏览器

将支持录制功能的浏览器与任何自动化框架配合使用。将自动记录所有浏览器互动。使用链的示例:

from strands import Agent from strands_tools.browser import AgentCoreBrowser # Use the browser created with recording browser_identifier = "your-browser-identifier" region = "us-west-2" browser_tool = AgentCoreBrowser(region=region, identifier=browser_identifier) agent = Agent(tools=[browser_tool.browser]) prompt = ( "Navigate to https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/what-is-bedrock-agentcore.html " "and summarize the key features of AgentCore." ) response = agent(prompt) print("Agent Response:") print(response.message["content"][0]["text"])

会话期间的所有互动都将自动记录下来,并在会话结束时上传到您的 Amazon S3 存储桶。

第 3 步:监控直播会话和重播录像

AWS 控制台为实时监控和录制的会话分析提供了全面的工具。

实时取景监控

实时监控浏览器会话并与活动会话进行交互:

在控制台中访问实时视图

  1. 打开 Amazon Bedrock AgentCore 控制台并导航到工具 Built-in

  2. 从列表中选择您的浏览器工具(例如,MyRecordingBrowser

  3. 在 “浏览器会话” 部分,找到状态为 “就绪” 或 “进行” 的活动会话

  4. 在 “实时预览/录制” 栏中,单击提供的 “查看实时会话” 网址

  5. 实时视图将在新的浏览器窗口中打开,显示实时浏览器会话

实时预览界面提供:

  • Real-time 浏览器会话的视频流

  • 交互式控件可接管或从自动化中解除控制权

  • 会话状态指示器和连接信息

  • 启用控制后,能够直接与浏览器交互

会话重播和分析

通过控制台重播界面访问详细的会话录制和分析:

在控制台中访问会话重播

  1. 导航到您的浏览器工具,然后选择状态为 “已终止” 的已完成会话

  2. 单击要分析的会话的 “查看录音

  3. 会话重播页面将显示全面的分析工具

会话分析功能

控制台提供多种分析工具:

  • 视频播放器:使用时间轴滑块进行交互式播放,用于导航

  • 页面导航:面板显示所有访问过的页面以及时间范围

  • 用户操作:包含时间戳、方法和详细信息的所有用户交互

  • 页面 DOM:每个页面的 DOM 结构和 HTML 内容

  • 控制台日志:浏览器控制台输出、错误和日志消息

  • CDP 事件:包含参数和结果的 Chrome DevTools 协议事件

  • 网络事件:HTTP 请求、响应、状态码和计时

浏览录音

使用以下方法浏览录音:

  • 单击 “页面” 面板中的页面可跳至特定时刻

  • 点击用户操作以查看它们在时间轴中的发生位置

  • 使用视频时间轴浏览器进行精确导航

  • 选择 “在操作表中查看录制链接” 以跳转到特定的互动

第 4 步:以编程方式访问录音

使用 Amazon Bedrock AgentCore SDK 和 API,以编程方式访问实时视图和记录见解,进行自定义集成和自动分析。

编程实时取景权限

使用浏览器客户端和查看器服务器连接到实时浏览器会话:

import time from rich.console import Console from bedrock_agentcore.tools.browser_client import browser_session from browser_viewer import BrowserViewerServer console = Console() def main(): try: # Create browser session with browser_session('us-west-2') as client: print("✅ Browser ready!") ws_url, headers = client.generate_ws_headers() # Start viewer server console.print("[cyan]Starting viewer server...[/cyan]") viewer = BrowserViewerServer(client, port=8005) viewer_url = viewer.start(open_browser=True) # Keep running while True: time.sleep(1) except KeyboardInterrupt: console.print("[yellow]Shutting down...[/yellow]") if 'client' in locals(): client.stop() console.print("✅ Browser session terminated") if __name__ == "__main__": main()

编程录制访问权限

直接从 Amazon S3 访问记录数据以进行自定义分析工作流程:

import boto3 s3_client = boto3.client('s3', region_name='us-west-2') # List recordings in your bucket bucket_name = "your-recording-bucket" prefix = "browser-recordings/" response = s3_client.list_objects_v2(Bucket=bucket_name, Prefix=prefix) print(f"Recordings in s3://{bucket_name}/{prefix}:") for obj in response.get('Contents', []): print(f" {obj['Key']} ({obj['Size']} bytes)") print(f" Last Modified: {obj['LastModified']}") print()

录制数据结构:

s3://your-recording-bucket/browser-recordings/ └── session-id/ ├── batch_1.ndjson.gz ├── batch_2.ndjson.gz └── batch_3.ndjson.gz

每个会话都会创建一个带有会话 ID 的文件夹,随着会话的进行,录制数据将分块上传。

会话重播编程示例

对于高级用例,您可以构建自定义会话重播查看器,并将录制数据集成到自己的分析工作流程中。

以下 GitHub 示例显示了独立的会话重播查看器,以及使用浏览器会话重播功能时的完整浏览器体验。

有关其他示例,请参阅上的AgentCore 浏览器示例 GitHub

独立会话重播查看器是一个独立的工具,可以直接从 Amazon S3 查看录制的浏览器会话,而无需创建新的浏览器。

  • 直接连接到 S3 以查看录音

  • 通过指定会话 ID 来查看任何过去的录音

  • 当 S3 中缺少项目时显示错误消息,并使用特定于会话 ID 的控制台重播 URL

  • 带有时间轴导航功能的交互式视频播放界面

  • 时间轴上的操作标记,显示表单填写、点击和导航事件

  • 可观察性表格,显示浏览的页面以及时长和网址详情

  • 每次页面交互的控制台事件、CDP 日志和网络日志

  • 在页面级别集成了会话持续时间跟踪

  • Real-time 通过视频和动作数据之间的视觉关联进行动作验证

# View the latest recording in a bucket python view_recordings.py --bucket session-record-test-123456789012 --prefix replay-data # View a specific recording python view_recordings.py --bucket session-record-test-123456789012 --prefix replay-data --session 01JZVDG02M8MXZY2N7P3PKDQ74 # Use a specific AWS profile python view_recordings.py --bucket session-record-test-123456789012 --prefix replay-data --profile my-profile

有关参考,请参阅开启的独立会话重播查看器 GitHub

一款用于创建浏览器会话的综合工具,具有录制功能和高级重播功能。

  • 通过自动录制到 S3 来创建浏览器会话

  • 带交互式控制的实时取景 (take/release)

  • 即时调整显示屏分辨率

  • 自动将会话录制到 S3

  • 带有视频播放器界面的集成会话重播查看器

  • 通过精确的动作位置追踪功能进行时间轴清理

  • Page-by-page 使用导航时间轴和 URL 复制进行分析

  • 使用点击位置详细信息进行表单填写操作验证

  • 在页面级别集成了会话持续时间跟踪

  • Real-time 通过视频和动作数据之间的视觉关联进行动作验证

# View the latest recording in a bucket python -m live_view_sessionreplay.browser_interactive_session

有关参考,请参阅开启的交互式浏览器会话 GitHub