Slide 1

Slide 1 text

第159回 雲勉 Amazon Bedrockで ブラウザを操作する AIエージェントを作ってみた

Slide 2

Slide 2 text

お話すること 2 ● AIによるブラウザ操作とは何か ● 利用技術の紹介 ● Amazon Bedrockの機能紹介 ● 実現方法概略:ブラウザを操作するAIエージェントについて ● 実装時の注意点とAIエージェントにおける認証・認可 ● まとめ

Slide 3

Slide 3 text

講師自己紹介 3 ■ 山田 顕人 アイレット株式会社 MSP開発セクション ■ 受賞歴 • LAPRAS OUTPUT AWARD • Google Cloud Partner Tech Blog Challenge 2023 Cloud AI/ML部門 • Google Cloud Partner Top Engineer 2025 Data Analytics

Slide 4

Slide 4 text

AIによるブラウザ操作とは 4

Slide 5

Slide 5 text

AIがブラウザを操作するってどう考えたらいいのか 5 受けた指示を元にツールやファンクションの実行を代行する。 指示(プロンプト) アクション ツール実行

Slide 6

Slide 6 text

つまりどういうこと(1つの考えを述べると) 6 プロンプトの内容を元にTool Useを使ってブラウザの操作を実行する。 指示(プロンプト) アクション Tool Use

Slide 7

Slide 7 text

ここで今回利用する技術の紹介! 7 ● Amazon Bedrock Converse API ● Amazon Bedrock Tool Use ● WebDriver

Slide 8

Slide 8 text

Amazon Bedrock Converse APIとは 8 簡単に説明すると:AIと自然な会話をするためのAPI 対話型のチャットを実現する上ではとても便利なAPI 今日は何曜日か 教えてください。 月曜日です。

Slide 9

Slide 9 text

Amazon Bedrock Tool Useとは 9 簡単に説明すると:AIによるアプリケーション/メソッド/APIの実行 どういう時に利用するか:最新情報に対する回答や複雑な計算、特定の処理を委託する時 今日は何曜日か 教えてください。 現在時刻によると 火曜日です。 point: 時刻を取得するツールを実行 現在時刻を元に回答 なお、前提知識がない場合 AIは学習データを元に回答するため もっともらしい回答をします。(次のスライドで説明)

Slide 10

Slide 10 text

補足:もっともらしい回答だけども、事実とは異なる回答(ハルシネーション) 10 簡単に説明すると:事実とは異なる回答をしてしまうこと ※他のサービスにおいては捏造(ねつぞう)と表現する場合もあります。 今日は何曜日か 教えてください。 月曜日です。 point: AIは学習データを元に回答しているため 正しい場合もあります。 現在時刻はAIの知識にはない場合が多いため 不正確な回答になります。 ※実際には火曜日

Slide 11

Slide 11 text

WebDriverとは 11 簡単に説明すると:ブラウザを操作できるリモコンの総称。あるいはOSSの名称 主にどんな用途で利用されるか:E2Eテスト(Seleniumなど) ブラウザによってWebDriverは提供されており、利用するブラウザによって名前が異なる。 httpリクエストをWebDriverに送ることでブラウザを操作できる。 Microsoft Edge WebDriver ChromeDriver Google Chrome Microsoft Edge WebDriver

Slide 12

Slide 12 text

補足:WebDriverに関する解説 12 もっと詳しく知りたい人は以下のzenn記事を参照してください。 参考:https://zenn.dev/ymd65536/articles/webdriver_without_selenium_genai

Slide 13

Slide 13 text

実現方法概略 13

Slide 14

Slide 14 text

結論から先に 14 プロンプト Tool Use Converse API WebDriver Amazon Bedrock Google Chrome 操作

Slide 15

Slide 15 text

Amazon Bedrockがブラウザを操作する?! 15 Converse APIとTool Useを使ってWebDriverにリクエストを送る。 参考:https://qiita.com/ymd65536/items/5f747a9a7c9e0deda84d

Slide 16

Slide 16 text

Amazon Bedrockによる実装、簡単3Step 16 AWS SDK for Python(Boto3)で簡単に実装できる 1. 関数定義(WebDriverを利用するための定義) 2. 関数のtoolSpecを作成 3. Converse APIを実行 ※model_id、プロンプト、ToolConfiguration、InferenceConfigが必要

Slide 17

Slide 17 text

関数定義 17 WebDriverにhttpリクエストを送信

Slide 18

Slide 18 text

関数のtoolSpecを作成 18

Slide 19

Slide 19 text

Converse APIを実行 19

Slide 20

Slide 20 text

AIによるブラウザ操作を実装する際の注意点 20 ● 本番環境においてはサンドボックス環境で実行すること ● 検証環境や開発環境で実行する場合はリスクを承知の上で実行すること ● Webスクレイピングを実行する場合はアクセス先の利用規約を確認すること ● アクセス先に高負荷を与えないこと 上記に加えて以下の観点も重要(後述) ● AIには適切な認証・認可を与えること

Slide 21

Slide 21 text

補足:サンドボックス環境とは 21 簡単に説明すると:仮想環境 主にどんな用途で利用されるか:実行することに危険が伴うプログラム (例えば、マルウェアの検証) 本番環境においてはAmazon ECSやAWS Lambdaなどのサービスが有効 開発環境においてはVisual Studio Codeで利用できるDev Containersが有効

Slide 22

Slide 22 text

デモ 22 bedrock_night.mov

Slide 23

Slide 23 text

AIエージェントの理想系 23 抽象的なプロンプトを元にToolを使ってブラウザの操作を実行する。 指示(プロンプト) アクション Tool Use “申し込みフォームにメールアドレスと名前を入力して登録をクリックしてください 。登録した内容をカレンダーにリマインダーとして登録してください。” 上記は簡単な例だが、アクセス先には必ず認証があるため実際にはもっと複雑 従来のデジタルアイデンティティではなく、AIエージェントにおけるデジタルアイデンティティも 必要 Converse API

Slide 24

Slide 24 text

AIエージェントにおけるデジタルアイデンティティの重要性 24 伝えたいこと:自分ではない他の誰かが自分の利用しているものを操作できてしまう危険性 Bさんの指示 カレンダー 登録API Tool Use Aさんのカレンダー Aさんの認証情報 前提:BさんはAさんのカレンダーを操作する権限がない状態 AIはAさんのカレンダーを操作する権限(認証・認可)を持っているため BさんはAIを通すことでAさんのカレンダーを操作できてしまう。 認証・認可 Converse API

Slide 25

Slide 25 text

余談:AIエージェントの認証・認可のフレームワーク 25 引用:https://www.arxiv.org/abs/2501.09674 AIエージェントに関する認証・認可フレームワークの提案

Slide 26

Slide 26 text

まとめ 26 ● AIによるブラウザ操作について考え方をおさらい ● AWSのサービスではConverse APIとTool Useを利用 ● ブラウザ操作にはWebDriverというOSSを利用 ● 実装方法の注意点を確認しつつ、実現方法概略を確認 ● AIによるアプリケーション/メソッド/APIの実行における認証・認可