Code Velocity
Kūrėjo įrankiai

Bedrock AgentCore: Integruokite tiesioginį naršyklės dirbtinio intelekto agentą į React

·5 min skaitymo·AWS·Originalus šaltinis
Dalintis
Amazon Bedrock AgentCore architektūros diagrama, rodanti duomenų srautą, skirta integruoti tiesioginį dirbtinio intelekto naršyklės agentą į React programą.
  • Jei naudojate AWS Bedrock savo DI modeliui, įdiekite AWS SDK for JavaScript:
    npm install @aws-sdk/client-bedrock-runtime
    

Kodo bazė tiesioginio vaizdo įgyvendinimui paprastai yra padalinta: serverio pusės kodas (skirtas sesijų valdymui ir DI agento logikai) veikia Node.js, o kliento pusės kodas (skirtas tiesioginio vaizdo atvaizdavimui) veikia React programoje, dažnai sukomplektuotas su įrankiais, tokiais kaip Vite.

Žingsnis po žingsnio integravimas: nuo sesijos iki srauto

Tiesioginio DI naršyklės agento integravimas su Amazon Bedrock AgentCore apima aiškų, trijų žingsnių procesą, jungiantį jūsų serverio pusės logiką su kliento pusės React programa ir tvirtomis AWS debesies galimybėmis.

1. Naršyklės sesijos paleidimas ir tiesioginio vaizdo URL generavimas

Pirmasis žingsnis vyksta jūsų programos serveryje. Čia jūsų užpakalinės dalies logika inicijuoja naršyklės sesiją Amazon Bedrock AgentCore ir saugiai gauna reikiamą URL tiesioginiam vaizdui transliuoti.

Naudosite Browser klasę iš bedrock-agentcore SDK. Ši klasė tvarko sudėtingumą, susijusį su izoliuotų naršyklės aplinkų kūrimu ir valdymu debesyje. Pagrindinis šio žingsnio rezultatas yra SigV4 iš anksto pasirašytas URL, kuris suteikia saugią, laikiną prieigą prie naršyklės sesijos tiesioginio vaizdo srauto.

// Pavyzdys serverio pusės kodo (Node.js)
import { Browser } from 'bedrock-agentcore';
import { AgentCoreClient } from '@aws-sdk/client-bedrock-agentcore';

// Inicijuoti Bedrock AgentCore klientą (užtikrinti, kad tinkami AWS kredencialai būtų sukonfigūruoti)
const agentCoreClient = new AgentCoreClient({ region: 'us-east-1' }); // Naudokite pageidaujamą regioną

async function startLiveSession() {
    // Sukurti naują naršyklės sesiją
    const browser = new Browser(agentCoreClient);
    await browser.create();

    // Sugeneruoti tiesioginio vaizdo URL
    const liveViewUrl = await browser.getLiveViewURL();
    console.log('Tiesioginio vaizdo URL:', liveViewUrl);

    // Išsaugoti browser.sessionId, kad vėliau prijungtumėte savo DI agentą arba nutrauktumėte sesiją
    const sessionId = browser.sessionId;
    
    return { liveViewUrl, sessionId };
}

// Šis `liveViewUrl` bus išsiųstas jūsų React klientui.

Šis URL yra perduodamas jūsų React frontend'ui, kuris jį naudos tiesioginio srauto užmezgimui.

2. Tiesioginio vaizdo atvaizdavimas jūsų React programoje

Kai jūsų React programa gauna liveViewUrl iš jūsų serverio, realaus laiko srauto atvaizdavimas yra stebėtinai paprastas, dėka BrowserLiveView komponento.

// Pavyzdys kliento pusės kodo (React komponentas)
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>Laukiama tiesioginio vaizdo URL...</p>;
    }

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

// Jūsų pagrindiniame App komponente ar puslapyje:
// const MyPage = () => {
//     const [currentLiveViewUrl, setCurrentLiveViewUrl] = useState<string | null>(null);
//
//     useEffect(() => {
//         // Gauti liveViewUrl iš jūsų užpakalinės dalies
//         fetch('/api/start-agent-session')
//             .then(res => res.json())
//             .then(data => setCurrentLiveViewUrl(data.liveViewUrl));
//     }, []);
//
//     return (
//         <div>
//             <h1>DI Agento tiesioginis vaizdas</h1>
//             <LiveAgentViewer liveViewUrl={currentLiveViewUrl} />
//         </div>
//     );
// };

Vos su url={liveViewUrl}, BrowserLiveView komponentas tvarko sudėtingas detales, susijusias su WebSocket ryšio užmezgimu, DCV srauto vartojimu ir tiesioginio vaizdo srauto atvaizdavimu jūsų nurodytuose matmenyse. Šis minimalus JSX integravimas labai supaprastina front-end kūrimą, leidžiant jums sutelkti dėmesį į vartotojo patirtį, susijusią su tiesioginiu agentu.

3. DI agento prijungimas naršyklės valdymui

Paskutinis žingsnis sujungia jūsų DI agento intelektą su faktiniais naršyklės veiksmais izoliuotoje sesijoje. Nors BrowserLiveView teikia vizualinį grįžtamąjį ryšį, jūsų DI agentas naudoja Playwright CDP (Chrome DevTools protokolą), kad programiškai sąveikautų su naršykle.

Jūsų programos serveris, kuris taip pat talpina jūsų DI agentą, naudos Browser objekto page savybę (kuri yra Playwright Page objektas), kad vykdytų naršyklės veiksmus.

// Pavyzdys serverio pusės kodo (tęsinys iš 1 žingsnio)
// Darant prielaidą, kad turite Playwright panašią sąsają arba tiesioginį Playwright naudojimą
import { Browser } from 'bedrock-agentcore';
import { AgentCoreClient } from '@aws-sdk/client-bedrock-agentcore';
import { BedrockRuntimeClient, InvokeModelCommand } from "@aws-sdk/client-bedrock-runtime";

// ... (ankstesnis naršyklės kūrimo nustatymas) ...

async function driveAgent(sessionId: string) {
    const browser = new Browser(agentCoreClient, { sessionId }); // Prisijungti prie esamos sesijos iš naujo
    await browser.connect(); // Prisijungti prie naršyklės sesijos

    const page = browser.page; // Gauti Playwright Page objektą

    // Pavyzdys DI agento logikos (supaprastinta iliustravimui)
    // Čia jūs integruotumėte su savo LLM (pvz., Anthropic Claude per Bedrock Converse API)
    // kad nustatytumėte veiksmus pagal vartotojo užklausas ir puslapio turinį.
    console.log("Agentas naršoma į example.com...");
    await page.goto('https://www.example.com');
    console.log("Agentas laukė 3 sekundes...");
    await page.waitForTimeout(3000); // Imituoti apdorojimo laiką

    console.log("Agentas rašo į paieškos laukelį (hipotetinis)...");
    // Pavyzdys: await page.type('#search-input', 'Amazon Bedrock AgentCore');
    // Pavyzdys: await page.click('#search-button');

    const content = await page.content();
    // Naudoti LLM analizuoti 'content' ir nuspręsti kitus žingsnius
    const bedrockRuntimeClient = new BedrockRuntimeClient({ region: 'us-east-1' });
    const response = await bedrockRuntimeClient.send(new InvokeModelCommand({
        modelId: "anthropic.claude-3-sonnet-20240229-v1:0", // arba jūsų pageidaujamas modelis
        contentType: "application/json",
        accept: "application/json",
        body: JSON.stringify({
            messages: [
                {
                    role: "user",
                    content: `Išanalizuokite šį tinklalapio turinį ir pasiūlykite kitą veiksmą: ${content.substring(0, 500)}`
                }
            ],
            max_tokens: 200,
        }),
    }));
    const decodedBody = new TextDecoder("utf-8").decode(response.body);
    const parsedBody = JSON.parse(decodedBody);
    console.log("DI modelio pasiūlytas veiksmas:", parsedBody.content[0].text);

    // Remiantis LLM pasiūlymu, vykdyti tolesnius puslapio veiksmus...

    // Nepamirškite uždaryti naršyklės sesijos, kai baigsite
    // await browser.close();
}

// Paleidus sesiją ir gavus URL, tada iškviestumėte driveAgent(sessionId)

Šis sąveikos ciklas – kuriame jūsų DI agentas analizuoja puslapio turinį, nustato kitą veiksmą ir jį vykdo per Playwright CDP – sudaro autonominio naršymo agento esmę. Visi šie veiksmai vizualiai atvaizduojami realiuoju laiku per BrowserLiveView komponentą vartotojo ekrane.

Naujų galimybių atvėrimas su integruotais DI agentais

Amazon Bedrock AgentCore BrowserLiveView integravimas yra daugiau nei tik techninė funkcija; tai yra paradigmos pokytis, kaip vartotojai sąveikauja su dirbtinio intelekto agentais ir jais pasitiki. Integruodami realaus laiko vizualinį grįžtamąjį ryšį, kūrėjai gali kurti DI pagrįstas programas, kurios yra ne tik efektyvios, bet ir skaidrios, audituojamos ir patogios vartotojui.

Ši galimybė ypač keičia programas, apimančias:

  • Sudėtingos darbo eigos: Automatizuojant daugiapakopius internetinius procesus, tokius kaip duomenų įvedimas, įdarbinimas ar reguliavimo atitiktis, kur kiekvieno žingsnio matomumas yra itin svarbus.
  • Klientų aptarnavimas: Leidžiant agentams stebėti, kaip DI pagalbininkai sprendžia klientų užklausas ar naršo sistemose, užtikrinant tikslumą ir suteikiant galimybes įsikišti.
  • Mokymai ir derinimas: Suteikiant kūrėjams ir galutiniams vartotojams galingą įrankį suprasti agento elgesį, derinti problemas ir apmokyti agentus tiesioginiu stebėjimu.
  • Patobulinti audito takeliai: Generuojant vizualinius agento veiksmų įrašus, kurie gali būti derinami su sesijų įrašais į Amazon S3, siekiant išsamaus peržiūros po įvykio ir atitikties.

Galimybė tiesiogiai transliuoti naršyklės sesijas iš AWS debesies į kliento naršykles, apeinant programos serverį vaizdo srautui, suteikia didelių pranašumų našumo ir mastelio keitimo požiūriu. Ši architektūra sumažina delsą ir sumažina jūsų užpakalinės dalies infrastruktūros naštą, leidžiant jums diegti labai reaguoojančius ir keičiamo dydžio DI agentų sprendimus.

Pasirinkdami BrowserLiveView, jūs ne tik kuriate DI agentus; jūs kuriate pasitikėjimą, kontrolę ir turtingesnę vartotojo patirtį. Ištirkite galimybes ir suteikite savo vartotojams pasitikėjimo deleguoti sudėtingas žiniatinklio užduotis išmaniesiems agentams.

Dažniausiai užduodami klausimai

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.

Būkite informuoti

Gaukite naujausias AI naujienas el. paštu.

Dalintis