Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
第159回 雲勉 Amazon Bedrock でブラウザを操作する AI エージェントを作ってみた
Search
iret.kumoben
April 03, 2025
Technology
0
95
第159回 雲勉 Amazon Bedrock でブラウザを操作する AI エージェントを作ってみた
下記、勉強会での資料です。
https://youtu.be/c3vdlpFceVA
iret.kumoben
April 03, 2025
Tweet
Share
More Decks by iret.kumoben
See All by iret.kumoben
第170回 雲勉 Lyria が切り拓く音楽制作の未来
iret
1
20
第169回 雲勉 AWS WAF 構築 RTA
iret
0
31
第168回 雲勉 JITNAの使い方とハマったポイントについて語る回
iret
0
35
第167回 雲勉 エージェント開発を加速する Agent Development Kit 入門
iret
1
42
第166回 雲勉 コードを読んで理解する AWS Amplify Gen2 Backend
iret
0
43
第165回 雲勉 Google Agentspace について
iret
0
37
第164回 雲勉 Agent Development Kit と MCP Toolbox for Databases で MCP 連携してみた
iret
1
85
第163回 雲勉 CircleCIで複数リポジトリ間のパイプラインを連携する
iret
1
38
第162回 雲勉 比較して学ぶ AWS Amplify Gen 2
iret
0
50
Other Decks in Technology
See All in Technology
【CEDEC2025】現場を理解して実現!ゲーム開発を効率化するWebサービスの開発と、利用促進のための継続的な改善
cygames
PRO
0
720
Perlアプリケーションで トレースを実装するまでの 工夫と苦労話
masayoshi
1
400
Mambaで物体検出 完全に理解した
shirarei24
2
210
帳票構造化タスクにおけるLLMファインチューニングの性能評価
yosukeyoshida
1
230
20250728 MCP, A2A and Multi-Agents in the future
yoshidashingo
1
210
S3 Glacier のデータを Athena からクエリしようとしたらどうなるのか/try-to-query-s3-glacier-from-athena
emiki
0
180
【2025 Japan AWS Jr. Champions Ignition】点から線、線から面へ〜僕たちが起こすコラボレーション・ムーブメント〜
amixedcolor
1
120
解消したはずが…技術と人間のエラーが交錯する恐怖体験
lamaglama39
0
190
ソフトウェア開発プロジェクトでの品質管理への提案(温故知新)
yohwada
0
100
家族の思い出を形にする 〜 1秒動画の生成を支えるインフラアーキテクチャ
ojima_h
1
170
alecthomas/kong はいいぞ
fujiwara3
6
1.4k
LLMでAI-OCR、実際どうなの? / llm_ai_ocr_layerx_bet_ai_day_lt
sbrf248
0
430
Featured
See All Featured
Making Projects Easy
brettharned
117
6.3k
Into the Great Unknown - MozCon
thekraken
40
2k
4 Signs Your Business is Dying
shpigford
184
22k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Speed Design
sergeychernyshev
32
1.1k
Docker and Python
trallard
45
3.5k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Faster Mobile Websites
deanohume
308
31k
Thoughts on Productivity
jonyablonski
69
4.8k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.5k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
Transcript
第159回 雲勉 Amazon Bedrockで ブラウザを操作する AIエージェントを作ってみた
お話すること 2 • AIによるブラウザ操作とは何か • 利用技術の紹介 • Amazon Bedrockの機能紹介 •
実現方法概略:ブラウザを操作するAIエージェントについて • 実装時の注意点とAIエージェントにおける認証・認可 • まとめ
講師自己紹介 3 ▪ 山田 顕人 アイレット株式会社 MSP開発セクション ▪ 受賞歴 •
LAPRAS OUTPUT AWARD • Google Cloud Partner Tech Blog Challenge 2023 Cloud AI/ML部門 • Google Cloud Partner Top Engineer 2025 Data Analytics
AIによるブラウザ操作とは 4
AIがブラウザを操作するってどう考えたらいいのか 5 受けた指示を元にツールやファンクションの実行を代行する。 指示(プロンプト) アクション ツール実行
つまりどういうこと(1つの考えを述べると) 6 プロンプトの内容を元にTool Useを使ってブラウザの操作を実行する。 指示(プロンプト) アクション Tool Use
ここで今回利用する技術の紹介! 7 • Amazon Bedrock Converse API • Amazon Bedrock
Tool Use • WebDriver
Amazon Bedrock Converse APIとは 8 簡単に説明すると:AIと自然な会話をするためのAPI 対話型のチャットを実現する上ではとても便利なAPI 今日は何曜日か 教えてください。 月曜日です。
Amazon Bedrock Tool Useとは 9 簡単に説明すると:AIによるアプリケーション/メソッド/APIの実行 どういう時に利用するか:最新情報に対する回答や複雑な計算、特定の処理を委託する時 今日は何曜日か 教えてください。 現在時刻によると
火曜日です。 point: 時刻を取得するツールを実行 現在時刻を元に回答 なお、前提知識がない場合 AIは学習データを元に回答するため もっともらしい回答をします。(次のスライドで説明)
補足:もっともらしい回答だけども、事実とは異なる回答(ハルシネーション) 10 簡単に説明すると:事実とは異なる回答をしてしまうこと ※他のサービスにおいては捏造(ねつぞう)と表現する場合もあります。 今日は何曜日か 教えてください。 月曜日です。 point: AIは学習データを元に回答しているため 正しい場合もあります。
現在時刻はAIの知識にはない場合が多いため 不正確な回答になります。 ※実際には火曜日
WebDriverとは 11 簡単に説明すると:ブラウザを操作できるリモコンの総称。あるいはOSSの名称 主にどんな用途で利用されるか:E2Eテスト(Seleniumなど) ブラウザによってWebDriverは提供されており、利用するブラウザによって名前が異なる。 httpリクエストをWebDriverに送ることでブラウザを操作できる。 Microsoft Edge WebDriver ChromeDriver
Google Chrome Microsoft Edge WebDriver
補足:WebDriverに関する解説 12 もっと詳しく知りたい人は以下のzenn記事を参照してください。 参考:https://zenn.dev/ymd65536/articles/webdriver_without_selenium_genai
実現方法概略 13
結論から先に 14 プロンプト Tool Use Converse API WebDriver Amazon Bedrock
Google Chrome 操作
Amazon Bedrockがブラウザを操作する?! 15 Converse APIとTool Useを使ってWebDriverにリクエストを送る。 参考:https://qiita.com/ymd65536/items/5f747a9a7c9e0deda84d
Amazon Bedrockによる実装、簡単3Step 16 AWS SDK for Python(Boto3)で簡単に実装できる 1. 関数定義(WebDriverを利用するための定義) 2.
関数のtoolSpecを作成 3. Converse APIを実行 ※model_id、プロンプト、ToolConfiguration、InferenceConfigが必要
関数定義 17 WebDriverにhttpリクエストを送信
関数のtoolSpecを作成 18
Converse APIを実行 19
AIによるブラウザ操作を実装する際の注意点 20 • 本番環境においてはサンドボックス環境で実行すること • 検証環境や開発環境で実行する場合はリスクを承知の上で実行すること • Webスクレイピングを実行する場合はアクセス先の利用規約を確認すること • アクセス先に高負荷を与えないこと
上記に加えて以下の観点も重要(後述) • AIには適切な認証・認可を与えること
補足:サンドボックス環境とは 21 簡単に説明すると:仮想環境 主にどんな用途で利用されるか:実行することに危険が伴うプログラム (例えば、マルウェアの検証) 本番環境においてはAmazon ECSやAWS Lambdaなどのサービスが有効 開発環境においてはVisual Studio
Codeで利用できるDev Containersが有効
デモ 22 bedrock_night.mov
AIエージェントの理想系 23 抽象的なプロンプトを元にToolを使ってブラウザの操作を実行する。 指示(プロンプト) アクション Tool Use “申し込みフォームにメールアドレスと名前を入力して登録をクリックしてください 。登録した内容をカレンダーにリマインダーとして登録してください。” 上記は簡単な例だが、アクセス先には必ず認証があるため実際にはもっと複雑
従来のデジタルアイデンティティではなく、AIエージェントにおけるデジタルアイデンティティも 必要 Converse API
AIエージェントにおけるデジタルアイデンティティの重要性 24 伝えたいこと:自分ではない他の誰かが自分の利用しているものを操作できてしまう危険性 Bさんの指示 カレンダー 登録API Tool Use Aさんのカレンダー Aさんの認証情報
前提:BさんはAさんのカレンダーを操作する権限がない状態 AIはAさんのカレンダーを操作する権限(認証・認可)を持っているため BさんはAIを通すことでAさんのカレンダーを操作できてしまう。 認証・認可 Converse API
余談:AIエージェントの認証・認可のフレームワーク 25 引用:https://www.arxiv.org/abs/2501.09674 AIエージェントに関する認証・認可フレームワークの提案
まとめ 26 • AIによるブラウザ操作について考え方をおさらい • AWSのサービスではConverse APIとTool Useを利用 • ブラウザ操作にはWebDriverというOSSを利用
• 実装方法の注意点を確認しつつ、実現方法概略を確認 • AIによるアプリケーション/メソッド/APIの実行における認証・認可