本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
会话录制和重播
浏览器会话记录和重放为调试、审计或培训目的提供了全面的可观察性。当您创建启用了会话记录的浏览器时,Amazon Bedrock AgentCore 会自动捕获浏览器交互并将其存储在您指定的 Amazon S3 存储桶中以供日后分析。
会话重放可捕获全面的浏览器交互数据,使您能够查看重播并了解浏览器会话期间发生的操作。此功能通过提供对浏览器行为的详细见解,帮助您解决错误并改善未来的调用。
会话重播期间收集的信息包括:
-
会话 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 SDK 示例:
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 步:使用支持录制的浏览器
在任何自动化框架中使用支持录制的浏览器。所有浏览器交互都将自动记录。使用 Strands 的示例:
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 控制台为实时监控和录制的会话分析提供了全面的工具。
实时取景监控
实时监控浏览器会话并与活动会话进行交互:
在控制台中访问实时视图
-
打开亚马逊 Bedrock AgentCore 控制台并导航到工具 Built-in
-
从列表中选择您的浏览器工具(例如,
MyRecordingBrowser) -
在浏览器会话部分中,找到状态为 “就绪” 或 “进行中” 的活动会话
-
在 “实时预览/录制” 列中,单击提供的 “查看实时会话” 网址
-
实时视图将在新的浏览器窗口中打开,显示实时浏览器会话
实时预览界面提供:
-
Real-time 浏览器会话的视频流
-
交互式控件可接管自动化或从自动化中释放控制权
-
会话状态指示灯和连接信息
-
启用控制后,能够直接与浏览器进行交互
会话回放和分析
通过控制台重播界面访问详细的会话记录和分析:
在控制台中访问会话重播
-
导航到您的浏览器工具,选择状态为 “已终止” 的已完成会话
-
单击要分析的会话的 “查看录音”
-
会话重播页面使用全面的分析工具显示
会话分析功能
控制台提供多种分析工具:
-
视频播放器:使用时间轴清理器进行交互式播放,用于导航
-
页面导航:显示所有访问过的页面和时间范围的面板
-
用户操作:所有带有时间戳、方法和详细信息的用户互动
-
页面 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 中缺少对象时显示错误消息,控制台重播 URL 特定于会话 ID
-
带有时间轴导航的交互式视频播放界面
-
时间轴上的操作标记,显示表单填写、点击和导航事件
-
可观测性表显示已访问的页面以及时长和 URL 详细信息
-
每次页面交互的控制台事件、CDP 日志和网络日志
-
在页面级别集成了会话持续时间跟踪
-
Real-time 通过视频和动作数据之间的视觉关联进行动作验证
有关参考,请参阅上的AgentCore 浏览器可观测性示例。 GitHub
一款用于创建具有录制功能和高级重播功能的浏览器会话的综合工具。
-
创建浏览器会话,自动录制到 S3
-
带交互式控制的实时取景 (take/release)
-
即时调整显示分辨率
-
自动将会话录制到 S3
-
带有视频播放器界面的集成会话重播查看器
-
通过精确的动作位置追踪来清理时间轴
-
Page-by-page 使用导航时间轴和 URL 复制进行分析
-
使用点击位置详细信息进行表单填写操作验证
-
在页面级别集成了会话持续时间跟踪
-
Real-time 通过视频和动作数据之间的视觉关联进行动作验证
有关参考,请参阅上的AgentCore 浏览器示例 GitHub