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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Noriyuki TAKEI
December 19, 2024
Technology
100
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
37
魔法少女がClaude Codeを監視する / ccportal-deck
noriyukitakei
3
110
ラズパイ×ローカルLLMで“MAGIシステム”を作る 〜3体のAIによる合議制マルチエージェント〜/magibypi
noriyukitakei
0
81
ループエンジニアリングでE2Eテストを実践
noriyukitakei
0
480
RAG構築のためのAzure OpenAI Serviceリファレンスアーキテクチャ詳解/wakarimiragarchitecture
noriyukitakei
0
320
生成AI時代の検索手法〜スターウォーズの登場人物で紐解くベクトル/セマンティック/ハイブリッド検索〜/wakarimiaisearch
noriyukitakei
0
120
Prompt flowでブログ記事紹介ツイートアプリをラクチン開発/wakarimipromptflow
noriyukitakei
0
76
世界一わかりみの深いAzure OpenAI Service/wakarimiaoai
noriyukitakei
1
950
AIとペアプロ!! ChatGPTとGitHub Copilotで ToDoアプリを爆速ライブコーディング/wakarimigithubcopilot
noriyukitakei
0
120
Other Decks in Technology
See All in Technology
Hub & Spoke 環境のネットワークルーティングを分解してみる
tsuyataku
1
480
1000⼈規模のClaude Enterprise運⽤を「Oktaのグループ」と「Slack」に集約する
sansantech
PRO
1
550
bet_ai_day_2026_session02
agenticsec
0
160
会計事務所と顧問先の契約関係をOIDC・OAuthで表現する
terara
0
560
PM領域でのAI Agentの活用
lycorptech_jp
PRO
0
150
顧客の要望は2次情報である 〜アンテナを張るFDEの構造論〜
noriakioji
5
1.1k
[RSJ26] Building a VLA Model Based on Self-Distilled Classification
keio_smilab
PRO
0
100
Claude Codeの体系的な理解と知識のフック
oikon48
10
6.3k
人気商品が「ちゃんと買える」をつくる ー ECの負荷改善
ykagano
1
150
APIセキュリティを組織で実現するには~注力する点と設計・実装に入れたい対策~
riiimparm
2
830
現場の暗黙知を継承するAIエージェント — 対話から生まれる長期記憶と Skills
atsukish
0
190
markdown-poster Introduction
kazamori
0
440
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
A designer walks into a library…
pauljervisheath
211
24k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
480
Producing Creativity
orderedlist
PRO
348
41k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
230
We Are The Robots
honzajavorek
0
320
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Building an army of robots
kneath
306
46k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Building Adaptive Systems
keathley
44
3.2k
Navigating Team Friction
lara
192
16k
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
࠷ޙ·Ͱ͝ਗ਼ௌ͖ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂʂ