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
LangGraphを使ったAIエージェント実装
Search
Yukl
March 15, 2025
Technology
2
250
LangGraphを使ったAIエージェント実装
2025/03/11 Global AI BootCamp - AOAI Dev Day プレイベントで使用した資料です
Yukl
March 15, 2025
Tweet
Share
Other Decks in Technology
See All in Technology
AIのための オンボーディングドキュメントを整備する - hirotea
hirotea
9
2.3k
ソフトウェアは捨てやすく作ろう/Let's make software easy to discard
sanogemaru
10
5.8k
Redmineの意外と知らない便利機能 (Redmine 6.0対応版)
vividtone
0
1.1k
MCP Clientを活用するための設計と実装上の工夫
yudai00
1
790
積み上げられた技術資産と向き合いながら、プロダクトの信頼性をどう守るか
plaidtech
PRO
0
850
Contract One Dev Group 紹介資料
sansan33
PRO
0
6k
[zh-TW] DevOpsDays Taipei 2025 -- Creating Awesome Change in SmartNews!(machine translation)
martin_lover
1
640
What's Next in OpenShift Q2 CY2025
redhatlivestreaming
1
760
令和トラベルQAのAI活用
seigaitakahiro
0
520
会社紹介資料 / Sansan Company Profile
sansan33
PRO
6
360k
“⾞が通れるほど⼤きな”セキュリティーホールを抑えながらログインしたい
taiseiue
0
160
JNation 2025 - Quarkus for Spring Developers
edeandrea
PRO
0
110
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
840
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Scaling GitHub
holman
459
140k
It's Worth the Effort
3n
184
28k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
Speed Design
sergeychernyshev
30
970
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
106
19k
Transcript
Azure AI Developers Community(JP) #AzureAIDevJP LangGraphを使ったAIエージェント実装 yukl 2025/3/11(Tue) 1
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP 今⽇話す内容
LangGraphの使い⽅や使⽤感 2 LangGraphを使⽤するまでの過程
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP 岩城
祐作 (@yukl_dev) 会社 株式会社情報戦略テクノロジー 趣味 お笑いを⾒に⾏く フットサル 勉強会、AI Azure AI Engineer Associate Azure Solutions Architect Expert ⾃⼰紹介 学⽣時代 • 機械学習×電⼒需給 の研究 • お笑い芸⼈さんのレコメンドサービス 1現場⽬: ネット銀⾏ • 代理集⾦サービスの設計‧開発‧本番運⽤ • 少⼈数のスクラム開発 • インフラBCP対応の設計と移⾏準備 • 技術スタック: Terraform, TypeScript / JavaScript, Swift, Kotlin, GraphQL, React, Node.js, Azure 2現場⽬: メガバンク • ⽣成AIを使ったサービス開発と本番化⽀援 • エージェント、バーチャルヒューマン、⾯談記録AI 等 • 技術スタック: Python, TypeScript / JavaScript, Swift, Next.js, React, LangChain, Streamlit, Node.js, AWS, Azure Azure Administrator Associate
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP ⽬次
1. AIエージェントって? a. 従来の⽣成AIサービスの課題 b. Anthropic社のペーパーから捉える c. 企業導⼊における課題 d. 専⾨知識の習得⽅法の移り変わり e. パターンごとに詳細化 2. エージェントシステムについて詳しく 3. 具体的な実装(LangChain LangGraph)
Azure AI Developers Community(JP) #AzureAIDevJP AIエージェントって? 5
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP 従来の⽣成AIサービスの課題
従来の⽣成AIサービス - 精度やサービスの進化は⽬覚ましく、全体的に能⼒も⾼い! ただ、まだ利⽤に労⼒がかかる。普及が進まない😭 - ユーザーの使いこなす技術に依存… - 品質も求めると結構⼿間がかかる… - ⼈間の指⽰で動作する受⾝な部分は、 従来のコンピュータへの命令(プログラム)と変わらない… 総務省の2024年版情報通信白書によると、 生成AIを利用する個人は 9.1%… (https://www.soumu.go.jp/johotsusintokei/whitepaper/r06.html)
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP 7
最近の”⽣成AI”って ⾃分で考えようとしないよね… 「指⽰待ちAI」 なんだか理想的なやつ🤖 「自律的な AIエージェント」
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP AIエージェント
定義はさまざま • “⾃律的”に”⽬標遂⾏”するシステム? • ⼀定の業務を代替するような、”より⾼度な”システム? studycoさんの「いまこそ学ぶ LLMベースのAIエージェント入門」より https://www.youtube.com/watch?v=uxt0w_u4EwM
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP Anthropic社によると
Anthropic社の「Building effective agents」では、 “ワークフロー”と”エージェント”という枠組みでエージェント技術を、 ”エージェントシステム”として捉える 「エージェントシステム」 • ワークフロー: LLMとツールが事前定義されたコードパスに従って連 携するシステム • エージェント: LLMが⾃律的にプロセスやツールの使⽤を決定し、タ スクを遂⾏するシステム https://www.anthropic.com/engineering/building-effective-agents
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP 企業導⼊でつまづくことの1つ
期待値(要望) : ⾃律的✨ 実際のフィードバック : ワークフロー観点 (必ずA処理を経由するようプロンプト調整…) エージェントシステム開発はどこに向かって進んでいけば良いか? → LLM普及の流れから捉えていく 10
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP LLMの普及
LLMの凄さは何だったか。 ⼈っぽい回答、⾃然⾔語の⽂法理解、を超えた「知のコンテキスト」 = データ世界上の⼀般知識に皆がアクセスできる(基盤モデル) 11
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP 作りたいのは価値あるシステム
LLMを使わなくたって実装はできる - エキスパートシステム(細かくロジックで制御) - 機械学習的なアプローチ けど、コストがかかる - ⼤量のロジックで、データで、本来与えたい⽤途に合った知識(専⾨ 知識)だけでなく、⼀般知識も覚えさせないといけない。 余計なコスト(⼀般知識習得)でなく、本来の⽬的(専⾨知識)に集 中! 12
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP 専⾨知識の習得⽅法の変化
基盤モデルの進化(汎⽤化)によって、専⾨知識の習得⽅法も変化 機械学習時代 : 教師データ LLM時代 : プロンプト(RAG) 次の時代 : ?? 13
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP みんな使う”考える”がAIで扱う領域に。(inference→reasoning)
- 独⾃の考え⽅している⼈ってどれくらいいるのか? (⾃⼰啓発系の本に書かれていることってギュッとまとめられそう) - 汎⽤化された”考える”処理に⾃社情報を埋め込むスタイルに? “考える”処理に渡す情報、処理ロジックを⼯夫すること。 これが、次の専⾨知識の習得⽅法なのかも。 次の時代の専⾨知識の習得 14
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP “考える”処理に渡す情報、処理ロジックを⼯夫する時代
MCPが話題になる流れも近い。 - 専⾨知識の肝であるツールとの統合を抽象化。 - よりLLMはツール利⽤と密接的に。 AiHUBの⽅も⾔っていた キャラの独⾃性を決めているのは裏にある処理ロジックの組み合わせ (ワークフロー) 15
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP 結論:
エージェントシステム開発はどこに向かうべき? 専⾨性を持った⾃律性の構築か 専⾨性をワークフローで表現か - ⼤抵の企業導⼊では、愚直にワークフローに落とし込むことが⼤事 (⼈でなく業務の代替、評価もしやすい) - エージェントシステム開発するなら、ワークフローを組み合わせた制 御性を伴った⾃律性の構築がもとめられる (ワークフローを資産とする) 16
Azure AI Developers Community(JP) #AzureAIDevJP エージェントシステムをより詳しく 17
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP LLMの拡張
情報取得(Retrieval)、ツール利用(Tool Usage)、 記憶(Memory)などを構成要 素として拡張。 ユースケース: 顧客からの問い合わせに対して、最新の製品情報を検索し、迅速に回答する。 など
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP ワークフロー:
プロンプトの連鎖 タスクを⼀連のステップに分解し、LLM呼び出しの出⼒を使って後続の LLM呼び出しの処理をする。 ユースケース: 文書の概要を作成し、基準値以上か評価、概要に基づいて文書生成 など
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP ワークフロー:
ルーティング ⼊⼒を分類し、それを後続の専⾨的な処理に誘導する。 ユースケース: カスタマーサービス。など
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP ワークフロー:
並列化 タスクを同時に処理し、その出⼒を集約する。 ユースケース: さまざまな側面で評価し、最終的にコンテンツが不適切か評価。など
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP ワークフロー:
オーケストレータ - ワーカー 中央のLLMがタスクを動的に分解、ワーカーLLMに渡し結果を合成する。 ユースケース: 毎回複数ファイルに複雑な変更を加えるコーディングプロダクト。など
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP ワークフロー:
Evaluator-optimizer LLMの応答を、別LLMがループ内で評価とフィードバックをする。 ユースケース: 文学翻訳で、翻訳者LLMが捉えきれないニュアンスを評価者LLMが批評して改 善。など
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP エージェント
ユーザー指⽰からタスクを動的に遂⾏、⾃律的にツール選択‧活⽤する。 ユースケース: LLMがコンピュータを使用してタスクを実行する。など
Azure AI Developers Community(JP) #AzureAIDevJP 具体的な実装 (LangChain LangGraph) 25
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP LangChain
LLMを使ったアプリケーション開発を効率化するためのオープンソースフレームワーク。 LLMの機能を使うだけでなく、さまざまなツールやデータソースとの統合も容易に記述でき る。 from langchain_core.prompts import PromptTemplate from langchain_core.output_parsers import StrOutputParser from langchain_openai import AzureChatOpenAI # 1. Create prompt template prompt = PromptTemplate( input_variables=["English"], template="次の単語を日本語に訳して: {English}" ) # 2. Create model model = AzureChatOpenAI(model="gpt-4o") # 3. Create parser parser = StrOutputParser() # 4. Create chain chain = prompt | model | parser chain.invoke({“English": "Hello"}) https://www.langchain.com/
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP LangGraph
LLMを活⽤し複数のエージェントが連携するアプリケーション構築のためのライブラリ 各LLMやツール間のフローをグラフ構造で管理し、制御性を伴った開発体験が可能 https://langchain-ai.github.io/langgraph/concepts/high_level/ https://www.langchain.com/langgraph
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP LangGraphで構築のエージェント事例
LinkedIn ⾃然⾔語からSQLを⽣成する 社内SQL Bot Replit 0→1でコードを⽣成する Replit Agent https://www.linkedin.com/blog/engineering/ai/practical-tex t-to-sql-for-data-analytics https://docs.replit.com/replitai/agent
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP 実装詳細や動向は以下を確認
- StudyCoさん https://www.studyco.io/ https://www.youtube.com/channel/UCRBqa8vkfHpkAThNfuHUJtQ - Azure OpenAI Service Dev Day👏 29
Azure AI Developers Community(JP) Azure AI Developers Community(JP) #AzureAIDevJP OpenAI
APPENDIX: 各社の AI 展望=知の汎⽤化の流れ https://www.multifverse.com/blog-posts/openai-agi-5-tier-progress-scale ソフトバンク https://www.softbank.jp/biz/blog/business/articles/202410/sbw2024-softbank-son-main-keynote/
Azure AI Developers Community(JP) #AzureAIDevJP オープニングオープニングオープニング 31 See You Next
Time . . . !