Amazon Bedrock AgentCore Browser Tool、レガシーWebアプリの自動化を支援
本文の状態
日本語全文を表示中
詳細モードで約21分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
AWS Machine Learning Blog
既存の RPA では対応が困難な、HTML レンダリングや複雑なワークフローを要するレガシー Web アプリケーションに対し、AI エージェントによる操作を可能にする。
Continue in AI NEW LAB
このニュースを、実務の判断につなげる
AI NEW LABで、試したことや先に確認したい条件を共有できます。まずはログインなしで読めます。
AI NEW LABで論点を見るAI深層分析を開く2026年8月14日 01:13
AI深層分析
キーポイント
レガシーシステムへの対応
既存の RPA では対応が困難な、HTML レンダリングや複雑なワークフローを要するレガシー Web アプリケーションに対し、AI エージェントによる操作を可能にする。
完全管理型ブラウザサービスの提供
AWS が提供するクラウド上の Chromium インスタンスを用いて、安全で隔離されたセッション内で AI エージェントがレガシーインターフェースと対話する仕組みを採用する。
技術的実装の詳細
Playwright の統合を通じて WebSocket ベースの Chrome DevTools Protocol (CDP) 接続を利用し、バックエンドの技術スタックに依存せず Web アプリを操作できる。
レガシーWebアプリケーションの複雑性
レガシーシステムは現代のREST APIを持たず、人間向けに設計されたウェブインターフェースを通じてのみ操作可能である。認証には多要素認証や proprietary なSSOが用いられ、ルールベースのRPAボットでは信頼性の高い自動化が困難である。
コンプライアンスと監査要件
規制業界におけるコンプライアンス要件と監査の必要性は、従来の自動化アプローチにとって重大な課題となる。
重要な引用
Enterprises across healthcare, manufacturing, retail, and financial services struggle to automate legacy web applications that demand human-like interaction beyond what standard Robotic Process Automation (RPA) can provide at scale.
The Amazon Bedrock AgentCore Browser Tool addresses these limitations by providing a fully managed, cloud-based browser service that AI agents use to interact with legacy web interfaces through secure, isolated browser sessions.
Enterprise RPA implementations typically face three significant technical challenges that traditional automation approaches struggle to address.
Documentation gaps after decades of modifications create additional complexity, with critical business logic existing only in institutional knowledge rather than accessible system specifications.
編集コメントを表示
編集コメント
レガシーシステムからの脱却が叫ばれる中、API を介さない直接操作というアプローチは、実務現場の課題解決に直結する重要な技術的進展である。AWS は既存のインフラ資産を維持しつつ AI 化を進めるための具体的なツールチェーンを提供したと言える。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
ヘルスケア、製造業、小売、金融サービスなど、多くの企業がレガシーな Web アプリケーションの自動化に苦慮しています。これらのシステムは、標準的な RPA(Robotic Process Automation)では対応できない、人間のようなインタラクションを必要とするケースがほとんどです。Amazon Bedrock AgentCore Browser Tool と Strands Agents を組み合わせることで、この課題を解決できます。これは完全管理型のブラウザサービスであり、AI エージェントが安全で隔離されたセッションを通じて、これらのレガシーなインターフェースを操作することを可能にします。
多くの企業が重要な業務を依然として古い技術上で実行しており、それらのシステムの多くは現代の API ではなく、サーバーサイドのミドルウェアによってレンダリングされた HTML のみを公開しているという現状があります。そのため、高頻度の手動データ入力コストが大きな負担となり、デジタルトランスフォーメーションの障壁となっています。
業界を問わず、多くの企業が直面する典型的なシナリオを考えてみましょう。ある大手保険会社では、年間数万件に及ぶ運用変更を、レガシーなポリシー管理システム上で処理しています。具体的にはプランの変更、請求調整、カバレッジの更新、付帯条項の追加などが含まれます。レガシーなサーバーサイドミドルウェアによって生成された複雑な Web インターフェースを手動で操作する専任スタッフを抱えるこの組織では、手作業によるミスだけで年間を通じて多大な損失を被っています。
各変更には、多段階のワークフローのナビゲーション、複数画面にわたるデータ入力、そしてビジネスルールとの整合性確認が必要です。これらのタスクは数千時間に及ぶ時間を要します。レガシーな Web アプリケーションが重要な業務運営の中核となっている限り、この課題はあらゆる業界で繰り返される共通の問題です。
Amazon Bedrock AgentCore Browser Tool は、これらの課題を解決するために設計された、完全管理型のクラウドベースのブラウザサービスです。AI エージェントは、このツールを通じて安全で隔離されたブラウザセッションを利用し、レガシーな Web インターフェースと対話できるようになります。
Browser Tool は、WebSocket ベースの Chrome DevTools Protocol (CDP) 経由で Playwright と統合されています。これにより、AI エージェントは、バックエンドの技術スタックが何であれ、レガシーな Web アプリケーションにアクセスして操作することが可能になります。このツールはクラウド上で管理された Chromium インスタンスを実行します。対象となるレガシーアプリケーションは、元々どのブラウザ向けに設計されていたかに関わらず、HTTP または HTTPS でアクセス可能であれば問題ありません。
モデル駆動型のオーケストレーションを行う Strands Agents と組み合わせることで、組織は単一ステップの自動化から複雑なマルチエージェントワークフローまで、スケーラブルで洗練された自動化プロセスを実装できます。本ソリューションは、Amazon Bedrock AgentCore runtime を介して Amazon Bedrock のファウンデーションモデル (FMs) と統合され、AWS Identity and Access Management (IAM) コントロールによるセッションごとの分離されたセキュリティと完全な監査証跡を提供します。これにより、企業は規制要件への準拠を維持しつつ、人的な監視体制を保ったまま、重要な業務プロセスの近代化を進めることが可能になります。
本稿では、Amazon Bedrock AgentCore Browser Tool と Strands Agents を活用して構築された AI 駆動のデジタルワーカーのリファレンス実装を紹介していきます。アーキテクチャの詳細や重要な設計判断、Terraform を用いたデプロイを含むエンタープライズ向けのブループリントについても解説します。
完全なソースコードは GitHub で公開されています。
ビジネスと技術的な課題の理解
企業向け RPA(Robotic Process Automation)の実装では、従来の自動化手法では対応が難しい 3 つの重大な技術的課題に直面することが一般的です。それは、レガシー Web アプリケーションとの統合における複雑さ、規制産業におけるコンプライアンス要件、そして実運用への展開を阻むスケーラビリティの限界です。
レガシー Web アプリケーションの複雑さ
保険会社のシナリオに戻りましょう。ポリシー管理システムは、業界を問わず多くのレガシーアプリケーションと同様、ブラウザに HTML、CSS、JavaScript を生成するサーバーサイドのミドルウェア上で数十年前に構築されました。これらのシステムには現代的な REST API が用意されていないため、自動化ソリューションは人間向けに設計されたウェブインターフェースを通じて操作する必要があります。また、複雑な多段階ワークフローや動的なフォーム検証、セッション依存の状態管理といった特徴があり、従来の RPA ボットではこれらを信頼性高く処理できません。数十年にわたる改修によりドキュメントが不足していることも複雑さを増しており、重要なビジネスロジックはシステム仕様としてアクセス可能な形で残されているのではなく、組織の暗黙知として存在しています。
認証メカニズムはこの問題をさらに複雑にします。一部のレガシーアプリケーションでは多要素認証(MFA)が必要とされたり、独自のシングルサインオン(SSO)が採用されていたり、予測不能な有効期限ルールを持つセッショントークンに依存していたりするケースがあります。ルールベースの RPA ボットはこうした状況で苦戦するため、本番環境では手動介入を要するケースが後を絶たないのです。保険シナリオでは、オペレーターが複雑なウェブインターフェースを操作してプランの変更を行います。被保険者の更新や受益者の変更、補足書類の処理などを行う際、それぞれ複数の画面と検証ステップが必要となりますが、UI の表示が想定と異なった場合に脆いルールベースのボットはこれらを信頼性高く処理できません。
コンプライアンスおよび監査要件
規制業界では、GDPR、HIPAA、金融規制に対応するため、ユーザーID、タイムスタンプ、データ変更履歴、システム間の相互作用を網羅的に記録する包括的な監査証跡の実装が必須です。技術的には、従来のRPAシステムでは広範なカスタム開発なしには実現できない、改ざん防止ログシステム、暗号化されたデータ転送、ロールベースのアクセス制御が必要です。金融規制では、6年間の改ざん不可能な記録保持と、直近90日分の即時アクセスが義務付けられています。これらの要件を満たす高度なログアーキテクチャは、多くのRPAシステムには備わっていません。
このシナリオにおけるすべてのポリシー変更は追跡可能でなければなりません。つまり、「誰が変更を開始したか」「何を変更したか」「いつ変更されたか」「承認されたかどうか」をすべて記録する必要があります。AIを活用したデジタルワーカーは、人間オペレーターと同等以上の監査可能性を提供できなければなりません。
スケーラビリティと脆さ
従来の RPA ソリューションには、エンタープライズ規模での成功を阻む根本的なアーキテクチャ上の制約があります。UI ベースの自動化は、画面レイアウトや要素の位置、アプリケーションのタイミングに対する脆い依存関係を生み出し、システムがわずかに更新されただけで機能しなくなります。ルールベースという従来の RPA の性質では、複雑なビジネスプロセスに必要な例外処理、動的コンテンツへの対応、そして認知判断を行うことができません。パフォーマンスの限界もこれらの課題をさらに悪化させます。
従来の RPA ボットは専用の仮想マシンや物理システムを必要とするため、リソースオーバーヘッドが生じ、スケーリングに制約がかかります。複数のプロセスを並行して処理する際のセッション管理が複雑になり、エラー回復機能も事前に定義されたシナリオに限られ、適応的な問題解決能力を持ちません。
当社の保険会社では、年間数万件のプラン変更を処理しています。登録期間や規制改正、年末処理などのピーク時に対応するために従来の RPA を拡張し、かつ信頼性を維持しようとすると、現実的ではないことが判明しました。組織が必要としたのは、予期せぬページ表示状態が発生した際に弾力的にスケールし、知的に回復できるアプローチでした。
解決策のアーキテクチャ
これらの課題に対処するには、JavaScript を多用する Web インターフェースを処理し、プロセス間でセッションを分離し、API を通じてプログラム制御を提供し、すべてのインタラクションを不変のログとして記録し、信頼度が低い場合は人間に委譲し、弾力的にスケールできる自動化が必要です。参照実装は、責任範囲が明確に限定された少数のコンポーネント群によってこれらの要件を満たしています。具体的には、オペレーター向けの React シングルページアプリケーション、特定のブラウザ制限を解決する TLS 終端プロキシ、Amazon Bedrock AgentCore ランタイム上で Strands Agents を実行する Python ワーカー、そして Amazon Bedrock AgentCore Browser Tool が提供する管理されたブラウザ環境です。
Amazon Cognito はオペレーターへのサインインを担当し、スタック全体を流れる JWT を発行します。このアーキテクチャは、セキュリティ、コンプライアンス、そして人間の監視を維持しつつ、自動化の投資対効果(ROI)向上を支援するように設計されています。

図 1: ソリューションアーキテクチャ
図中の番号付きステップは、エンドツーエンドのフローを追跡しています。
UI の読み込み
ユーザーのブラウザは、Amazon CloudFront を介して React 製のチャットインターフェースを読み込みます。このバックエンドには、静的な UI アセットをホストするプライベートな Amazon Simple Storage Service (S3) バケットが用意されています。
OIDC ログイン
ユーザーは、標準的な OpenID Connect (OIDC) のサインインフローを通じて認証を行います。Amazon Cognito が利用され、シングルページアプリケーション (SPA) およびマシン間通信用のアプリクライアントとして設定されています。
WebSocket 接続 (WSS)
ブラウザは、AWS Certificate Manager (ACM) 証明書を使用して TLS を終了する AWS Application Load Balancer (ALB) を経由し、WebSocket 接続を確立します。
プレーン HTTP プロキシ
ALB は、この WebSocket 接続をプライベートサブネット内で実行されている AWS Fargate タスク上の NGINX リバースプロキシへ転送します。プロキシはクエリ文字列から JWT を抽出し、次のステップに備えます。
Bearer トークンによる認証 (WSS Auth)
NGINX プロキシは、Authorization ヘッダーに JWT を含めて接続を Amazon Bedrock AgentCore ランタイムへ転送します。AgentCore ランタイムはその JWT 認可者を通じてトークンを検証し、Strands Agents、VisualBrowserTool、およびヒューマン・イン・ザ・ループハンドラーを実行するブラウザエージェントコンテナへルーティングします。
モデルの呼び出し (InvokeModel)
エージェントは、Amazon Bedrock 上のビジョン対応ファウンデーションモデルを呼び出してスクリーンショットを分析し、次に実行すべきブラウザ操作を決定します。
CDP / WSS (Playwright):エージェントは、Amazon Bedrock AgentCore Browser Tool を介して Chrome DevTools Protocol 上で孤立した Chrome インスタンスを操作します。このブラウザは、顧客のネットワーク上にあるレガシー Web アプリケーションにアクセスします。
PutObject:エージェントはセッションのトランスクリプトとスクリーンショットを Amazon S3 バケットに保存し、各スクリーンショットに対してプレサイン付き URL を生成します。その後、既存の WebSocket 接続を通じてこの URL をユーザーのブラウザへストリーミングします。
Pre-Signed URL Get:ユーザーのブラウザは、プレサイン付き URL を使用してスクリーンショット画像を S3 から直接取得し、チャット UI にエージェントの推論トレースと共に表示します。画像データ自体は WebSocket を経由せず、有効期限の短い URL のみが通信されます。
これらを支えるインフラストラクチャーには、NGINX ゲートウェイやブラウザエージェントのコンテナイメージをホストする Amazon Elastic Container Registry (Amazon ECR) と、監査ログおよび観測性を提供する Amazon CloudWatch が含まれます。
AgentCore Browser Tool
Amazon Bedrock AgentCore Browser Tool は、完全に管理されたクラウドベースのブラウザサービスです。AI エージェントは、安全で孤立したブラウザセッションを通じてレガシー Web インターフェースと対話します。各セッションは、独自の CPU、メモリ、ファイルシステムを持つ専用かつ孤立した環境で実行されます。セッションが完了すると、その環境は終了され、状態は完全に消去されます。
エージェントは、WebSocket ベースの CDP を介して Playwright と接続し、JavaScript を多用したインターフェースや動的フォーム、多段階ワークフローなど、基盤となる技術スタックに関わらず、Web アプリケーションをプログラム制御します。
前述の課題に対応する 3 つの主要機能は以下の通りです。
- ブラウザプロファイルはセッション間で認証状態を保持します。一度認証を行うか、人間がライブビューを通じて初回ログインを実行すれば、その後のセッションでは既に入力済みとして再開でき、SSO や MFA のフローを繰り返す必要がなくなります。
- プロキシ設定により、ドメインベースのルーティングと AWS Secrets Manager に保存された認証情報を用いてトラフィックを企業プロキシインフラ経由で転送します。これにより、企業ネットワーク内や IP 許可リスト付きポータルに位置する内部レガシーアプリケーションへのアクセスが可能になります。
- セッション記録機能は、クリックやフォーム入力、ページ遷移といったブラウザ操作をキャプチャし、Amazon S3 に保存します。AWS CloudTrail のログと組み合わせることで、金融規制における監査証跡要件に対応できます。
保険の事例に戻りましょう。Browser Tool は、人間オペレーターと同じようにポリシー管理システムをナビゲートします。プロファイルで保持されたセッション状態を用いてログインし、複数の画面にわたって変更を入力して提出します。これらはすべて安全かつ隔離されたセッション内で行われ、完全な再生可能な監査記録が生成されます。
Amazon Bedrock のファウンデーションモデルと Strands エージェントによるオーケストレーション
Amazon Bedrock は、エージェントの意思決定ループを駆動するマルチモーダル基盤モデルを提供します。参考実装では、ブラウザの現在の状態を示すスクリーンショットを分析し、次に取るべきアクションを決定するために、クロスリージョン推論を通じて Amazon Bedrock 上の視覚機能を持つ基盤モデルを使用しています。これが従来の RPA とこのソリューションを区別する中核的な能力です。モデルはページを見て画面の内容について推論し、クリック、入力、スクロール、あるいは人間の確認のための一時停止など、次に取るべきブラウザアクションを決定します。
Strands Agents は、モデルの意思決定を実際のツール呼び出しに変換するオーケストレーションフレームワークです。固定されたスクリプトに従うのではなく、モデルは ReAct(推論+実行)ループを通じて独自の行動を駆動します。モデルはスクリーンショットを取得し、ページを視覚的に分析してどのツールを呼び出すかを決定し、それを実行し、結果を観察してこれを繰り返します。このフレームワークは、階層型委任のための Agents-as-Tools、構造化されたワークフローのための Graphs、そして複雑な多段階プロセスのための協調パターンなど、複数のオーケストレーションパターンをサポートしています。
オペレーターが「ポリシー#12345を開き、補償額を 50 万ドルに更新して承認申請を行う」といった自然言語の指示を出すと、モデルはこれをブラウザ操作の連続したステップに分解します。各アクション実行後、モデルはスクリーンショットを取得し、新しいページの状態を視覚的に解釈して次の行動を決定します。予期せぬ確認ダイアログが表示された場合や、フィールドのバリデーションが想定と異なる場合でも、モデルは失敗するのではなく、新たな状態に対して推論を行って対応します。これにより、スケーラブルな運用において従来の RPA が抱える脆さ(brittleness)を解消できます。
保険業界のシナリオに適用すれば、単一の自然言語指示で、プラン変更ワークフロー全体を完結させることが可能です。モデルは視覚的に適切なポリシーへ移動し、スクリーンショットからフォームフィールドを特定し、複数の画面にわたって変更を入力し、予期せぬバリデーションプロンプトに対応し、最終的に承認申請を行います。UI の変化に合わせて各ステップを手動でスクリプト化したり、脆いセレクターの維持管理を行ったりする必要はありません。
Human-in-the-loop integration
オペレーターは自動化が進行する様子をリアルタイムで確認できます。エージェントは推論のトレースとスクリーンショットをチャットインターフェースにストリーミングします。モデルが変更を提出する前に、例えば正しいポリシーが開かれたことを人間が確認する必要があると判断した場合、handoff_to_user ツールを呼び出して自動化を一時停止し、オペレーターに対して質問と共に現在のスクリーンショットを表示します。
エージェントがレスポンスを待機している間、ブラウザセッションは維持されます(デフォルトでは最大 300 秒)。オペレーターは承認、拒否、追加指示の提供、あるいは別のアプローチを試すようエージェントに依頼することが可能です。レスポンスが届くと、モデルはオペレーターの入力に基づいて ReAct ループを再開します。まず画面の最新状態を確認するために新しいスクリーンショットを取得し、そこから処理を続行します。タイムアウト期間内にオペレーターから応答がない場合、モデルは再試行するか、代替アプローチを試みるか、あるいは適切に処理を終了するかを判断します。
保険業務のワークフローにおいては、この仕組みにより、プランの変更送信や受取人変更の確認、閾値を超えるエンドースメントの処理といった重要なアクションを実行する前にデジタルワーカーが一時停止します。これにより、オペレーターは変更が確定する前に画面上で正確性を確認する機会を得られます。すべての手順を手動で操作する必要はなく、最終的なコントロール権は常にオペレーターが保持します。
セキュリティとコンプライアンス
本アーキテクチャでは、セッションの分離、アクセス管理のための IAM コントロール、および使用後に状態をクリアする一時的なセッションが提供されます。リファレンス実装ではアイデンティティプロバイダーとして Amazon Cognito を採用しており、Microsoft Entra ID や Okta も OIDC 発見 URL の差し替えによりサポート可能です。標準準拠の OIDC プロバイダーであれば、同じ設定インターフェースで利用できます。
保険会社にとって、これはデジタルワーカーが実行するすべてのポリシー変更が完全に追跡可能であることを意味します。セッションの録画は Amazon S3 に保存され、アクションログは Amazon CloudWatch を通じて記録されます。これにより、金融規制における保持要件への対応が可能になります。
実装のウォークスルー
参照実装は、Strands Agents を基盤とした Python ワーカーとして提供されており、Amazon Bedrock AgentCore ランタイム上でデプロイされます。このエージェントは、AgentCore Browser Tool SDK を使用して、Strands AgentCoreBrowser ベースクラスを通じて孤立したブラウザセッションを作成します。完全なソースコードは GitHub リポジトリで公開されています。
エージェントによるブラウザ操作の仕組み
以下の図は、オペレーターからの単一の指示が自動化ループ全体をどのように通過するかを追跡したものです。オペレーターが自然言語コマンドを発行すると、エージェントはブラウザセッションを開始し、基盤モデルが ReAct サイクルに入ります。このプロセスではスクリーンショットの取得、ページの状態を視覚的に分析、次のアクションの決定、Playwright を介した実行が行われ、タスク完了までこれを繰り返します。

図 2: オペレーターからの指示から ReAct ループ(スクリーンショット、分析、実行、繰り返し)に至るチャットフロー
モデルが、フォームの送信やレコード選択の確認など重要なステップ前に人間の確認が必要と判断した場合、自動化を一時停止し、現在のスクリーンショットと質問をオペレーターに提示します。オペレーターが回答すると、モデルは
原文を表示
Enterprises across healthcare, manufacturing, retail, and financial services struggle to automate legacy web applications that demand human-like interaction beyond what standard Robotic Process Automation (RPA) can provide at scale. Amazon Bedrock AgentCore Browser Tool, combined with Strands Agents, addresses this gap with a fully managed browser service that lets AI agents drive these legacy interfaces through secure, isolated sessions. With the majority of enterprises still running critical workloads on legacy technology, and with most of those systems exposing only HTML rendered by server-side middleware rather than modern APIs, high-volume manual data entry remains a significant cost center and a barrier to digital transformation.
Consider a scenario familiar to enterprises across industries: a large insurance company processes tens of thousands of operational changes annually across legacy policy administration systems, including plan modifications, claims adjustments, coverage updates, and endorsements. With dedicated staff navigating complex web interfaces generated by legacy server-side middleware, the organization faces significant annual losses from manual errors alone. Each change requires navigating multi-step workflows, entering data across multiple screens, and validating against business rules. These tasks consume thousands of hours. This pattern repeats across industries wherever legacy web applications remain the backbone of critical business operations.
The Amazon Bedrock AgentCore Browser Tool addresses these limitations by providing a fully managed, cloud-based browser service that AI agents use to interact with legacy web interfaces through secure, isolated browser sessions. The Browser Tool uses Playwright integration through WebSocket-based Chrome DevTools Protocol (CDP) connections, so AI agents can interact with legacy web applications regardless of their underlying technology stack. The Browser Tool runs a managed Chromium instance in the cloud. The target legacy application needs to be accessible over HTTP or HTTPS, regardless of which browser it was originally designed for.
Combined with Strands Agents for model-driven orchestration, organizations can implement sophisticated automation workflows that scale from single-step automations to complex multi-agent workflows. The solution integrates with Amazon Bedrock foundation models (FMs) through Amazon Bedrock AgentCore runtime, providing session-isolated security with AWS Identity and Access Management (IAM) controls and full audit trails. This can help companies modernize critical workflows while supporting their regulatory compliance requirements and preserving human oversight.
In this post, we walk through a reference implementation of an AI-powered digital worker built with Amazon Bedrock AgentCore Browser Tool and Strands Agents. We cover the architecture, the key design decisions, and an enterprise blueprint with terraform deployment. The complete source code is available on GitHub.
Understanding the business and technical challenge
Enterprise RPA implementations typically face three significant technical challenges that traditional automation approaches struggle to address. These are legacy web application integration complexity, regulatory compliance requirements in regulated industries, and scalability limitations that prevent successful production deployment.
Legacy web application complexity
Returning to our insurance company scenario, the policy administration system, like many legacy applications across industries, was built decades ago on server-side middleware that generates HTML, CSS, and JavaScript for the browser. These systems lack modern REST APIs, requiring automation solutions to interact through web interfaces originally designed for human users. The applications feature complex multi-step workflows, dynamic form validation, and session-dependent state management that traditional RPA bots can’t reliably navigate. Documentation gaps after decades of modifications create additional complexity, with critical business logic existing only in institutional knowledge rather than accessible system specifications.
Authentication mechanisms compound the problem. Some legacy applications require multi-factor authentication (MFA), some use proprietary single sign-on (SSO), and many rely on session tokens with unpredictable expiration rules. Rules-based RPA bots struggle here, which is why production deployments end up with a long tail of manual interventions. In our insurance scenario, operators navigate a complex web interface to make plan modifications. They update coverage amounts, adjust beneficiaries, and process endorsements, each requiring multiple screens and validation steps that a brittle, rules-based bot cannot reliably handle when the UI renders differently than expected.
Compliance and audit requirements
Regulated industries must implement comprehensive audit trails that capture user identity, timestamps, data modifications, and system interactions for GDPR, HIPAA, and financial regulations. Technical implementation requires immutable logging systems, encrypted data transmission, and role-based access controls that traditional RPA systems cannot provide without extensive custom development. Financial regulations mandate tamper-proof record retention for six years with immediate accessibility for the most recent 90 days. These requirements necessitate sophisticated logging architectures that most RPA systems lack.
Every policy modification in this scenario must be traceable. That means capturing who initiated the change, what was changed, when, and whether it was approved. An AI-powered digital worker must provide the same level of auditability as a human operator, if not more.
Scalability and brittleness
Traditional RPA solutions face fundamental architectural constraints that prevent enterprise-scale success. UI-based automation creates brittle dependencies on screen layouts, element positioning, and application timing that break with minor system updates. The rules-based nature of traditional RPA can’t handle exceptions, dynamic content, or cognitive decision-making required for complex business processes. Performance limitations compound these issues. Traditional RPA bots require dedicated virtual machines or physical systems, creating resource overhead and scaling constraints. Session management becomes complex when handling multiple concurrent processes, and error recovery mechanisms are limited to predefined scenarios rather than adaptive problem-solving.
For our insurance company, the organization processes tens of thousands of plan changes annually. Scaling traditional RPA to handle peak volumes such as enrollment periods, regulatory changes, and year-end processing while maintaining reliability proved impractical. The organization needed an approach that could scale elastically and recover intelligently when a page renders in an unexpected state.
Solution architecture
Addressing these challenges requires automation that can handle JavaScript-heavy web interfaces, isolate sessions between processes, expose programmatic control through APIs, log every interaction immutably, defer to a human when confidence is low, and scale elastically. The reference implementation meets these requirements through a small set of components with tightly scoped responsibilities. These include a React single-page app for the operator, a TLS-terminating proxy that solves a specific browser limitation, a Python worker running Strands Agents on Amazon Bedrock AgentCore runtime, and the managed browser environment provided by Amazon Bedrock AgentCore Browser Tool. Amazon Cognito signs the operator in and issues the JWT that flows through the stack. The architecture is designed to help increase automation return on investment while maintaining security, compliance, and human oversight.

Figure 1: Solution architecture
The numbered steps in the diagram trace the end-to-end flow:
- Load UI. The user’s browser loads the React chat interface from Amazon CloudFront, backed by a private Amazon Simple Storage Service (Amazon S3) bucket hosting the static UI assets.
- OIDC Login. The user authenticates through Amazon Cognito (configured with SPA and machine-to-machine app clients) through the standard OpenID Connect (OIDC) sign-in flow.
- WSS. The browser opens a WebSocket connection through an AWS Application Load Balancer (ALB) that terminates TLS using an AWS Certificate Manager (ACM) certificate.
- Plain HTTP. The ALB forwards the WebSocket connection to an NGINX reverse proxy running as an AWS Fargate task in a private subnet. The proxy extracts the JWT from the query string and prepares it for the next hop.
- WSS Auth Bearer. The NGINX proxy forwards the connection to Amazon Bedrock AgentCore runtime with the JWT in the Authorization header. AgentCore runtime validates the token through its JWT authorizer and routes to the browser-agent container running Strands Agents, VisualBrowserTool, and the human-in-the-loop handler.
- InvokeModel. The agent calls a vision-capable foundation model on Amazon Bedrock to analyze screenshots and determine the next browser action.
- CDP / WSS (Playwright). The agent drives an isolated Chrome instance in Amazon Bedrock AgentCore Browser Tool over the Chrome DevTools Protocol. The browser navigates the target legacy web applications on the customer’s network.
- PutObject. The agent stores session transcripts and screenshots to an Amazon S3 bucket, generates a pre-signed URL for each screenshot, and streams the URL back to the user’s browser over the existing WebSocket connection.
- Pre-Signed URL Get. The user’s browser fetches the screenshot image directly from S3 using the pre-signed URL, rendering it in the chat UI alongside the agent’s reasoning trace. Image bytes don’t travel through the WebSocket. Only the short-lived URL does.
Supporting infrastructure includes Amazon Elastic Container Registry (Amazon ECR) (hosting the NGINX gateway and browser-agent container images) and Amazon CloudWatch (audit logging and observability).
AgentCore Browser Tool
Amazon Bedrock AgentCore Browser Tool provides a fully managed, cloud-based browser service. AI agents interact with legacy web interfaces through secure, isolated browser sessions. Each session runs in a dedicated, isolated environment with its own CPU, memory, and filesystem. When a session completes, the environment is terminated and the state is sanitized.
Agents connect through Playwright over WebSocket-based CDP for programmatic control of web applications, including JavaScript-heavy interfaces, dynamic forms, and multi-step workflows, regardless of the underlying technology stack.
Three capabilities directly address the challenges described earlier:
- Browser profiles persist authentication state across sessions. Authenticate once, or have a human operator perform the initial login through live-view, and subsequent sessions resume already signed in, alleviating repeated SSO and MFA flows.
- Proxy configuration routes traffic through corporate proxy infrastructure with domain-based routing and credentials on AWS Secrets Manager, making internal legacy applications behind corporate networks or IP-allowlisted portals reachable.
- Session recording captures browser interactions, including clicks, form inputs, and page navigation, and stores them in Amazon S3. Combined with AWS CloudTrail logging, this supports the audit trail requirements of financial regulations.
Returning to our insurance example, the Browser Tool navigates the policy administration system exactly as a human operator would. It signs in with profile-persisted session state, enters modifications across multiple screens, and submits changes, all within a secure, isolated session that produces a complete, replayable audit record.
Amazon Bedrock foundation models and Strands Agents orchestration
Amazon Bedrock provides the multi-modal foundation model that drives the agent’s decision loop. The reference implementation uses a vision-capable foundation model on Amazon Bedrock through cross-region inference to analyze screenshots of the browser’s current state and decide what action to take next. This is the core capability that differentiates the solution from traditional RPA. The model sees the page, reasons about what’s on screen, and determines the next browser action, whether that is a click, a fill, a scroll, or a pause for human confirmation.
Strands Agents is the orchestration framework that turns the model’s decisions into concrete tool calls. Rather than following a fixed script, the model drives its own behavior through a ReAct (Reason + Act) loop. The model captures a screenshot, analyzes the page visually, decides which tool to call, executes it, observes the result, and repeats. The framework supports multiple orchestration patterns, including Agents-as-Tools for hierarchical delegation, Graphs for structured workflows, and collaborative patterns for complex multi-step processes.
When an operator provides natural language instructions such as “open policy #12345, update the coverage amount to $500,000, and submit for approval,” the model decomposes these into sequential browser actions. After each action, the model takes a screenshot, interprets the new page state visually, and decides the next step. If a confirmation dialog appears unexpectedly or a field validates differently than anticipated, the model reasons through the new state rather than failing. This alleviates the brittleness that makes traditional RPA impractical at scale.
Applied to our insurance scenario, a single natural language instruction can drive a complete plan modification workflow. The model visually navigates to the right policy, identifies form fields from the screenshot, enters changes across multiple screens, handles unexpected validation prompts, and submits for approval. No human needs to script each step or maintain brittle selectors as the UI evolves.
Human-in-the-loop integration
The operator sees the automation as it happens. The agent streams reasoning traces and screenshots to the chat interface in real time. When the model determines it needs human input before, for example confirming that the correct policy was opened before submitting a change, it calls the handoff_to_user tool, which pauses the automation and presents the operator with a question and the current screenshot.
The browser session stays alive while the agent waits for a response (up to 300 seconds by default). The operator can approve, reject, provide additional instructions, or ask the agent to try a different approach. Once the response arrives, the model resumes the ReAct loop with the operator’s input. It takes a fresh screenshot to assess the current state and continues from there. If the operator doesn’t respond within the timeout window, the model decides whether to retry, attempt an alternative approach, or abort gracefully.
In the context of our insurance workflow, this means the digital worker pauses before critical actions such as submitting a plan modification, confirming a beneficiary change, or processing an endorsement that exceeds a threshold. This gives the operator the opportunity to verify accuracy on screen before the change becomes permanent. The operator remains in control without needing to drive every step manually.
Security and compliance
The architecture provides session isolation, IAM controls for access management, and ephemeral sessions where the state is cleared after each use. The reference implementation uses Amazon Cognito as the identity provider, with Microsoft Entra ID and Okta supported by swapping the OIDC discovery URL. Standards-aligned OIDC providers work with the same configuration surface.
For our insurance company, this means every policy modification performed by the digital worker is fully traceable, with session recordings stored in Amazon S3 and actions logged through Amazon CloudWatch. This supports the retention requirements of financial regulations.
Implementation walkthrough
The reference implementation ships as a Python worker built on Strands Agents, deployed on Amazon Bedrock AgentCore runtime. The agent uses the AgentCore Browser Tool SDK to create isolated browser sessions through the Strands AgentCoreBrowser base class. The complete source code is available in the GitHub repository.
How the agent drives the browser
The following diagram traces a single operator instruction through the full automation loop. The operator issues a natural language command, the agent starts a browser session, and the foundation model enters a ReAct cycle. It captures screenshots, analyzes page state visually, decides the next action, executes it through Playwright, and repeats until the task is complete.

Figure 2: Chat flow, from operator instruction through the ReAct loop
When the model determines it needs human confirmation before a critical step, such as submitting a form or confirming a record selection, it pauses the automation and presents the operator with the current screenshot and a question. The operator responds, and the model
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み