Fast-LangGraphとは?
Fast-LangGraphはLangGraphの一部をRustで再実装し、Pythonから使えるようにします。1つ目のモードは、環境変数か関数呼び出しで起動時にLangGraphへパッチを当て、スレッドプールを再利用し、チャンネルへの書き込みをRustで処理します。もう1つは明示的に使うモードで、Rustで動くSQLiteチェックポインター、高速な状態マージ関数、LLM応答のキャッシュ用デコレーター、プロファイラーがあります。
開発元のNeul Labsは、LiteLLM、CrewAI、Axolotl向けにも同様の高速化パッケージを出しています。パッケージはPyPIとcrates.ioにあり、Python 3.9以降が必要で、ライセンスはMITです。フォークではなくアドオンなので、グラフ、ノード、エッジは通常のLangGraphのままです。
Fast-LangGraphは使う価値があるか?
Fast-LangGraphの700xという数字は、判断材料にする前に注意して読む必要があります。プロジェクト自身のBENCHMARK.mdでは、737xという結果は235.5KBの状態をRustでシリアライズした場合とPythonのdeepcopyとの比較で、LangGraph自体のチェックポインターとの比較ではありません。エンドツーエンドの数字はもっと控えめで、20ノードのグラフを50回反復するシミュレーションで2.77x速くなった程度です。同じファイルでは、RustのLastValueチャンネルが1回の更新に317 nsかかり、Pythonの51 nsより約6倍遅いことも示されています。READMEも、単純なdict操作はPythonですでに速いと認めています。
それでも、狭いながら本当に効く場面はあります。大きな状態を持ち、毎ステップでチェックポイントを取るエージェントは、そのコピーにかなりの時間を使います。自動パッチは試すリスクが小さく、FAST_LANGGRAPH_AUTO_PATCH=1を設定して計測すれば済みます。@cachedデコレーターは同一プロンプトを対象にしたプロセス内の単純なメモ化で、本番システムなら通常は共有キャッシュかプロバイダーのプロンプトキャッシュで賄います。
より大きな懸念は普及度です。リポジトリのスターは27、コントリビューターは2人、フォークはゼロで、PyPIの直近1か月のダウンロードは59回です。最新リリースのv0.1.15は2026年5月6日で、7月の最新コミットはドキュメントの修正でした。langgraph-checkpointを4.1.1に上げるものを含む5件のDependabotのプルリクエストがマージされずに残っています。LangGraphほど頻繁にリリースされるフレームワークへのモンキーパッチには、リリースごとに追従する人が必要です。
依存先というより、プロファイリングの助けやアイデアの源として扱うのがよいでしょう。GraphProfilerを走らせ、本当にチェックポイントのコピーが支配的なら、Postgresのチェックポインターや小さな状態スキーマで、Rust拡張をスタックに入れずに効果の大半を得られるかもしれません。
真価を発揮する場面
200KBの状態を持つLangGraphの調査エージェントを動かすバックエンドエンジニア
何かを書き直す前に、各ステップが遅い理由を突き止めたい
1回の実行をGraphProfiler.profile_run()で囲んでレポートを出力し、チェックポイントが支配的ならブランチでRustSQLiteCheckpointerを試します。かかるのは午後半日ほどです。
本番エージェント向けのフレームワーク拡張を評価するチームリーダー
サードパーティのパッチを出荷してよいか判断したい
LangGraphのバージョンを固定し、ステージングでFAST_LANGGRAPH_AUTO_PATCH=1を有効にして、有無でレイテンシを比較します。LangGraphを更新する前は、未処理のDependabotの山を注意信号として見ておきます。
導入前に確認すること
- 導入
- pip install fast-langgraphまたはuv add fast-langgraphのあと、環境変数か起動時のfast_langgraph.shim.patch_langgraph()で有効にします。ビルド済みのwheelがあるのでRustのツールチェーンは不要です。
- 連携
- 対象はLangGraphのみで、Python 3.9以降です。直接使うためのRustクレートも公開されています。Neul LabsはLiteLLM、CrewAI、Axolotl向けの姉妹パッケージも作っています。
- データとプライバシー
- プロセス内で動きます。SQLiteチェックポインターは指定したローカルファイルに書き込みます。MITライセンスで、付随するサービスはありません。
- 制限
- コントリビューターは2人です。依存関係のプルリクエスト5件が未マージです。高速化の度合いは状態のサイズ次第で、README自身の見積もりでも一般的なグラフでは約2.8xに縮みます。
良い点
- 環境変数1つで自動パッチが有効になります
- 自身のベンチマークでは、大きな状態のシリアライズがdeepcopyよりはるかに高速です
- 組み込みのプロファイラーでグラフの時間の使い道がわかります
- MITライセンスで、PyPIとcrates.ioにあります
気になる点
- 見出しの高速化はdeepcopyとの比較で、LangGraphのチェックポインターとの比較ではありません
- 自身のベンチマークで一部のチャンネル操作がPythonより遅くなっています
- スター27、コントリビューター2人、月59ダウンロードです
- モンキーパッチはLangGraphの新リリースで壊れるおそれがあります
おすすめの人
大きな状態を頻繁にチェックポイントしているLangGraphチームで、シリアライズがボトルネックかどうかを測りたい人に向いています。
Fast-LangGraphの代替
Fast-LangGraph:よくある質問
- Fast-LangGraphは使う価値があるか?
