

# Gravação e reprodução da sessão
<a name="browser-session-recording"></a>

A gravação e a reprodução da sessão do navegador fornecem uma observabilidade abrangente para fins de depuração, auditoria ou treinamento. Quando você cria um navegador com a gravação de sessão ativada, o Amazon Bedrock captura AgentCore automaticamente as interações do navegador e as armazena em seu bucket Amazon S3 especificado para análise posterior.

A repetição da sessão captura dados abrangentes de interação do navegador que permitem que você visualize as repetições e compreenda as ações que ocorreram durante as sessões do navegador. Essa funcionalidade ajuda você a resolver erros e melhorar futuras invocações, fornecendo informações detalhadas sobre o comportamento do navegador.

As informações coletadas durante a repetição da sessão incluem:
+ Alterações e mutações no DOM da sessão
+ Ações do usuário, incluindo cliques, rolagens e interações com formulários
+ Registros do console e mensagens de erro
+ Eventos do DevTools Protocolo Chrome (CDP)
+ Eventos de rede e solicitações HTTP

## Pré-requisitos para gravação da sessão
<a name="session-replay-prerequisites"></a>

Para ativar a gravação da sessão, você precisa:
+ Um bucket Amazon S3 para armazenar dados de gravação
+ Uma função de execução do IAM com permissões para gravar em seu bucket do Amazon S3
+ Uma ferramenta de navegador personalizada configurada com a gravação ativada

## Configurar a função do IAM para gravação
<a name="session-replay-permissions"></a>

Para habilitar a gravação da sessão, você precisa de uma função de execução do IAM com permissões para gravar dados de gravação no Amazon S3 e registrar atividades no. CloudWatch Para obter instruções detalhadas sobre como configurar permissões, consulte [Permissões](browser-resource-session-management.md#browser-permissions).

A função de execução exige permissões adicionais além das permissões padrão do navegador:

```
{
    "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`Substitua pelo nome real do bucket do Amazon S3.

## Etapa 1: Crie uma ferramenta de navegador com gravação
<a name="session-replay-step1"></a>

Crie uma ferramenta de navegador personalizada com a gravação ativada. Para obter instruções detalhadas sobre como criar ferramentas de navegador, consulte [Criação de um AgentCore navegador](browser-using-tool.md#browser-create).

Ao criar sua ferramenta de navegador, certifique-se de:
+ Ativar a gravação da sessão na configuração
+ Especifique seu bucket e prefixo do Amazon S3 para armazenar gravações
+ Use a função de execução do IAM da Etapa 1

Exemplo usando o SDK do 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/")
```

## Etapa 2: use o navegador habilitado para gravação
<a name="session-replay-step2"></a>

Use seu navegador habilitado para gravação com qualquer estrutura de automação. Todas as interações do navegador serão registradas automaticamente. Exemplo usando 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"])
```

Todas as interações durante esta sessão serão automaticamente gravadas e enviadas para o seu bucket do Amazon S3 quando a sessão terminar.

## Etapa 3: monitorar sessões ao vivo e reproduzir gravações
<a name="session-replay-step3"></a>

O AWS console fornece ferramentas abrangentes para monitoramento em tempo real e análise de sessões gravadas.

### Monitoramento de visualização ao vivo
<a name="console-live-view"></a>

Monitore as sessões do navegador em tempo real e interaja com as sessões ativas:

 **Para acessar a visualização ao vivo no console** 

1. **Abra o AgentCore console do Amazon Bedrock e navegue até as ferramentas Built-in ** 

1. Selecione a ferramenta do seu navegador na lista (por exemplo,`MyRecordingBrowser`)

1. Na seção **Sessões do navegador**, localize uma sessão ativa com o status **Pronto** ou **Em andamento** 

1. Na coluna **Visualização ao vivo/gravação**, clique no URL “Exibir sessão ao vivo” fornecido

1. A exibição ao vivo é aberta em uma nova janela do navegador, exibindo a sessão do navegador em tempo real

A interface de visualização ao vivo fornece:
+ Real-time stream de vídeo da sessão do navegador
+ Controles interativos para assumir ou liberar o controle da automação
+ Indicadores de status da sessão e informações de conexão
+ Capacidade de interagir diretamente com o navegador quando o controle está ativado

### Repetição e análise da sessão
<a name="console-recording-insights"></a>

Acesse gravações e análises detalhadas da sessão por meio da interface de reprodução do console:

 **Para acessar a reprodução da sessão no console** 

1. Navegue até a ferramenta do seu navegador e selecione uma sessão **concluída com o status Encerrado**

1. Clique em **Exibir gravação** para a sessão que você deseja analisar

1. A página de reprodução da sessão é exibida com ferramentas de análise abrangentes

 **Recursos de análise de sessão** 

O console fornece várias ferramentas de análise:
+  **Player de vídeo**: reprodução interativa com depurador de linha do tempo para navegação
+  **Navegação de páginas**: painel mostrando todas as páginas visitadas com intervalos de tempo
+  **Ações do usuário**: todas as interações do usuário com registros de data e hora, métodos e detalhes
+  **DOM da página**: estrutura DOM e conteúdo HTML para cada página
+  **Registros do console**: saída do console do navegador, erros e mensagens de registro
+  Eventos **CDP: eventos** do DevTools protocolo Chrome com parâmetros e resultados
+  **Eventos de rede**: solicitações HTTP, respostas, códigos de status e tempo

 **Navegue pelas gravações** 

Use esses métodos para navegar pelas gravações:
+ Clique nas páginas do painel Páginas para ir para momentos específicos
+ Clique nas ações do usuário para ver onde elas ocorreram na linha do tempo
+ Use o purificador da linha do tempo do vídeo para uma navegação precisa
+ Escolha **Exibir links de gravação** em tabelas de ação para ir para interações específicas

## Etapa 4: Acesse as gravações programaticamente
<a name="session-replay-step4"></a>

Acesse a visualização ao vivo e a gravação de insights de forma programática usando o AgentCore SDK e as APIs do Amazon Bedrock para integração personalizada e análise automatizada.

### Acesso programático à visualização ao vivo
<a name="programmatic-live-view"></a>

Conecte-se às sessões ao vivo do navegador usando o cliente do navegador e o servidor visualizador:

```
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()
```

### Acesso programático à gravação
<a name="programmatic-recording-access"></a>

Acesse dados de gravação diretamente do Amazon S3 para fluxos de trabalho de análise personalizados:

```
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()
```

Estrutura de dados de gravação:

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

Cada sessão cria uma pasta com o ID da sessão, e os dados de gravação são carregados em partes à medida que a sessão avança.

## Exemplos programáticos de repetição de sessão
<a name="session-replay-programmatic-usage"></a>

Para casos de uso avançados, você pode criar visualizadores de repetição de sessão personalizados e integrar dados de gravação em seus próprios fluxos de trabalho de análise.

Os GitHub exemplos a seguir mostram um visualizador de repetição de sessão independente e como é a experiência completa do navegador ao usar o recurso de repetição de sessão do navegador.

Para obter exemplos adicionais, consulte [Exemplos de AgentCore navegadores em GitHub](https://github.com/awslabs/amazon-bedrock-agentcore-samples/blob/main/01-tutorials/05-AgentCore-tools/02-Agent-Core-browser-tool/interactive_tools/).

### Visualizador de repetição de sessão autônomo
<a name="session-replay-standalone"></a>

O visualizador de reprodução de sessão independente é uma ferramenta separada para visualizar sessões gravadas do navegador diretamente do Amazon S3 sem criar um novo navegador.
+ Conecte-se diretamente ao S3 para ver as gravações
+ Visualize qualquer gravação anterior especificando sua ID de sessão
+ Exibir mensagens de erro quando os artefatos estão ausentes no S3, com URLs de reprodução do console específicos para o ID da sessão
+ Interface de reprodução de vídeo interativa com navegação na linha do tempo
+ Marcadores de ação na linha do tempo mostrando preenchimentos de formulários, cliques e eventos de navegação
+ Tabela de observabilidade exibindo páginas percorridas com detalhes de duração e URL
+ Eventos de console, registros de CDP e registros de rede para cada interação de página
+ Rastreamento da duração da sessão integrado no nível da página
+ Real-time verificação de ações com correlação visual entre dados de vídeo e ação

```
# 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
```

Para referência, consulte [Visualizador de repetição de sessão independente](https://github.com/awslabs/amazon-bedrock-agentcore-samples/blob/main/01-tutorials/05-AgentCore-tools/02-Agent-Core-browser-tool/interactive_tools/live_view_sessionreplay/view_recordings.py) ativado. GitHub

### Experiência completa de navegador com gravação e reprodução
<a name="session-replay-complete"></a>

Uma ferramenta abrangente para criar sessões de navegador com recursos de gravação e recursos avançados de reprodução.
+ Crie sessões de navegador com gravação automática no S3
+ Visualização ao vivo com controle interativo (take/release)
+ Ajuste a resolução da tela em tempo real
+ Gravação automática da sessão no S3
+ Visualizador de reprodução de sessão integrado com interface de reprodutor de vídeo
+ Limpeza da linha do tempo com rastreamento preciso da localização da ação
+ Page-by-page análise com cronograma de navegação e cópia de URL
+ Verificação da ação de preenchimento do formulário com detalhes da localização do clique
+ Rastreamento da duração da sessão integrado no nível da página
+ Real-time verificação de ações com correlação visual entre dados de vídeo e ação

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

Para referência, consulte [Sessão interativa do navegador em GitHub](https://github.com/awslabs/amazon-bedrock-agentcore-samples/blob/main/01-tutorials/05-AgentCore-tools/02-Agent-Core-browser-tool/interactive_tools/live_view_sessionreplay/browser_interactive_session.py).