>100 Views
August 23, 25
スライド概要
LangGraphのアプリケーションにおけるsupervisorの設計で悩んだことと仮の設計を描きました。
#langgraph #langchain
あとがき:この日のLTがコードゴルフや低レイヤよりなので、大富豪プログラミングの極北であるLangGraphネタで草も生えないw
LangGraphの設計で悩んだこと supervisorの作り方について 株式会社 エーピーコミュニケーションズ 大久保 1 直紀
大久保直紀 ‣ ロール:バックエンド寄りの何でも屋 最近の業務:エージェントアプリケーションの企 ‣ 画、設計、開発 ‣ 好きな技術:LangChainバンザイ! ‣ 趣味:自転車、食べ歩き 年齢:38歳 ‣ ‣ 所属:株式会社エーピーコミュニケーションズ メッセージ
LangGraphとは ‣ LangChainネイティブのワーク フローエンジン ‣ ワークフローをStateとNode とEdgeを用いてGraphとして 表現 ‣ 機能/非機能をいい感じに抽象 化し開発を楽にする ‣ 言語:Python/TypeScript マルチエージェントアプリケーション のエンジンですね! 3
LangGraphの解決課題 ‣ メッセージ処理 ‣ ステート管理 ‣ トレーシング/ロギング ‣ ワークフロー記述 ‣ オーケストレーション ステート永続化 Tracing/logging これらの処理を抽象化することで 複雑なLLMエージェントの開発を 可能としている 4
LangGraphの解決課題 ‣ メッセージ処理 ‣ ステート管理 ‣ トレーシング/ロギング ‣ ワークフロー記述 ‣ オーケストレーション 高度なチャットボットを作ってく れる愉快なフレームワーク! 5
今日の悩みは オーケストレーション
ルーティングの基本 推論を用いて、どのエージェントに回答や処理をさせるのかを判断させる 7
SuperVisorとは ‣ 入力内容に応じたエージェント ルーティングするエージェント 設計と実装 ‣ インターフェースとして規格は ない ‣ オレオレフレームワークの最後 のサンクチュアリ マルチエージェントアプリケーシ ョンの司令塔!! 8
SuperVisorの解決課題 ‣ コンテキストが大きくなると出 力内容の精度が低下する ‣ エージェント分割 ‣ グラフ分割 ‣ ユーザーフィードバックによ る内容補完を投影 コンテキスト分割とグラフ・ユー ザーの協調動作による精度向上 9
グラフをルーティングする ‣ エージェントルーティング ‣ 正しいエージェントに繋げば 要求は解決する ‣ グラフルーティング ‣ 正しいグラフに繋ぎ続けなけ ればならない! ‣ 業務フローが行ったり来たり これはヤバいよ!! 10
正しいグラフへ繋ぎ続けるには? ‣ ルーティングロック機能 ‣ ロックの取得と解除 ロック時間 ‣ ‣ バージョン ‣ リリース方法 ‣ ホップ先のグラフ管理 ‣ 次のホップ先 ‣ どのネスト(親/子) これらをステートとして抱えて supervisorで制御する 11
ワークフロー設計案(仮) ‣ endpoint state gate ‣ owner:強制遷移先 phase:init/lock/complete ‣ ‣ hop:次のグラフ default has lock has lock supervisor Graph ‣ supervisor ‣ gate:ownerに遷移 ‣ supervisor:自然言語 ‣ Exit:次のグラフ or 継続 or 終 on complete has next hop Graph exit on complete custom exit 了の後処理 ‣ graph:phaseを管理する endpoint 12
これ果たして本番いけるんだろうか? To be continued..