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
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
3k
Claude Codeが働くAI中心の業務システム構築の挑戦―AIエージェント中心の働き方を目指して
os1ma
10
7.2k
LangChain Interrupt & LangChain Ambassadors meetingレポート
os1ma
2
1.1k
AIエージェントのフレームワークを見るときの個人的注目ポイント
os1ma
1
950
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
960
Other Decks in Programming
See All in Programming
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
17
8.8k
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
500
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
150
霧の中の代数的エフェクト
funnyycat
1
310
スマートグラスで並列バイブコーディング
hyshu
0
280
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
480
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
140
えっ!!コードを読まずに開発を!?
hananouchi
0
150
AI がコードを書く時代における新卒エンジニアの仕事風景 (2026) / New Graduate Engineers in the Era of AI Coding (2026)
sushichan044
0
200
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
260
技術記事、 専門家としてのプログラマ、 言語化
mizchi
14
7.3k
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
4.7k
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Navigating Team Friction
lara
192
16k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
760
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
WCS-LA-2024
lcolladotor
0
680
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.1k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Six Lessons from altMBA
skipperchong
29
4.3k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
590
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エージェント実装時の論点の発見に繋がるかもしれません
ご清聴ありがとうございました