Code Velocity
Інструменти розробника

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

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

Кодова база для реалізації Live View зазвичай розділена: код на стороні сервера (для керування сеансами та логіки AI агента) працює в Node.js, а код на стороні клієнта (для рендерингу Live View) працює в React-додатку, часто зібраному за допомогою таких інструментів, як Vite.

Покрокова інтеграція: від сеансу до потоку

Інтеграція живого AI браузерного агента з Amazon Bedrock AgentCore передбачає чіткий, триетапний процес, що поєднує логіку на стороні сервера з вашим клієнтським React-додатком та надійними можливостями AWS Cloud.

1. Запуск сеансу браузера та генерація URL-адреси Live View

Перший крок відбувається на сервері вашого додатка. Саме тут ваша серверна логіка ініціює сеанс браузера в Amazon Bedrock AgentCore та безпечно отримує необхідну URL-адресу для потокової передачі живого перегляду.

Ви будете використовувати клас Browser з SDK bedrock-agentcore. Цей клас обробляє складність створення та керування ізольованими середовищами браузера в хмарі. Ключовим результатом цього кроку є попередньо підписана URL-адреса SigV4, яка надає безпечний, тимчасовий доступ до живого відеопотоку сеансу браузера.

// Приклад серверного коду (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-адресу Live View
    const liveViewUrl = await browser.getLiveViewURL();
    console.log('Live View URL:', liveViewUrl);

    // Збережіть browser.sessionId, щоб пізніше підключити свого AI агента або завершити сеанс
    const sessionId = browser.sessionId;
    
    return { liveViewUrl, sessionId };
}

// Ця `liveViewUrl` буде надіслана вашому клієнту React.

Ця URL-адреса потім передається вашому інтерфейсу React, який використовуватиме її для встановлення прямого ефіру.

2. Відображення Live View у вашому 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-адреси Live View...</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>Live View 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 (яка є об'єктом Playwright Page) для виконання дій браузера.

// Приклад серверного коду (продовження з кроку 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-копілоти вирішують запити клієнтів або переміщуються по системах, забезпечуючи точність та надаючи можливості для втручання.
  • Навчання та налагодження: Надання розробникам та кінцевим користувачам потужного інструменту для розуміння поведінки агента, налагодження проблем та навчання агентів шляхом безпосереднього спостереження.
  • Розширені аудиторські сліди: Створення візуальних записів дій агента, які можна поєднати з записами сеансів в 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.

Будьте в курсі

Отримуйте найсвіжіші новини ШІ на пошту.

Поділитися