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
第50回 Tokyo Jazug Night/react-deepdive
Search
Noriyuki TAKEI
December 19, 2024
Technology
89
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
RAG構築のためのAzure OpenAI Serviceリファレンスアーキテクチャ詳解/wakarimiragarchitecture
noriyukitakei
0
280
生成AI時代の検索手法〜スターウォーズの登場人物で紐解くベクトル/セマンティック/ハイブリッド検索〜/wakarimiaisearch
noriyukitakei
0
92
Prompt flowでブログ記事紹介ツイートアプリをラクチン開発/wakarimipromptflow
noriyukitakei
0
63
世界一わかりみの深いAzure OpenAI Service/wakarimiaoai
noriyukitakei
1
920
AIとペアプロ!! ChatGPTとGitHub Copilotで ToDoアプリを爆速ライブコーディング/wakarimigithubcopilot
noriyukitakei
0
98
世界一わかりみの深いApplicationGateway/wakarimiappilicationgateway
noriyukitakei
0
400
クラウドデザインパターンを使ってクールな設計をしよう/jazug12th
noriyukitakei
1
420
アウトプットはいいぞ!!〜人生折り返し地点からの情報発信で学びが楽しくなった話〜/outputisgood
noriyukitakei
0
210
世界一わかりみの深いDurable Functions/wakarimi_durablefunctions
noriyukitakei
0
1.6k
Other Decks in Technology
See All in Technology
Oracle Cloud Infrastructure:2026年6月度サービス・アップデート
oracle4engineer
PRO
0
290
コミットの「なぜ」を読む
ota1022
0
120
Bucharest Tech Week 2026 - Guardians of the Cloud-Native Galaxy
edeandrea
PRO
0
140
【Snowflake Summit 2026 Recap!!】Snowflake Summit Deep Dive: Security & Governance
civitaspo
1
310
「ビジネスがわかるエンジニア」とは何か?
ryooob
0
290
不要なレビューをAIにまかせて AIコーディングの環境改善を加速した
shoota
1
260
【2026年版】 ベクトル検索とEmbedding最前線
mocobeta
23
7.5k
[チョークトーク資料]AWS DevOps Agent を使いこなす / AWS Dev Ops Agent Chalk Talk AWS Summit Japan 2026
kinunori
4
770
「軸足」は 固定しなくていい - 熱量と強みで描く、しなやかなキャリアの形
kakehashi
PRO
1
260
レガシーな広告配信システムでのAI駆動開発/運用の挑戦
i16fujimoto
0
120
AIをフル活用してオンコール機能のプロトタイプを2日で作った話 / Building an AI-Powered On-Call Prototype in Just Two Days
nari_ex
0
120
LayerX コーポレートエンジニアリング室におけるサプライチェーンセキュリティへの取り組み / Supply Chain Security at LayerX Corporate Engineering
yuyatakeyama
3
830
Featured
See All Featured
KATA
mclloyd
PRO
35
15k
Ruling the World: When Life Gets Gamed
codingconduct
0
260
Site-Speed That Sticks
csswizardry
13
1.2k
Code Review Best Practice
trishagee
74
20k
Amusing Abliteration
ianozsvald
1
210
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
How GitHub (no longer) Works
holman
316
150k
Done Done
chrislema
186
16k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
310
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Fireside Chat
paigeccino
42
4k
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
࠷ޙ·Ͱ͝ਗ਼ௌ͖ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂʂ