Code Velocity
Инструменти за разработчици

Bedrock AgentCore: Вграждане на AI браузър агент на живо в React

·5 мин четене·AWS·Оригинален източник
Сподели
Архитектурна диаграма на Amazon Bedrock AgentCore, показваща потока на данни за вграждане на AI браузър агент на живо в React приложение.
  • Ако използвате AWS Bedrock за вашия AI модел, инсталирайте AWS SDK за JavaScript:
    npm install @aws-sdk/client-bedrock-runtime
    

Кодовата база за внедряване на Изглед на живо обикновено е разделена: сървърната страна на кода (за управление на сесии и логика на AI агента) се изпълнява в Node.js, а клиентската страна на кода (за рендиране на Изглед на живо) се изпълнява в React приложение, често пакетирано с инструменти като Vite.

Поетапна интеграция: От сесия до поток

Интегрирането на AI браузър агент на живо с Amazon Bedrock AgentCore включва ясен, триетапен процес, свързващ логиката на сървърната ви страна с вашето React приложение от страна на клиента и стабилните възможности на AWS Cloud.

1. Стартиране на браузър сесия и генериране на URL адреса за Изглед на живо

Първата стъпка се извършва на сървъра на вашето приложение. Тук вашата бекенд логика инициира браузър сесия в Amazon Bedrock AgentCore и сигурно получава необходимия URL адрес за стрийминг на изгледа на живо.

Ще използвате класа Browser от bedrock-agentcore SDK. Този клас обработва сложността на създаването и управлението на изолирани браузър среди в облака. Ключовият резултат от тази стъпка е SigV4-предварително подписан URL адрес, който предоставя защитен, временен достъп до видео потока на живо от браузър сесията.

// Пример за сървърна страна на кода (Node.js)
import { Browser } from 'bedrock-agentcore';
import { AgentCoreClient } from '@aws-sdk/client-bedrock-agentcore';

// Инициализиране на Bedrock AgentCore клиент (уверете се, че са конфигурирани правилните AWS идентификационни данни)
const agentCoreClient = new AgentCoreClient({ region: 'us-east-1' }); // Използвайте желания от вас регион

async function startLiveSession() {
    // Създаване на нова браузър сесия
    const browser = new Browser(agentCoreClient);
    await browser.create();

    // Генериране на URL адреса за Изглед на живо
    const liveViewUrl = await browser.getLiveViewURL();
    console.log('URL за Изглед на живо:', liveViewUrl);

    // Съхранете browser.sessionId, за да свържете по-късно вашия AI агент или да прекратите сесията
    const sessionId = browser.sessionId;
    
    return { liveViewUrl, sessionId };
}

// Този `liveViewUrl` ще бъде изпратен до вашия React клиент.

Този URL адрес след това се предава на вашия React фронтенд, който ще го използва за установяване на потока на живо.

2. Рендиране на Изглед на живо във вашето React приложение

След като вашето React приложение получи liveViewUrl от вашия сървър, рендирането на потока в реално време е забележително лесно, благодарение на компонента BrowserLiveView.

// Пример за клиентска страна на кода (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>Изчакване на URL адрес за Изглед на живо...</p>;
    }

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

// Във вашия основен компонент App или страница:
// const MyPage = () => {
//     const [currentLiveViewUrl, setCurrentLiveViewUrl] = useState<string | null>(null);
//
//     useEffect(() => {
//         // Извличане на liveViewUrl от вашия бекенд
//         fetch('/api/start-agent-session')
//             .then(res => res.json())
//             .then(data => setCurrentLiveViewUrl(data.liveViewUrl));
//     }, []);
//
//     return (
//         <div>
//             <h1>Изглед на живо от AI агент</h1>
//             <LiveAgentViewer liveViewUrl={currentLiveViewUrl} />
//         </div>
//     );
// };

Само с url={liveViewUrl}, компонентът BrowserLiveView обработва сложните детайли по установяване на WebSocket връзката, консумиране на DCV потока и рендиране на видео потока на живо в рамките на вашите определени размери. Тази минимална JSX интеграция значително опростява разработката на фронтенда, позволявайки ви да се съсредоточите върху потребителското изживяване около агента на живо.

3. Свързване на AI агент за управление на браузъра

Последната стъпка свързва интелигентността на вашия AI агент с действителните браузър действия в изолираната сесия. Докато BrowserLiveView осигурява визуалната обратна връзка, вашият AI агент използва Playwright CDP (Chrome DevTools Protocol), за да взаимодейства програмно с браузъра.

Вашият сървър на приложението, който също хоства вашия AI агент, ще използва свойството page на обекта Browser (което е обект Page на Playwright) за изпълнение на браузър действия.

// Пример за сървърна страна на кода (продължение от стъпка 1)
// Приема се, че имате интерфейс, подобен на Playwright, или директно използване на Playwright
import { Browser } from 'bedrock-agentcore';
import { AgentCoreClient } from '@aws-sdk/client-bedrock-agentcore';
import { BedrockRuntimeClient, InvokeModelCommand } from "@aws-sdk/client-bedrock-runtime";

// ... (предишна настройка за създаване на браузър) ...

async function driveAgent(sessionId: string) {
    const browser = new Browser(agentCoreClient, { sessionId }); // Повторно свързване към съществуваща сесия
    await browser.connect(); // Свързване към браузър сесията

    const page = browser.page; // Вземане на обекта Playwright Page

    // Примерна логика на AI агент (опростена за илюстрация)
    // Тук бихте интегрирали с вашия LLM (напр. Anthropic Claude чрез Bedrock Converse API),
    // за да определите действия въз основа на потребителски подкани и съдържание на страницата.
    console.log("Агентът навигира до example.com...");
    await page.goto('https://www.example.com');
    console.log("Агентът изчака 3 секунди...");
    await page.waitForTimeout(3000); // Симулиране на време за обработка

    console.log("Агентът въвежда в поле за търсене (хипотетично)...");
    // Пример: await page.type('#search-input', 'Amazon Bedrock AgentCore');
    // Пример: await page.click('#search-button');

    const content = await page.content();
    // Използвайте LLM, за да анализира 'content' и да реши следващите стъпки
    const bedrockRuntimeClient = new BedrockRuntimeClient({ region: 'us-east-1' });
    const response = await bedrockRuntimeClient.send(new InvokeModelCommand({
        modelId: "anthropic.claude-3-sonnet-20240229-v1:0", // или предпочитания от вас модел
        contentType: "application/json",
        accept: "application/json",
        body: JSON.stringify({
            messages: [
                {
                    role: "user",
                    content: `Анализирайте съдържанието на тази уеб страница и предложете следващото действие: ${content.substring(0, 500)}`
                }
            ],
            max_tokens: 200,
        }),
    }));
    const decodedBody = new TextDecoder("utf-8").decode(response.body);
    const parsedBody = JSON.parse(decodedBody);
    console.log("AI моделът предложи действие:", parsedBody.content[0].text);

    // Въз основа на предложението на LLM, изпълнете допълнителни действия на страницата...

    // Не забравяйте да затворите браузър сесията, когато приключите
    // await browser.close();
}

// След стартиране на сесията и получаване на URL адреса, бихте извикали driveAgent(sessionId)

Тази цикъл на взаимодействие – където вашият AI агент анализира съдържанието на страницата, определя следващото действие и го изпълнява чрез Playwright CDP – формира ядрото на автономен браузър агент. Всички тези действия се рендират визуално в реално време чрез компонента BrowserLiveView на екрана на потребителя.

Отключване на нови възможности с вградени AI агенти

Интеграцията на BrowserLiveView на Amazon Bedrock AgentCore е повече от просто техническа функция; тя е промяна в парадигмата на това как потребителите взаимодействат с и се доверяват на AI агенти. Чрез вграждане на визуална обратна връзка в реално време, разработчиците могат да създават AI-захранвани приложения, които са не само ефективни, но и прозрачни, подлежащи на одит и лесни за употреба.

Тази възможност е особено трансформативна за приложения, включващи:

  • Сложни работни процеси: Автоматизиране на многоетапни онлайн процеси като въвеждане на данни, онбординг или спазване на регулации, където видимостта на всяка стъпка е от първостепенно значение.
  • Поддръжка на клиенти: Позволяване на агенти да наблюдават AI ко-пилоти, решаващи запитвания на клиенти или навигиращи системи, осигурявайки точност и предоставяйки възможности за намеса.
  • Обучение и отстраняване на грешки: Предоставяне на разработчици и крайни потребители на мощен инструмент за разбиране на поведението на агента, отстраняване на проблеми и обучение на агенти чрез директно наблюдение.
  • Подобрени одитни пътеки: Генериране на визуални записи на действията на агента, които могат да бъдат комбинирани със записи на сесии в Amazon S3 за цялостен преглед след събитието и съответствие.

Възможността за директен стрийминг на браузър сесии от AWS Cloud към клиентски браузъри, заобикаляйки сървъра на приложението за видео потока, предлага значителни предимства по отношение на производителността и мащабируемостта. Тази архитектура минимизира латентността и намалява натоварването на вашата бекенд инфраструктура, което ви позволява да внедрявате изключително отзивчиви и мащабируеми решения за AI агенти.

Чрез приемането на BrowserLiveView вие не просто изграждате AI агенти; вие изграждате доверие, контрол и по-богато потребителско изживяване. Разгледайте възможностите и дайте възможност на вашите потребители с увереност да делегират сложни уеб задачи на интелигентни агенти.

Често задавани въпроси

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.

Бъдете информирани

Получавайте последните AI новини по имейл.

Сподели