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
81
第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
第166回 雲勉 コードを読んで理解する AWS Amplify Gen2 Backend
iret
0
4
第165回 雲勉 Google Agentspace について
iret
0
13
第164回 雲勉 Agent Development Kit と MCP Toolbox for Databases で MCP 連携してみた
iret
1
34
第163回 雲勉 CircleCIで複数リポジトリ間のパイプラインを連携する
iret
1
34
第162回 雲勉 比較して学ぶ AWS Amplify Gen 2
iret
0
46
第161回 雲勉 Amazon Kinesis Data Streams と Amazon Data Firehose を使ってみよう
iret
0
46
第160回 雲勉 それ、AWS Step Functions で置き換えれん?
iret
0
68
第158回 雲勉 AWS CDK 入門 ~ プログラミング言語で書くインフラ Python 編 ~
iret
0
65
第157回 雲勉 AWSインフラ監視をNew Relicで行う際の個人的Tips
iret
0
63
Other Decks in Technology
See All in Technology
Claude Code Actionを使ったコード品質改善の取り組み
potix2
PRO
1
190
CSS、JSをHTMLテンプレートにまとめるフロントエンド戦略
d120145
0
190
Workflows から Agents へ ~ 生成 AI アプリの成長過程とアプローチ~
belongadmin
3
170
Абьюзим random_bytes(). Фёдор Кулаков, разработчик Lamoda Tech
lamodatech
0
240
[TechNight #90-1] 本当に使える?ZDMの新機能を実践検証してみた
oracle4engineer
PRO
3
110
DroidKnights 2025 - Jetpack XR 살펴보기: XR 개발은 어떻게 이루어지는가?
heesung6701
1
160
OAuth/OpenID Connectで実現するMCPのセキュアなアクセス管理
kuralab
5
690
AWS全冠したので振りかえってみる
tajimon
0
150
_第3回__AIxIoTビジネス共創ラボ紹介資料_20250617.pdf
iotcomjpadmin
0
140
【TiDB GAME DAY 2025】Shadowverse: Worlds Beyond にみる TiDB 活用術
cygames
0
440
~宇宙最速~2025年AWS Summit レポート
satodesu
1
640
キャディでのApache Iceberg, Trino採用事例 -Apache Iceberg and Trino Usecase in CADDi--
caddi_eng
0
170
Featured
See All Featured
KATA
mclloyd
29
14k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.4k
It's Worth the Effort
3n
184
28k
Stop Working from a Prison Cell
hatefulcrawdad
269
20k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
Bash Introduction
62gerente
614
210k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
The World Runs on Bad Software
bkeepers
PRO
68
11k
Making Projects Easy
brettharned
116
6.2k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
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の実行における認証・認可