Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
第50回 Tokyo Jazug Night/react-deepdive
Search
Noriyuki TAKEI
December 19, 2024
Technology
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
第50回 Tokyo Jazug Night/react-deepdive
Noriyuki TAKEI
December 19, 2024
More Decks by Noriyuki TAKEI
See All by Noriyuki TAKEI
魔法少女がClaude Codeを監視する / ccportal-deck
noriyukitakei
0
620
魔法少女がClaude Codeを監視する / ccportal-deck
noriyukitakei
3
190
ラズパイ×ローカルLLMで“MAGIシステム”を作る 〜3体のAIによる合議制マルチエージェント〜/magibypi
noriyukitakei
0
170
ループエンジニアリングでE2Eテストを実践
noriyukitakei
0
560
RAG構築のためのAzure OpenAI Serviceリファレンスアーキテクチャ詳解/wakarimiragarchitecture
noriyukitakei
0
340
生成AI時代の検索手法〜スターウォーズの登場人物で紐解くベクトル/セマンティック/ハイブリッド検索〜/wakarimiaisearch
noriyukitakei
0
140
Prompt flowでブログ記事紹介ツイートアプリをラクチン開発/wakarimipromptflow
noriyukitakei
0
89
世界一わかりみの深いAzure OpenAI Service/wakarimiaoai
noriyukitakei
1
970
AIとペアプロ!! ChatGPTとGitHub Copilotで ToDoアプリを爆速ライブコーディング/wakarimigithubcopilot
noriyukitakei
0
130
Other Decks in Technology
See All in Technology
E2Eってつらくないですか?E2Eの管理コストを下げる手段とその実践
akaboshinit
6
2.8k
Don't write the architecture only in the prompt.
neohsu
0
270
Flutter Widget Previewerで始めるUIプレビューとVRTの自動化
sakusaku3939
0
180
[General] 개발자로 해외 기업에서 일하기
skydoves
1
110
Devin プロモコードの受け取りと適用(2026.10.27)
kinopeee
1
740
Claude Codeから見る、エンジニアの世界の変容とその先
oikon48
7
4.9k
AWSセキュリティで活用するAI機能
cmusudakeisuke
1
380
[re:Invent2026事前勉強会(有志開催)]続きは、ラスベガスの廊下で / continue-in-the-vegas-hallway
sh_fk2
0
430
なぜ東京にいる私が、新潟の技術コミュニティを運営するのか by 八雲慎之助
yakumo
0
140
"AWSはちょっと苦手"でも大丈夫。AWS Blocks で手軽に作る Flutter のバックエンド #FlutterKaigi
tacck
PRO
0
110
Maestro MCPとClaude Code Skillsによる自律的なE2Eテスト支援
asmz
0
380
re:Invent の去年のスケジュールを公開します!
miu_crescent
PRO
0
120
Featured
See All Featured
HDC tutorial
michielstock
2
990
4 Signs Your Business is Dying
shpigford
187
23k
Abbi's Birthday
coloredviolet
4
11k
Navigating Team Friction
lara
192
16k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.6k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.1k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.2k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
59k
Transcript
None
Noriyuki TAKEI Ҫ ٓߦ Information • サイオステクノロジー株式会社 • Microsoft MVP
for AI Platform Favorites • Azure • スカッシュ • スキー • ライブ配信 • ⽢いもの • ⾛ること • ストリートファイター6 blog https://tech-lab.sios.jp/ core skill Azureによるクラウドネイティブな アプリ開発 Twitter @noriyukitakei
世界⼀わかりみの深いAIエージェント https://tech-lab.sios.jp/archives/42867
͍·ੈؒΛΘ͍ͤͯΔ ͱʁ
LLMの知識だけでは解決できないことを ⾃律的にタスクを実⾏ 外部データやツールと連携し 問題を解決するAIシステムのこと AIエージェントとは︖
以下を例に考えてみる。 ミッキーマウスの次の誕⽣⽇にケーキをプレゼントしたいです。 彼の年齢分のろうそくを購⼊するための⾦額を計算してください。 ろうそくは⼀本100円です。
ミッキーマウスの誕⽣⽇は、1928年11⽉18⽇であり、 今⽇の⽇付は2024年12⽉18⽇なので、 現時点で96歳。 次の誕⽣⽇のケーキに必要なローソクの合計⾦額は 97歳 × 100円 = 9,700円
AIエージェントでない場合 LLM ミッキーマウスの次の誕⽣⽇に ケーキをプレゼントしたいです。 彼の年齢分のろうそくを購⼊する ための⾦額を計算してください。 ろうそくは⼀本100円です。 ① LLMへの指⽰ ②
回答の提⽰ ミッキーマウスの誕⽣⽇は1928年11⽉18⽇です。 2021年現在の年齢は92歳です。 次の誕⽣⽇である2022年11⽉18⽇までには、ミッ キーマウスは93歳になるので、93本のろうそくが 必要です。 よって、93本 × 100円/本 = 9,300円が必要な⾦ 額です。 LLMの持つ知識のみから回答し ているので間違っている。(ミッ キーマウスは2024年11⽉6⽇時 点で95歳)
LLM インターネット 計算機 ② まずミッキーマウスの誕 ⽣⽇をインターネットで検 索してみよう。 ① ミッキーマウスの次の誕⽣⽇に ケーキをプレゼントしたいです。
彼の年齢分のろうそくを購⼊する ための⾦額を計算してください。 ろうそくは⼀本100円です。 ① LLMへの指⽰ ③ インターネットで検索 ⑨ 計算機で計算実⾏ ⑧ ミッキーマウスの誕⽣⽇と 今⽇の⽇付から、ミッキーマ ウスの年齢が96歳だとわかっ たので、今度は、次の誕⽣⽇ のケーキに必要なろうそくの 購⼊⾦額を計算してみよう ⑫ 最終回答の提⽰ ⑪ 最終回答は、9,700円です。 ④ 結果を返却 ミッキーマウス 誕⽣⽇ ミッキーは1928年誕⽣… 97 * 100 ⑩ 結 果 を 返 却 9700 AIエージェントの場合 時計 ⑥ 現在の⽇付を調査 ⑦ 現在の⽇付を返却 2024年12⽉18⽇ ⑤ ミッキーマウスの誕⽣⽇ は1928年11⽉18⽇のよう だ。今、何歳かを知りたい ので、今⽇の⽇付を調べよ う。
AIエージェントの実装⽅法 ⼈間 AI プログラム ツール (Web検索など) ツールとプロンプトをAIに与える 回答を⽣成し、 プログラムに渡す プロンプト
あなたはWeb検索と天気取得APIのツー ルが使えます。ミッキーの誕⽣⽇を知る ために必要なツールと⼊⼒値を提⽰して ください⋯(続く) ツールと⼊⼒値 使えるツールと⼊⼒値は以下のとお りです。 ツール: Web検索 ⼊⼒値: ミッキー 誕⽣⽇ 回答をパース ⼊⼒値を渡して ツール(Web検索)を実⾏ ミッキー 誕⽣⽇ 11⽉18⽇はミッキーの誕⽣ ⽇。ミッキーのスクリーン デビュー95周年… 検索結果を返す AIに検索結果を返し 回答が要求を 満たしているか 思考させる 11⽉18⽇はミッキーの誕⽣ ⽇。ミッキーのスクリーン デビュー95周年… 思考する 回答を⽣成し、 プログラムに渡す ツールと⼊⼒値 最終回答が出るまでN回繰り返す 最終回答 ミッキーの誕⽣⽇は 11⽉18⽇です。 最終回答を返す
۩ମతͳࣄྫͰ Λ ߟ͑Δ
以下の質問に回答するためのプロンプトを考えてみる。 ミッキーマウスの次の誕⽣⽇にケーキをプレゼントしたいです。 彼の年齢分のろうそくを購⼊するための⾦額を計算してください。 ろうそくは⼀本100円です。
次の質問にできる限り答えてください。次のツールにアクセスできます。 - 検索ツール︓検索するときに使います - 計算ツール︓計算するときに使います - 今⽇の⽇付取得ツール︓今⽇の⽇付を取得するときに使います。 次のフォーマットを使⽤します。 質問︓回答する必要がある⼊⼒質問 思考︓次に何をすべきかを常に考える
⾏動︓実⾏するアクションは、「計算ツール」「検索ツール」「今⽇の ⽇付取得ツール」のいずれかである必要があります。 ⾏動の⼊⼒︓アクションへの⼊⼒(ツールによっては⾏動の⼊⼒が不要 の場合がありますので、その場合は「無し」にしてください) 観察︓⾏動の結果 ...(この思考/⾏動/⾏動の⼊⼒/観察はN回繰り返すことができま す) 最終的な答えがわかったら以下を出⼒します。 思考︓今、最終的な答えが分かりました 最終回答︓元の⼊⼒質問に対する最終回答 計算ツールを使うときの⾏動の⼊⼒は、計算式を⼊⼒してください。 例︓52 * 100 例︓100 – 1 質問︓ミッキーマウスの次の誕⽣⽇にケーキをプレゼントしたいです。 彼の年齢分のろうそくを購⼊するための⾦額を計算してください。ろう そくは⼀本100円です。 さぁ始めましょう。 思考︓ AIが⾏動のときに使うツールをAIに与えてあげる必要がある。実装 では、検索ツールはGoogleCustomSearchというインターネット 検索のPythonライブラリを利⽤し、計算ツールはPythonのeval関 数を使っている。 ReActのコンポーネントである「質問」「思考」「⾏動」「⾏動の ⼊⼒」「観察」「最終回答」について定義しています。「⾏動」で 使うツールについては、明⽰的に「計算ツール」と「検索ツール」 と「今⽇の⽇付取得ツール」のいずれかを使うように指⽰をしてい ます。 計算ツールの⼊⼒式の例を⽰しています。Pythonのeval関数で処理 するので、eval関数が期待する値でないとエラーになるので、この ようにしています。 質問の内容を明記し、思考から開始するように指⽰しています。
次の質問にできる限り答えてください。次のツールにアクセスできます。 - 検索ツール︓検索するときに使います ...(省略)... 次のフォーマットを使⽤します。 質問︓回答する必要がある⼊⼒質問 ...(省略)... 質問︓次のミッキーマウスの誕⽣⽇にケーキをプレゼントしたいです。彼の年齢分のろうそくを購⼊するための⾦額を計算してください。ろうそく は⼀本100円です。 さぁ始めましょう。
思考︓まず、ミッキーマウスの次の誕⽣⽇を探し、彼の年齢を計算する必要があります。次に、その年齢分のろうそくを購⼊するにはいくら必要か を計算します。最初にミッキーマウスの誕⽣⽇を調べます。 ⾏動︓検索ツール ⾏動の⼊⼒︓ ミッキーマウスの誕⽣⽇ 思考(1回⽬) 先のプロンプトに対するLLMの出⼒結果が⻩⾊の部分です。プロンプトの内容から、 LLLMがしっかり思考をして、段取りを組んでいるのがわかります。 その結果、⾏動として「検索ツール」、⾏動の⼊⼒として「ミッキーマウスの誕⽣⽇」を 返しています。
次の質問にできる限り答えてください。次のツールにアクセスできます。 - 検索ツール︓検索するときに使います ...(省略)... 次のフォーマットを使⽤します。 質問︓回答する必要がある⼊⼒質問 ...(省略)... 質問︓次のミッキーマウスの誕⽣⽇にケーキをプレゼントしたいです。彼の年齢分のろうそくを購⼊するための⾦額を計算してください。ろうそく は⼀本100円です。 さぁ始めましょう。
思考︓まず、ミッキーマウスの次の誕⽣⽇を探し、彼の年齢を計算する必要があります。次に、その年齢分のろうそくを購⼊するにはいくら必要か を計算します。最初にミッキーマウスの誕⽣⽇を調べます。 ⾏動︓検索ツール ⾏動の⼊⼒︓ ミッキーマウスの誕⽣⽇ 観察︓11⽉18⽇はミッキーの誕⽣⽇。ミッキーのスクリーンデビュー95周年をお祝いしよう♪. ミッキーマウス. ミッキーとミニーの誕⽣⽇…(略) 思考︓ ⾏動(1回⽬) 検索ツール(PythonのGoogleCustomSearchライブラリ)を使って、「ミッキーマウスの 誕⽣⽇」を追加したのが、⽔⾊の部分になります。 これをLLMモデルの⼊⼒として渡して、再度思考させます。
次の質問にできる限り答えてください。次のツールにアクセスできます。 - 検索ツール︓検索するときに使います ...(省略)... 次のフォーマットを使⽤します。 質問︓回答する必要がある⼊⼒質問 ...(省略)... 質問︓次のミッキーマウスの誕⽣⽇にケーキをプレゼントしたいです。彼の年齢分のろうそくを購⼊するための⾦額を計算してください。ろうそく は⼀本100円です。 さぁ始めましょう。
思考︓まず、ミッキーマウスの次の誕⽣⽇を探し、彼の年齢を計算する必要があります。次に、その年齢分のろうそくを購⼊するにはいくら必要か を計算します。最初にミッキーマウスの誕⽣⽇を調べます。 ⾏動︓検索ツール ⾏動の⼊⼒︓ ミッキーマウスの誕⽣⽇ 観察︓11⽉18⽇はミッキーの誕⽣⽇。ミッキーのスクリーンデビュー95周年をお祝いしよう♪. ミッキーマウス. ミッキーとミニーの誕⽣⽇…(略) 思考︓検索の結果から、ミッキーマウスの誕⽣⽇は1928年の11⽉18⽇であるとわかった。次に、現在の年から1928を引くことで、次の誕⽣⽇で ミッキーマウスが何歳になるかを計算する必要がある。 ⾏動︓今⽇の⽇付計算ツール ⾏動の⼊⼒︓無し 思考(2回⽬) 緑⾊の部分がLLMの出⼒になります。「観察」の部分に記載されている、インターネット から検索したミッキーマウスの誕⽣⽇に関する情報をもとに、ミッキーマウスの誕⽣⽇を 考え出しています。そして、⾏動には次のアクションである「今⽇の⽇付計算ツール」設 定しています。
次の質問にできる限り答えてください。次のツールにアクセスできます。 - 検索ツール︓検索するときに使います ...(省略)... 次のフォーマットを使⽤します。 質問︓回答する必要がある⼊⼒質問 ...(省略)... 質問︓次のミッキーマウスの誕⽣⽇にケーキをプレゼントしたいです。彼の年齢分のろうそくを購⼊するための⾦額を計算してください。ろうそく は⼀本100円です。 さぁ始めましょう。
思考︓まず、ミッキーマウスの次の誕⽣⽇を探し、彼の年齢を計算する必要があります。次に、その年齢分のろうそくを購⼊するにはいくら必要か を計算します。最初にミッキーマウスの誕⽣⽇を調べます。 ⾏動︓検索ツール ⾏動の⼊⼒︓ ミッキーマウスの誕⽣⽇ 観察︓11⽉18⽇はミッキーの誕⽣⽇。ミッキーのスクリーンデビュー95周年をお祝いしよう♪. ミッキーマウス. ミッキーとミニーの誕⽣⽇…(略) 思考︓検索の結果から、ミッキーマウスの誕⽣⽇は1928年の11⽉18⽇であるとわかった。次に、現在の年から1928を引くことで、次の誕⽣⽇で ミッキーマウスが何歳になるかを計算する必要がある。 ⾏動︓今⽇の⽇付計算ツール ⾏動の⼊⼒︓無し 観察︓2024-12-18 22:36:19.047181 思考︓ ⾏動(2回⽬) 思考(2回⽬)の結果である⾏動から、Pythonのdatetimeモジュールを使って、現在の⽇時 を出しています。この結果をもとに再度LLMに思考させます。
次の質問にできる限り答えてください。次のツールにアクセスできます。 - 検索ツール︓検索するときに使います ...(省略)... 次のフォーマットを使⽤します。 質問︓回答する必要がある⼊⼒質問 ...(省略)... 質問︓次のミッキーマウスの誕⽣⽇にケーキをプレゼントしたいです。彼の年齢分のろうそくを購⼊するための⾦額を計算してください。ろうそく は⼀本100円です。 さぁ始めましょう。
思考︓まず、ミッキーマウスの次の誕⽣⽇を探し、彼の年齢を計算する必要があります。次に、その年齢分のろうそくを購⼊するにはいくら必要か を計算します。最初にミッキーマウスの誕⽣⽇を調べます。 ⾏動︓検索ツール ⾏動の⼊⼒︓ ミッキーマウスの誕⽣⽇ 観察︓11⽉18⽇はミッキーの誕⽣⽇。ミッキーのスクリーンデビュー95周年をお祝いしよう♪. ミッキーマウス. ミッキーとミニーの誕⽣⽇…(略) 思考︓検索の結果から、ミッキーマウスの誕⽣⽇は1928年の11⽉18⽇であるとわかった。次に、現在の年から1928を引くことで、次の誕⽣⽇で ミッキーマウスが何歳になるかを計算する必要がある。 ⾏動︓今⽇の⽇付計算ツール ⾏動の⼊⼒︓無し 観察︓2024-12-18 22:36:19.047181 思考︓ミッキーマウスは1928年11⽉18⽇に初登場したため、次の誕⽣⽇で97歳となります。⼀つのローソクが100円なので、この価格で必要な ローソクの総額を計算する必要があります。 ⾏動︓計算ツール ⾏動の⼊⼒︓97 * 100 思考(3回⽬) ⾚⾊の部分がLLMの出⼒になります。「観察」の部分に記載されている現在⽇付と、以前検索して取 得したミッキーマウスの誕⽣⽇をもとに、ミッキーマウスの次の誕⽣⽇に迎える年齢を考え出してい ます。そして、⾏動には次のアクションである「計算ツール」を、⾏動の⼊⼒として、計算式「96 * 100」を出しています。
次の質問にできる限り答えてください。次のツールにアクセスできます。 - 検索ツール︓検索するときに使います ...(省略)... 次のフォーマットを使⽤します。 質問︓回答する必要がある⼊⼒質問 ...(省略)... 質問︓次のミッキーマウスの誕⽣⽇にケーキをプレゼントしたいです。彼の年齢分のろうそくを購⼊するための⾦額を計算してください。ろうそく は⼀本100円です。 さぁ始めましょう。
思考︓まず、ミッキーマウスの次の誕⽣⽇を探し、彼の年齢を計算する必要があります。次に、その年齢分のろうそくを購⼊するにはいくら必要か を計算します。最初にミッキーマウスの誕⽣⽇を調べます。 ⾏動︓検索ツール ⾏動の⼊⼒︓ ミッキーマウスの誕⽣⽇ 観察︓11⽉18⽇はミッキーの誕⽣⽇。ミッキーのスクリーンデビュー95周年をお祝いしよう♪. ミッキーマウス. ミッキーとミニーの誕⽣⽇…(略) 思考︓検索の結果から、ミッキーマウスの誕⽣⽇は1928年の11⽉18⽇であるとわかった。次に、現在の年から1928を引くことで、次の誕⽣⽇で ミッキーマウスが何歳になるかを計算する必要がある。 ⾏動︓今⽇の⽇付計算ツール ⾏動の⼊⼒︓無し 観察︓2024-12-18 22:36:19.047181 思考︓ミッキーマウスは1928年11⽉18⽇に初登場したため、次の誕⽣⽇で97歳となります。⼀つのローソクが100円なので、この価格で必要な ローソクの総額を計算する必要があります。 ⾏動︓計算ツール ⾏動の⼊⼒︓97 * 100 観察︓9700 思考︓ ⾏動(3回⽬) 思考(3回⽬)の結果である⾏動と⾏動の⼊⼒から、ミッキーマウスの誕⽣⽇に必要なろう そくの合計本数を計算しています。Pythonのeval関数を使って算出した結果が観察に書 いてあります。このプロンプトをLLMに⼊⼒し、さらに思考を重ねます。
次の質問にできる限り答えてください。次のツールにアクセスできます。 - 検索ツール︓検索するときに使います ...(省略)... 次のフォーマットを使⽤します。 質問︓回答する必要がある⼊⼒質問 ...(省略)... 質問︓次のミッキーマウスの誕⽣⽇にケーキをプレゼントしたいです。彼の年齢分のろうそくを購⼊するための⾦額を計算してください。ろうそく は⼀本100円です。 さぁ始めましょう。
思考︓まず、ミッキーマウスの次の誕⽣⽇を探し、彼の年齢を計算する必要があります。次に、その年齢分のろうそくを購⼊するにはいくら必要か を計算します。最初にミッキーマウスの誕⽣⽇を調べます。 ⾏動︓検索ツール ⾏動の⼊⼒︓ ミッキーマウスの誕⽣⽇ 観察︓11⽉18⽇はミッキーの誕⽣⽇。ミッキーのスクリーンデビュー95周年をお祝いしよう♪. ミッキーマウス. ミッキーとミニーの誕⽣⽇…(略) 思考︓検索の結果から、ミッキーマウスの誕⽣⽇は1928年の11⽉18⽇であるとわかった。次に、現在の年から1928を引くことで、次の誕⽣⽇で ミッキーマウスが何歳になるかを計算する必要がある。 ⾏動︓今⽇の⽇付計算ツール ⾏動の⼊⼒︓無し 観察︓2024-12-18 22:36:19.047181 思考︓ミッキーマウスは1928年11⽉18⽇に初登場したため、次の誕⽣⽇で97歳となります。⼀つのローソクが100円なので、この価格で必要な ローソクの総額を計算する必要があります。 ⾏動︓計算ツール ⾏動の⼊⼒︓97 * 100 観察︓9600 思考︓今、最終的な答えが分かりました 最終回答︓ミッキーマウスの次の誕⽣⽇に彼の年齢分のろうそくを購⼊するためには、9700円必要です。 思考(4回⽬) 今までの結果からミッキーマウスの年齢分のろうそくの値段がわかったので、これ以上の 思考はせず、LLMが最終回答を出しました。
AIエージェントをもっと簡単に実現する⽅法 Function Calling 事前に定義された関数の中から、プロンプトに対する回答を作成するために 必要な関数とその引数を返してくれる。 1 LangChain LLMを使⽤したアプリケーションを開発するためのオープンソースのフレー ムワークであり、AIエージェントを実現するための様々な機能も備えている。 2
Semantic Kernel Microsoftが発表したOSSであり、LangChainと同様に、LLMを使⽤したア プリケーションを開発するためのオープンソースのフレームワークの機能を 提供する。 3
世界⼀わかりみの深い on #wakarimiazure
࠷ޙ·Ͱ͝ਗ਼ௌ͖ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂʂ