Code Velocity
Ferramentas de Desenvolvedor

Bedrock AgentCore: Incorpore um Agente de Navegação de IA ao Vivo no React

·5 min de leitura·AWS·Fonte original
Compartilhar
Diagrama de arquitetura do Amazon Bedrock AgentCore mostrando o fluxo de dados para incorporar um agente de navegação de IA ao vivo em um aplicativo React.
  • Se você estiver usando o AWS Bedrock para seu modelo de IA, instale o AWS SDK para JavaScript:
    npm install @aws-sdk/client-bedrock-runtime
    

A base de código para implementar a Visualização ao Vivo é tipicamente dividida: o código do lado do servidor (para gerenciamento de sessão e lógica do agente de IA) é executado em Node.js, e o código do lado do cliente (para renderizar a Visualização ao Vivo) é executado dentro de uma aplicação React, frequentemente empacotada com ferramentas como Vite.

Integração Passo a Passo: Da Sessão ao Stream

Integrar um agente de navegação de IA ao vivo com o Amazon Bedrock AgentCore envolve um processo claro de três etapas, unindo sua lógica de lado do servidor com sua aplicação React de lado do cliente e as robustas capacidades da AWS Cloud.

1. Iniciando uma Sessão de Navegador e Gerando o URL da Visualização ao Vivo

O primeiro passo ocorre no seu servidor de aplicação. É aqui que sua lógica de backend inicia uma sessão de navegador dentro do Amazon Bedrock AgentCore e obtém de forma segura o URL necessário para transmitir a visualização ao vivo.

Você usará a classe Browser do SDK bedrock-agentcore. Esta classe lida com a complexidade de criar e gerenciar ambientes de navegador isolados na nuvem. A saída chave desta etapa é um URL pré-assinado SigV4, que concede acesso seguro e temporário ao stream de vídeo ao vivo da sessão do navegador.

// Exemplo de código do lado do servidor (Node.js)
import { Browser } from 'bedrock-agentcore';
import { AgentCoreClient } from '@aws-sdk/client-bedrock-agentcore';

// Inicialize o cliente Bedrock AgentCore (garanta que as credenciais AWS apropriadas estejam configuradas)
const agentCoreClient = new AgentCoreClient({ region: 'us-east-1' }); // Use sua região desejada

async function startLiveSession() {
    // Crie uma nova sessão de navegador
    const browser = new Browser(agentCoreClient);
    await browser.create();

    // Gere o URL da Visualização ao Vivo
    const liveViewUrl = await browser.getLiveViewURL();
    console.log('URL da Visualização ao Vivo:', liveViewUrl);

    // Armazene browser.sessionId para conectar seu agente de IA ou encerrar a sessão mais tarde
    const sessionId = browser.sessionId;
    
    return { liveViewUrl, sessionId };
}

// Este `liveViewUrl` será enviado ao seu cliente React.

Este URL é então passado para o seu frontend React, que o usará para estabelecer o stream ao vivo.

2. Renderizando a Visualização ao Vivo em Sua Aplicação React

Uma vez que sua aplicação React recebe o liveViewUrl do seu servidor, renderizar o stream em tempo real é notavelmente simples, graças ao componente BrowserLiveView.

// Exemplo de código do lado do cliente (componente React)
import React, { useEffect, useState } from 'react';
import { BrowserLiveView } from 'bedrock-agentcore';

interface LiveAgentViewerProps {
    liveViewUrl: string;
}

const LiveAgentViewer: React.FC<LiveAgentViewerProps> = ({ liveViewUrl }) => {
    if (!liveViewUrl) {
        return <p>Aguardando URL da Visualização ao Vivo...</p>;
    }

    return (
        <div style={{ width: '100%', height: '600px', border: '1px solid #ccc' }}>
            <BrowserLiveView url={liveViewUrl} />
        </div>
    );
};

// No seu componente App principal ou página:
// const MyPage = () => {
//     const [currentLiveViewUrl, setCurrentLiveViewUrl] = useState<string | null>(null);
//
//     useEffect(() => {
//         // Busque o liveViewUrl do seu backend
//         fetch('/api/start-agent-session')
//             .then(res => res.json())
//             .then(data => setCurrentLiveViewUrl(data.liveViewUrl));
//     }, []);
//
//     return (
//         <div>
//             <h1>Visualização ao Vivo do Agente de IA</h1>
//             <LiveAgentViewer liveViewUrl={currentLiveViewUrl} />
//         </div>
//     );
// };

Com apenas url={liveViewUrl}, o componente BrowserLiveView lida com os detalhes intrincados do estabelecimento da conexão WebSocket, do consumo do stream DCV e da renderização do feed de vídeo ao vivo dentro das suas dimensões especificadas. Esta integração JSX mínima simplifica muito o desenvolvimento frontend, permitindo que você se concentre na experiência do usuário em torno do agente ao vivo.

3. Conectando um Agente de IA para Controlar o Navegador

A etapa final conecta a inteligência do seu agente de IA às ações reais do navegador dentro da sessão isolada. Enquanto o BrowserLiveView fornece o feedback visual, seu agente de IA usa o Playwright CDP (Chrome DevTools Protocol) para interagir com o navegador programaticamente.

Seu servidor de aplicação, que também hospeda seu agente de IA, usará a propriedade page do objeto Browser (que é um objeto Page do Playwright) para executar ações do navegador.

// Exemplo de código do lado do servidor (continuação da etapa 1)
// Assumindo que você tem uma interface semelhante ao Playwright ou uso direto do Playwright
import { Browser } from 'bedrock-agentcore';
import { AgentCoreClient } from '@aws-sdk/client-bedrock-agentcore';
import { BedrockRuntimeClient, InvokeModelCommand } from "@aws-sdk/client-bedrock-runtime";

// ... (configuração anterior para criação do navegador) ...

async function driveAgent(sessionId: string) {
    const browser = new Browser(agentCoreClient, { sessionId }); // Reconectar à sessão existente
    await browser.connect(); // Conectar à sessão do navegador

    const page = browser.page; // Obter o objeto Page do Playwright

    // Exemplo de lógica do agente de IA (simplificado para ilustração)
    // Aqui você integraria com seu LLM (por exemplo, Anthropic Claude via API Bedrock Converse)
    // para determinar ações com base em prompts do usuário e conteúdo da página.
    console.log("Agente navegando para example.com...");
    await page.goto('https://www.example.com');
    console.log("Agente esperou por 3 segundos...");
    await page.waitForTimeout(3000); // Simular tempo de processamento

    console.log("Agente digitando em uma caixa de pesquisa (hipotético)...");
    // Exemplo: await page.type('#search-input', 'Amazon Bedrock AgentCore');
    // Exemplo: await page.click('#search-button');

    const content = await page.content();
    // Use um LLM para analisar 'content' e decidir os próximos passos
    const bedrockRuntimeClient = new BedrockRuntimeClient({ region: 'us-east-1' });
    const response = await bedrockRuntimeClient.send(new InvokeModelCommand({
        modelId: "anthropic.claude-3-sonnet-20240229-v1:0", // ou seu modelo preferido
        contentType: "application/json",
        accept: "application/json",
        body: JSON.stringify({
            messages: [
                {
                    role: "user",
                    content: `Analise o conteúdo desta página web e sugira a próxima ação: ${content.substring(0, 500)}`
                }
            ],
            max_tokens: 200,
        }),
    }));
    const decodedBody = new TextDecoder("utf-8").decode(response.body);
    const parsedBody = JSON.parse(decodedBody);
    console.log("Ação sugerida pelo Modelo de IA:", parsedBody.content[0].text);

    // Com base na sugestão do LLM, execute mais ações na página...

    // Não se esqueça de fechar a sessão do navegador quando terminar
    // await browser.close();
}

// Após iniciar a sessão e obter o URL, você chamaria driveAgent(sessionId)

Este loop de interação – onde seu agente de IA analisa o conteúdo da página, determina a próxima ação e a executa via Playwright CDP – forma o núcleo de um agente de navegação autônomo. Todas essas ações são renderizadas visualmente em tempo real através do componente BrowserLiveView na tela do usuário.

Desbloqueando Novas Possibilidades com Agentes de IA Incorporados

A integração do BrowserLiveView do Amazon Bedrock AgentCore é mais do que apenas um recurso técnico; é uma mudança de paradigma na forma como os usuários interagem e confiam em agentes de IA. Ao incorporar feedback visual em tempo real, os desenvolvedores podem criar aplicações impulsionadas por IA que são não apenas eficientes, mas também transparentes, auditáveis e fáceis de usar.

Essa capacidade é particularmente transformadora para aplicações que envolvem:

  • Fluxos de Trabalho Complexos: Automatização de processos online com várias etapas, como entrada de dados, integração de usuários (onboarding) ou conformidade regulatória, onde a visibilidade em cada etapa é primordial.
  • Suporte ao Cliente: Permitindo que agentes observem copilotos de IA resolvendo consultas de clientes ou navegando em sistemas, garantindo precisão e oferecendo oportunidades de intervenção.
  • Treinamento e Depuração: Fornecendo a desenvolvedores e usuários finais uma ferramenta poderosa para entender o comportamento do agente, depurar problemas e treinar agentes por meio de observação direta.
  • Trilhas de Auditoria Aprimoradas: Gerando registros visuais das ações do agente, que podem ser combinados com gravações de sessão para o Amazon S3 para uma revisão pós-evento e conformidade abrangentes.

A capacidade de transmitir diretamente sessões de navegador da AWS Cloud para navegadores clientes, contornando o servidor de aplicação para o stream de vídeo, oferece vantagens significativas em termos de desempenho e escalabilidade. Essa arquitetura minimiza a latência e reduz a carga na sua infraestrutura de backend, permitindo que você implante soluções de agente de IA altamente responsivas e escaláveis.

Ao adotar o BrowserLiveView, você não está apenas construindo agentes de IA; você está construindo confiança, controle e uma experiência de usuário mais rica. Explore as possibilidades e capacite seus usuários com a confiança para delegar tarefas web complexas a agentes inteligentes.

Perguntas Frequentes

What is the Amazon Bedrock AgentCore BrowserLiveView component and how does it function?
The Amazon Bedrock AgentCore BrowserLiveView component is a crucial part of the Bedrock AgentCore TypeScript SDK, designed to embed a real-time video feed of an AI agent's browsing session directly into a React application. It operates by receiving a SigV4-presigned URL from your application server, which then establishes a persistent WebSocket connection to stream video data via the Amazon DCV protocol from an isolated cloud browser session. This direct streaming mechanism ensures low latency and high fidelity, allowing users to observe every action an AI agent takes on a webpage, from navigation to form submissions, without the video stream passing through your server.
How does embedding Live View enhance user trust and confidence in AI agents?
Embedding Live View significantly boosts user trust and confidence by providing unparalleled transparency into an AI agent's operations. Instead of a 'black box' experience, users gain immediate visual confirmation of the agent's actions, observing its progress and interactions in real-time. This visual feedback loop helps users understand that the agent is on the correct path, interacting with the right elements, and progressing as expected. This is particularly valuable for complex or sensitive workflows, where visual evidence can reassure users that the agent is performing its tasks accurately and responsibly, enhancing overall confidence and allowing for timely intervention if necessary.
What are the primary architectural components involved in integrating a Live View AI agent?
The integration of a Live View AI agent involves three main architectural components. First, the user's web browser, running a React application, hosts the BrowserLiveView component, which renders the real-time stream. Second, the application server acts as the orchestrator, managing the AI agent's logic, initiating browser sessions via the Amazon Bedrock AgentCore API, and generating secure, time-limited SigV4-presigned URLs for the Live View stream. Third, the AWS Cloud hosts Amazon Bedrock AgentCore and Bedrock services, providing the isolated cloud browser sessions, automation capabilities (via Playwright CDP), and the DCV-powered Live View streaming endpoint. A key design point is that the DCV stream flows directly from AWS to the user's browser, bypassing the application server for optimal performance.
Can developers utilize any AI model or agent framework with Amazon Bedrock AgentCore's Live View?
Yes, developers have the flexibility to use any AI model or agent framework of their choice with Amazon Bedrock AgentCore's Live View. While the provided example often demonstrates integration with the Amazon Bedrock Converse API and models like Anthropic Claude, the BrowserLiveView component itself is model-agnostic. This means that the real-time visual streaming functionality is decoupled from the AI agent's underlying reasoning and decision-making logic. As long as your chosen AI agent or framework can interact with the browser automation endpoint provided by AgentCore (typically via Playwright CDP), you can leverage Live View to provide visual feedback to your users, making it a highly adaptable solution for various AI-powered applications.
What are the essential prerequisites for setting up a Live View AI browser agent with Amazon Bedrock AgentCore?
To set up a Live View AI browser agent, several prerequisites are necessary. Developers need Node.js version 20 or later for the server-side logic and React for the client-side application. An AWS account in a supported region is required, along with AWS credentials that have the necessary Amazon Bedrock AgentCore Browser permissions. It's crucial to follow the principle of least privilege for IAM permissions and use temporary credentials (e.g., from AWS IAM Identity Center or STS) rather than long-lived access keys for enhanced security. Additionally, the Amazon Bedrock AgentCore TypeScript SDK (`bedrock-agentcore`) and potentially the AWS SDK for JavaScript (`@aws-sdk/client-bedrock-runtime`) if using Bedrock models, must be installed in your project.
How does the DCV protocol facilitate real-time, low-latency video streaming for Live View?
The Amazon DCV (NICE DCV) protocol is instrumental in providing real-time, low-latency video streaming for the BrowserLiveView component. DCV is a high-performance remote display protocol designed to deliver a rich user experience over varying network conditions. In the context of AgentCore, it efficiently encodes and transmits the visual output of the isolated cloud browser session directly to the user's React application via a WebSocket connection. By optimizing data compression and transmission, DCV ensures that the visual feed of the AI agent's actions appears smooth and responsive, minimizing lag and enabling users to observe the agent's behavior as if it were happening locally on their machine, without the need for complex streaming infrastructure setup by the developer.

Fique Atualizado

Receba as últimas novidades de IA no seu e-mail.

Compartilhar