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
180
第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
第177回 雲勉 IdP 移行を楽に!Amazon Cognito でアプリへの影響をゼロにするアイデア
iret
0
28
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
32
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
45
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
70
第173回 雲勉 ノーコードで生成 AI アプリを構築!Google Cloud AI Applications(旧 Vertex AI Agent Builder)入門
iret
0
63
第170回 雲勉 Lyria が切り拓く音楽制作の未来
iret
1
40
第169回 雲勉 AWS WAF 構築 RTA
iret
0
47
第168回 雲勉 JITNAの使い方とハマったポイントについて語る回
iret
0
52
第167回 雲勉 エージェント開発を加速する Agent Development Kit 入門
iret
1
62
Other Decks in Technology
See All in Technology
難しいセキュリティ用語をわかりやすくしてみた
yuta3110
0
370
MCP ✖️ Apps SDKを触ってみた
hisuzuya
0
310
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
120
Dylib Hijacking on macOS: Dead or Alive?
patrickwardle
0
450
物体検出モデルでシイタケの収穫時期を自動判定してみた。 #devio2025
lamaglama39
0
280
ソフトウェアエンジニアの生成AI活用と、これから
lycorptech_jp
PRO
0
850
SQLAlchemy の select(User).where(User.id =="123") を理解してみる/sqlalchemy deep dive
3l4l5
3
290
生成AI時代のPythonセキュリティとガバナンス
abenben
0
120
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
AWS DMS で SQL Server を移行してみた/aws-dms-sql-server-migration
emiki
0
120
Kubernetes self-healing of your workload
hwchiu
0
400
AWS UG Grantでグローバル20名に選出されてre:Inventに行く話と、マルチクラウドセキュリティの教科書を執筆した話 / The Story of Being Selected for the AWS UG Grant to Attending re:Invent, and Writing a Multi-Cloud Security Textbook
yuj1osm
1
130
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
Balancing Empowerment & Direction
lara
5
700
Measuring & Analyzing Core Web Vitals
bluesmoon
9
630
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
Statistics for Hackers
jakevdp
799
220k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Reflections from 52 weeks, 52 projects
jeffersonlam
353
21k
Navigating Team Friction
lara
190
15k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Site-Speed That Sticks
csswizardry
13
920
The Language of Interfaces
destraynor
162
25k
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の実行における認証・認可