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
Functional APIから再考するLangGraphを使う理由
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
os1ma
March 13, 2025
Programming
1.1k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Functional APIから再考するLangGraphを使う理由
イベントページ:
https://studyco.connpass.com/event/346953/
os1ma
March 13, 2025
More Decks by os1ma
See All by os1ma
これだけで丸わかり!LangChain v1.0 アップデートまとめ
os1ma
6
2.9k
Claude Codeが働くAI中心の業務システム構築の挑戦―AIエージェント中心の働き方を目指して
os1ma
10
7.2k
LangChain Interrupt & LangChain Ambassadors meetingレポート
os1ma
2
1k
AIエージェントのフレームワークを見るときの個人的注目ポイント
os1ma
1
940
Cursor AgentによるパーソナルAIアシスタント育成入門―業務のプロンプト化・MCPの活用
os1ma
16
10k
AIエージェントキャッチアップと論文リサーチ
os1ma
7
2k
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
1.2k
LangChain/LangGraphの進化からみるLLMによるAIエージェントの開発
os1ma
2
880
Difyのソースコードリーディングを続けて得た知見と感想
os1ma
4
950
Other Decks in Programming
See All in Programming
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
270
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
170
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
190
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
360
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
350
dRuby over BLE
makicamel
2
380
AIを活用したE2Eテスト実装効率化のあゆみ / ebisu-mobile-14-kotetu
kotetuco
0
120
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
150
Creating Composable Callables in Contemporary C++
rollbear
0
160
スマートグラスで並列バイブコーディング
hyshu
0
250
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
160
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
120
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
528
40k
Mobile First: as difficult as doing things right
swwweet
225
10k
Into the Great Unknown - MozCon
thekraken
41
2.6k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
160
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The World Runs on Bad Software
bkeepers
PRO
72
12k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
210
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
260
How STYLIGHT went responsive
nonsquared
100
6.2k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
Designing for humans not robots
tammielis
254
26k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Transcript
2025/3/13 #StudyCo Functional APIから再考する LangGraphを使う理由
自己紹介 大嶋勇樹(おおしまゆうき) https://x.com/oshima_123 株式会社ジェネラティブエージェンツ取締役CTO/Co-founder 大規模言語モデルを組み込んだアプリケーションやAIエージェントの開発を実施 個人ではエンジニア向けの勉強会開催やUdemy講座の作成など 勉強会コミュニティStudyCo運営 「ChatGPT/LangChainによるチャットシステム構築[実践]入門」(共著) 「LangChainとLangGraphによるRAG・AIエージェント[実践]入門」(共著)
会社名 株式会社ジェネラティブエージェンツ (英文:Generative Agents, Inc.) 所在地 東京都港区 ※ 全社員リモート勤務 役員構成
CEO 西見 公宏 COO 吉田 真吾 CTO 大嶋 勇樹 設立年月 2024年3月14日 事業内容 AIエージェント技術を軸とした生成 AIアプリケーション開発 支援、コンサルティング、教育・研修サービスの提供 生成AIアプリケーション開発支援 「LangChain」の公式エキスパートとして、生成AIを活用したソフトウェ ア開発を支援します。生成AIを活用した課題解決、新規事業に向けたコン サルティングサービス、チームの開発力を上げる教育・研修サービスを提 供します。 ノーコードツール「Dify」のプロサポート Difyとはチャットボット、文章要約やコンテンツ生成など、多彩なワーク フローを現場の社員自ら構築できるツールです。当社はDifyを提供する LangGenius社の公式パートナーとして、自社内のDifyインフラ構築、導入 支援・オンボーディング、活用定着支援、アプリ開発研修などニーズに応 じたプロフェッショナルサポートを提供します。 株式会社ジェネラティブエージェンツ - 会社概要 AIエージェントが「ハブ」となり 人間とAIエージェントの協働が 当たり前になる世界を実現する
代表取締役CEO / Founder 西見 公宏 Masahiro Nishimi 事業会社の顧問CTOとして活動するソフトウェア開発のスペシャリス ト。AIエージェントを経営に導入することにより、あらゆる業種業態の 生産性を高めるための活動に尽力している。
「その仕事、AIエージェントがやっておきました。――ChatGPTの次に 来る自律型AI革命」(技術評論社)単著、Software Design「実践LLMア プリケーション開発」(技術評論社)連載。 主な著書 『その仕事、AIエージェントがやっておきました』 取締役COO / Co-founder 吉田 真吾 Shingo Yoshida AWS Serverless Heroとして日本におけるサーバーレスの普及を促進。 「ChatGPT/LangChainによるチャットシステム構築[実践]入門」(技 術評論社)共著、「Azure OpenAI ServiceではじめるChatGPT/LLMシス テム構築入門」(技術評論社)共著、「AWSによるサーバーレスアーキ テクチャ」(翔泳社)監修、「サーバーレスシングルページアプリケー ション」(オライリー)監訳、「AWSエキスパート養成読本」(技術評 論社)共著。ChatGPT Community(JP)主催 主な著書 『ChatGPT/LangChainによるチャットシステム構築[実践]入門』 『Azure OpenAI ServiceではじめるChatGPT/LLMシステム構築入門 エンジニア選書』 取締役CTO / Co-founder 大嶋 勇樹 Yuki Oshima 大規模言語モデルを組み込んだアプリケーションやAIエージェントの開 発を実施。 個人ではエンジニア向けの勉強会開催や教材作成など。オンラインコー スUdemyではベストセラー講座多数。 「ChatGPT/LangChainによるチャットシステム構築[実践]入門」(技 術評論社)共著。勉強会コミュニティStudyCo運営。 主な著書 『ChatGPT/LangChainによるチャットシステム構築 [実践]入門』 運営メンバー
2025/3/13 #StudyCo Functional APIから再考する LangGraphを使う理由
LangGraphとは LangGraphは、LLMを組み込んだ複雑なワークフローを実装するためのフレームワークです LangGraphでは、ワークフローを「グラフ」として実装して実行します https://blog.langchain.dev/code-execution-with-langgraph/
LangGraphの従来の実装方法―Graph API LangGraphの従来の実装方法(Graph API)では、ワークフローを持ち回るStateを定義したうえで、 add_node・add_edgeといった関数でグラフ構造を実装します
LangGraphの新しい実装方法―Functional API LangGraphの新しい実装方法(Functional API)では、@task・@entrypointデコレーターを使い、 通常のPythonのプログラムに近いコードでワークフローを実装します ※Functional APIはアナウンス時はBeta機能でしたが、2月19日に公式ドキュメントから「Beta」の記載が削除されています
想定される疑問点 Functional APIでは通常のPythonのプログラムに近いコードでワークフローを実装できますが、 それでは通常のPythonのプログラムではなくLangGraphを使う理由はどこにあるのでしょうか? (これは実際にはGraph APIでも言える疑問点です) ノード(@task)という単位でプログラムを整理できる? →通常のプログラムでもできるので、フレームワークを使うほどの理由にはならないかもしれません LangSmithのトレースがノードごとにまとまって見やすくなる? →LangGraphを使わなくても、LangSmithのトレースは自由な単位でまとめられます(@traceable)
それではLangGraphを使う理由はどこにあるのでしょうか?
LangGraph Functional APIでの実装上の注意 LangGraph Functional APIで@taskをつけた関数は、Checkpointerの記録の単位として扱われます ここで注目すべき点として、LangGraph Functional APIでの実装上の注意があります ヒューマン・イン・ザ・ループのような機能を活用するには、あらゆるランダム性をタスク内にカ
プセル化する必要があります。これにより、実行が停止(例:ヒューマン・イン・ザ・ループのた め)され、その後再開された場合でも、タスクの結果が非決定的であっても、同じステップのシー ケンスに従うことが保証されます。 https://langchain-ai.github.io/langgraph/concepts/functional_api/#determinism の記述をClaude 3.7 Sonnetにより翻訳
LangGraphのCheckpointerとは LangGraphでは各ノード(@task)の実行結果をCheckpointerに記録します たとえばgenerate_draft_nodeの実行結果はCheckpointerに記録されるため、 次のhuman_feedback_nodeで人間の介入のために処理を中断したとしても、 人間の介入後にCheckpointerから値を取得して続きから処理を再開できます Checkpointerを活用することで、以下の処理を実現できます • Human-in-the-Loop ワークフローを中断し、人間の介入後に続きから処理を再開する •
Fault-tolerance ワークフローをエラーが発生したステップから再開する
Functional APIにおけるHuman-in-the-Loopの動作 LangGraphではCheckpointerによる処理の進行状況の記録によりHuman-in-the-Loop等を実装でき、 これはPythonで単純にワークフローを実装した場合と異なる点だと言えます 最初のworkflowの実行時 generate_draftを実行し、 結果をCheckpointerに保存 interrupt関数により 人間のフィードバックを待つ 人間のフィードバック後、
続きからのworkflowの実行時 実行済みのgenerate_draftの 結果はCheckpointerから取得 interruptの結果として 人間のフィードバックを得る brushupを実行
まとめ • LangGraphの大きな特徴として、Checkpointerによるワークフローの進行状況の記録と、 Checkpointerを応用したHuman-in-the-Loop等の実装が挙げられます • LLMエージェントのフレームワークでは、Human-in-the-Loopの実現方法は重要な論点であり、 処理の進行状況をどのように保存・復元するかは考えどころです (ちなみにHumanLayerというAPI・SDKは、LangGraphとは異なる方針でHuman-in-the-Loopを実現しています) 通常のPythonプログラムではなくなぜフレームワークを使うのか?を再考することは、 LLMエージェント実装時の論点の発見に繋がるかもしれません
ご清聴ありがとうございました