
Amazon Bedrock AgentCore sprístupňuje živé náhľady webových aplikácií v relácii agenta
Amazon vo svojej ukážke opisuje, ako možno počas práce kódovacieho agenta sledovať živý náhľad vyvíjanej webovej aplikácie. Základom riešenia je Amazon Bedrock AgentCore runtime, v ktorom každá relácia agenta beží vo vlastnom izolovanom microVM. K povoleným portom konkrétnej relácie poskytuje autentifikovaný prístup takzvaný Session endpoint.
Takéto usporiadanie oddeľuje dva spôsoby komunikácie. Samotného agenta možno osloviť cez InvokeAgentRuntime. Doplnkové služby bežiace v rovnakej relácii, napríklad vývojový webový server alebo stavová trasa, sú dostupné cez Session endpoint, ak ich porty patria medzi výslovne povolené.
Porty a vznik endpointu
Pri vytváraní agent runtime možno v nastavení allowedPorts uviesť jeden až päť jednotlivých portov alebo rozsahov. Musia ležať medzi 8000 a 12000 a nesmú zasahovať do portov vyhradených platformou. Aplikácie dostupné týmto spôsobom musia počúvať na adrese 0.0.0.0.
Volanie InvokeAgentRuntime vráti URL Session endpointu v hlavičke X-Amzn-Bedrock-AgentCore-Runtime-Session-Endpoint-Url. Podporované SDK túto hodnotu sprístupňujú ako sessionEndpointUrl. URL patrí iba jednej relácii: každá požiadavka potrebuje poverenia a po skončení relácie endpoint prestane fungovať.
Autentifikácia a podporovaná prevádzka
Pri runtime autorizovanom cez IAM musia byť požiadavky HTTP, streamy HTTP/2 aj nadviazanie WebSocket spojenia podpísané mechanizmom SigV4. Volajúci zároveň potrebuje oprávnenie bedrock-agentcore:InvokeAgentRuntimeProxy. Ak runtime namiesto toho používa vstupný JWT authorizer, klient posiela bearer token.
Session endpoint prenáša HTTP/1.1 aj HTTP/2. Zahŕňa to server-sent events a gRPC, pričom podporované sú aj WebSocket spojenia. Práve kombinácia bežných HTTP požiadaviek a WebSocketu umožňuje v ukážke sprístupniť web a zároveň prenášať udalosti vývojového servera.
SDK bedrock-agentcore obsahuje klienta, ktorý môže vytvoriť lokálny endpoint. Ten dopĺňa poverenia do požiadaviek prehliadača a do WebSocket handshakov a následne ich odosiela na Session endpoint. Prehliadač sa tak pripája k lokálnej adrese, zatiaľ čo klient zabezpečí autentifikované preposlanie do relácie.
Ako je zostavená ukážka
V predvedenom zapojení beží kódovací agent na porte 8080, vývojový server Vite na porte 8090 a stavová trasa agenta na porte 8081. Zoznam portov dostupných cez Session endpoint obsahuje 8090 a 8081. Port 8080 je vynechaný, pretože komunikáciu s agentom zabezpečuje InvokeAgentRuntime a Session endpoint na ňu nie je potrebný.
Keď agent uloží zmenený súbor, Vite odošle informáciu o zmene cez svoj hot-reload WebSocket. Spojenie prechádza cez Session endpoint a lokálny endpoint až do prehliadača. Zobrazený web sa preto aktualizuje bez manuálneho obnovenia stránky. Ukážka tak prepája úpravu súborov agentom, stále bežiaci Vite server a autentifikovaný prenos udalostí v rámci tej istej relácie.
Požiadavky a hranice prístupu
Na spustenie ukážky sú uvedené Python 3.10 alebo novší, bedrock-agentcore vo verzii 1.25.2 alebo novšej a boto3 vo verzii 1.43.122 alebo novšej. Potrebný je aj Node.js 22 alebo novší s npm, Git, prostredie Jupyter a prístup k modelu Claude Haiku 5.5 v Amazon Bedrock.
Zoznam povolených portov nie je iba opis konfigurácie, ale priamo určuje, kam možno cez endpoint pristupovať. Požiadavka na port mimo allowedPorts je odmietnutá odpoveďou HTTP 403 AccessDenied. Rovnaké odmietnutie nastane pri požiadavke bez poverení. Ak odmietnutie vytvorí runtime, telo odpovede je prázdne a chybový kód sa nachádza v hlavičke odpovede.
Pre používateľa ukážky sú preto podstatné tri väzby: služba musí počúvať na vhodnej adrese, jej port musí byť povolený a každá komunikácia musí byť autentifikovaná podľa zvoleného spôsobu autorizácie. Session endpoint zostáva viazaný na životnosť jednej relácie, takže nejde o trvalú adresu nezávislú od agenta.
Výsledný tok je presne ohraničený: InvokeAgentRuntime oslovuje agenta a zároveň poskytne adresu relácie; Session endpoint sprístupní iba nakonfigurované doplnkové porty; lokálny klient pridá potrebné poverenia pre prehliadač; a Vite cez WebSocket oznámi uložené zmeny. Vďaka tomu možno počas práce agenta sledovať aktuálnu podobu webu bez opakovaného ručného načítania.