Code Velocity
Utvecklarverktyg

Bedrock AgentCore: Bädda in en live AI-webbläsaragent i React

·5 min läsning·AWS·Originalkälla
Dela
Arkitekturdiagram över Amazon Bedrock AgentCore som visar dataflödet för att bädda in en live AI-webbläsaragent i en React-app.
  • Om du använder AWS Bedrock för din AI-modell, installera AWS SDK för JavaScript:
    npm install @aws-sdk/client-bedrock-runtime
    

Kodbasen för implementering av Live View delas vanligtvis upp: server-sidig kod (för sessionshantering och AI-agentlogik) körs i Node.js, och klient-sidig kod (för att återge Live View) körs i en React-applikation, ofta paketerad med verktyg som Vite.

Steg-för-steg-integration: Från session till ström

Att integrera en live AI-webbläsaragent med Amazon Bedrock AgentCore involverar en tydlig, trestegsprocess, som kopplar din server-sidiga logik med din klient-sidiga React-applikation och de robusta funktionerna i AWS Cloud.

1. Starta en webbläsarsession och generera Live View-URL:en

Det första steget sker på din applikationsserver. Det är här din backend-logik initierar en webbläsarsession inom Amazon Bedrock AgentCore och säkert erhåller den nödvändiga URL:en för att strömma live-vyn.

Du kommer att använda Browser-klassen från bedrock-agentcore-SDK:n. Denna klass hanterar komplexiteten med att skapa och hantera isolerade webbläsarmiljöer i molnet. Den viktigaste utgången från detta steg är en SigV4-försignerade URL, som ger säker, temporär åtkomst till live-videoströmmen från webbläsarsessionen.

// Exempel på server-sidig kod (Node.js)
import { Browser } from 'bedrock-agentcore';
import { AgentCoreClient } from '@aws-sdk/client-bedrock-agentcore';

// Initiera Bedrock AgentCore-klienten (se till att rätt AWS-uppgifter är konfigurerade)
const agentCoreClient = new AgentCoreClient({ region: 'us-east-1' }); // Använd din önskade region

async function startLiveSession() {
    // Skapa en ny webbläsarsession
    const browser = new Browser(agentCoreClient);
    await browser.create();

    // Generera Live View-URL:en
    const liveViewUrl = await browser.getLiveViewURL();
    console.log('Live View URL:', liveViewUrl);

    // Lagra browser.sessionId för att senare ansluta din AI-agent eller avsluta sessionen
    const sessionId = browser.sessionId;
    
    return { liveViewUrl, sessionId };
}

// Denna `liveViewUrl` kommer att skickas till din React-klient.

Denna URL skickas sedan till din React-frontend, som kommer att använda den för att upprätta live-strömmen.

2. Återge Live View i din React-applikation

När din React-applikation har mottagit liveViewUrl från din server är det anmärkningsvärt enkelt att återge strömmen i realtid, tack vare BrowserLiveView-komponenten.

// Exempel på klient-sidig kod (React-komponent)
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>Väntar på Live View-URL...</p>;
    }

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

// I din huvudkomponent eller sida för appen:
// const MyPage = () => {
//     const [currentLiveViewUrl, setCurrentLiveViewUrl] = useState<string | null>(null);
//
//     useEffect(() => {
//         // Hämta liveViewUrl från din backend
//         fetch('/api/start-agent-session')
//             .then(res => res.json())
//             .then(data => setCurrentLiveViewUrl(data.liveViewUrl));
//     }, []);
//
//     return (
//         <div>
//             <h1>AI-agent Live View</h1>
//             <LiveAgentViewer liveViewUrl={currentLiveViewUrl} />
//         </div>
//     );
// };

Med bara url={liveViewUrl} hanterar BrowserLiveView-komponenten de intrikata detaljerna kring att upprätta WebSocket-anslutningen, konsumera DCV-strömmen och återge live-videoflödet inom dina angivna dimensioner. Denna minimala JSX-integration förenklar frontend-utvecklingen avsevärt, vilket gör att du kan fokusera på användarupplevelsen kring den levande agenten.

3. Koppla en AI-agent för att driva webbläsaren

Det sista steget kopplar din AI-agents intelligens till de faktiska webbläsaråtgärderna inom den isolerade sessionen. Medan BrowserLiveView ger visuell feedback, använder din AI-agent Playwright CDP (Chrome DevTools Protocol) för att interagera med webbläsaren programmatiskt.

Din applikationsserver, som också är värd för din AI-agent, kommer att använda Browser-objektets page-egenskap (som är ett Playwright Page-objekt) för att utföra webbläsaråtgärder.

// Exempel på server-sidig kod (fortsättning från steg 1)
// Förutsatt att du har ett Playwright-liknande gränssnitt eller direkt Playwright-användning
import { Browser } from 'bedrock-agentcore';
import { AgentCoreClient } from '@aws-sdk/client-bedrock-agentcore';
import { BedrockRuntimeClient, InvokeModelCommand } from "@aws-sdk/client-bedrock-runtime";

// ... (tidigare inställningar för webbläsarskapande) ...

async function driveAgent(sessionId: string) {
    const browser = new Browser(agentCoreClient, { sessionId }); // Återanslut till befintlig session
    await browser.connect(); // Anslut till webbläsarsessionen

    const page = browser.page; // Hämta Playwright Page-objektet

    // Exempel på AI-agentlogik (förenklad för illustration)
    // Här skulle du integrera med din LLM (t.ex. Anthropic Claude via Bedrock Converse API)
    // för att bestämma åtgärder baserat på användarprompter och sidinnehåll.
    console.log("Agent navigerar till example.com...");
    await page.goto('https://www.example.com');
    console.log("Agent väntade i 3 sekunder...");
    await page.waitForTimeout(3000); // Simulera bearbetningstid

    console.log("Agent skriver i en sökruta (hypotetiskt)...");
    // Exempel: await page.type('#search-input', 'Amazon Bedrock AgentCore');
    // Exempel: await page.click('#search-button');

    const content = await page.content();
    // Använd en LLM för att analysera 'content' och bestämma nästa steg
    const bedrockRuntimeClient = new BedrockRuntimeClient({ region: 'us-east-1' });
    const response = await bedrockRuntimeClient.send(new InvokeModelCommand({
        modelId: "anthropic.claude-3-sonnet-20240229-v1:0", // eller din föredragna modell
        contentType: "application/json",
        accept: "application/json",
        body: JSON.stringify({
            messages: [
                {
                    role: "user",
                    content: `Analysera detta webbsideinnehåll och föreslå nästa åtgärd: ${content.substring(0, 500)}`
                }
            ],
            max_tokens: 200,
        }),
    }));
    const decodedBody = new TextDecoder("utf-8").decode(response.body);
    const parsedBody = JSON.parse(decodedBody);
    console.log("AI-modell föreslog åtgärd:", parsedBody.content[0].text);

    // Baserat på LLM:s förslag, utför ytterligare sidåtgärder...

    // Glöm inte att stänga webbläsarsessionen när du är klar
    // await browser.close();
}

// Efter att ha startat sessionen och fått URL:en, skulle du sedan anropa driveAgent(sessionId)

Denna interaktionsslinga – där din AI-agent analyserar sidinnehåll, bestämmer nästa åtgärd och utför den via Playwright CDP – utgör kärnan i en autonom webbläsaragent. Alla dessa åtgärder återges visuellt i realtid via BrowserLiveView-komponenten på användarens skärm.

Låser upp nya möjligheter med inbäddade AI-agenter

Integrationen av Amazon Bedrock AgentCores BrowserLiveView är mer än bara en teknisk funktion; det är ett paradigmskifte i hur användare interagerar med och litar på AI-agenter. Genom att bädda in visuell feedback i realtid kan utvecklare skapa AI-drivna applikationer som inte bara är effektiva utan också transparenta, granskningsbara och användarvänliga.

Denna förmåga är särskilt transformativ för applikationer som involverar:

  • Komplexa arbetsflöden: Automatisering av onlineprocesser i flera steg som datainmatning, onboarding eller regelefterlevnad, där synlighet i varje steg är av yttersta vikt.
  • Kundsupport: Tillåter agenter att observera AI-copiloter som löser kundfrågor eller navigerar i system, vilket säkerställer noggrannhet och ger möjligheter till ingripande.
  • Utbildning och felsökning: Tillhandahåller utvecklare och slutanvändare ett kraftfullt verktyg för att förstå agentbeteende, felsöka problem och träna agenter genom direkt observation.
  • Förbättrade granskningsloggar: Genererar visuella register över agentåtgärder, som kan kombineras med sessionsinspelningar till Amazon S3 för omfattande efterhandsgranskning och efterlevnad.

Förmågan att direkt strömma webbläsarsessioner från AWS Cloud till klientwebbläsare, och kringgå applikationsservern för videoströmmen, erbjuder betydande fördelar när det gäller prestanda och skalbarhet. Denna arkitektur minimerar latens och minskar belastningen på din backend-infrastruktur, vilket gör att du kan distribuera mycket responsiva och skalbara AI-agentlösningar.

Genom att anta BrowserLiveView bygger du inte bara AI-agenter; du bygger förtroende, kontroll och en rikare användarupplevelse. Utforska möjligheterna och ge dina användare självförtroendet att delegera komplexa webbuppgifter till intelligenta agenter.

Vanliga frågor

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.

Håll dig uppdaterad

Få de senaste AI-nyheterna i din inkorg.

Dela