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
170
第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
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
21
第173回 雲勉 ノーコードで生成 AI アプリを構築!Google Cloud AI Applications(旧 Vertex AI Agent Builder)入門
iret
0
48
第170回 雲勉 Lyria が切り拓く音楽制作の未来
iret
1
27
第169回 雲勉 AWS WAF 構築 RTA
iret
0
35
第168回 雲勉 JITNAの使い方とハマったポイントについて語る回
iret
0
39
第167回 雲勉 エージェント開発を加速する Agent Development Kit 入門
iret
1
52
第166回 雲勉 コードを読んで理解する AWS Amplify Gen2 Backend
iret
0
45
第165回 雲勉 Google Agentspace について
iret
0
65
第164回 雲勉 Agent Development Kit と MCP Toolbox for Databases で MCP 連携してみた
iret
1
130
Other Decks in Technology
See All in Technology
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
210
生成AI時代のデータ基盤設計〜ペースレイヤリングで実現する高速開発と持続性〜 / Levtech Meetup_Session_2
sansan_randd
1
150
Evolución del razonamiento matemático de GPT-4.1 a GPT-5 - Data Aventura Summit 2025 & VSCode DevDays
lauchacarro
0
160
バッチ処理で悩むバックエンドエンジニアに捧げるAWS Glue入門
diggymo
3
190
「全員プロダクトマネージャー」を実現する、Cursorによる仕様検討の自動運転
applism118
19
9.2k
DevIO2025_継続的なサービス開発のための技術的意思決定のポイント / how-to-tech-decision-makaing-devio2025
nologyance
1
370
なぜスクラムはこうなったのか?歴史が教えてくれたこと/Shall we explore the roots of Scrum
sanogemaru
5
1.6k
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
370
Django's GeneratedField by example - DjangoCon US 2025
pauloxnet
0
120
Rustから学ぶ 非同期処理の仕組み
skanehira
1
130
会社紹介資料 / Sansan Company Profile
sansan33
PRO
6
380k
[ JAWS-UG 東京 CommunityBuilders Night #2 ]SlackとAmazon Q Developerで 運用効率化を模索する
sh_fk2
3
380
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
512
110k
The Language of Interfaces
destraynor
161
25k
Embracing the Ebb and Flow
colly
87
4.8k
Statistics for Hackers
jakevdp
799
220k
Art, The Web, and Tiny UX
lynnandtonic
302
21k
Into the Great Unknown - MozCon
thekraken
40
2k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
Done Done
chrislema
185
16k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Navigating Team Friction
lara
189
15k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
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の実行における認証・認可