langchain-core 1.3.0 が2025年4月17日にリリースされた。1.2.31からのアップデートで、変更点はそこまで多くないが、実務で使ってるコードに直接刺さる部分がいくつかある。
自分が最初に気になったのは `fix(core): restore cloud metadata IPs and link-local range in SSRF policy` というやつ。要はSSRF対策のポリシーで、クラウドのメタデータIPやリンクローカルのレンジが一時的に除外されていたらしい。AWSやGCPのインスタンス上でLLMのチェーンを動かしてるなら、ここが欠けてると思わぬところで詰まる。自分は今ちょうどECS上でRAGのバックエンドを動かしてて、このfixは普通に気にしないといけない話だった。
さらに `chore(core): harden private SSRF utilities` も入ってる。セキュリティ周りを2段階で対応してきたということで、1.2.x系を使い続けるのは少しリスクがある。さっさと上げたほうがいい。
`feat(core): Add chat model and LLM invocation params to traceable metadata` というのも入った。チャットモデルやLLMを呼び出したときのパラメータが、トレース可能なメタデータとして記録されるようになる。LangSmithと組み合わせると、どのモデルをどのパラメータで呼んだかがちゃんとトレースに残る。
コスト最適化を考えてると、どの呼び出しで何トークン使ったか、temperatureは何だったかとかを後から追いたくなる。これまでは自前でlogging仕込んでたけど、フレームワーク側でメタデータに乗るなら管理がだいぶ楽になる。チームでLLMのコードレビューするときも、「このチェーンの設定なんだっけ」をトレースから確認できる。
アップデート自体はこれだけ。
すでに1.2.x系を使ってるなら、breaking changeはないはずなのでそのまま上げられる。`checkpoint_ns behavior in streaming metadata` はバックワードコンパティビリティを維持するchoreとして入ってるので、ストリーミング周りの既存コードが壊れることはない。
地味に見落としがちなのが `chore(deps): bump pytest to 9.0.3` が2回入ってること。libsのcoreとルートレベルで別々にbumpしてる。自分のプロジェクトがlangchain-coreのテスト周りを参考にしてる場合や、同じpytestバージョンを固定してる場合は一緒に合わせておいたほうがいい。
全体的に見て、このリリースは「機能追加より安定化」という印象が強い。SSRFの修正、メタデータの強化、ストリーミングの後方互換維持。新しいことをバンバン試したいリリースというより、本番に入れるための品質を上げにきた感じがする。
自分は今週末にECのRAGバックエンドのdependencyを1.3.0に上げつつ、LangSmithのトレースでinvocation paramsが正しく記録されるか確認してみるつもりだ。
SSRFまわりが地味にきつかった
自分が最初に気になったのは `fix(core): restore cloud metadata IPs and link-local range in SSRF policy` というやつ。要はSSRF対策のポリシーで、クラウドのメタデータIPやリンクローカルのレンジが一時的に除外されていたらしい。AWSやGCPのインスタンス上でLLMのチェーンを動かしてるなら、ここが欠けてると思わぬところで詰まる。自分は今ちょうどECS上でRAGのバックエンドを動かしてて、このfixは普通に気にしないといけない話だった。
さらに `chore(core): harden private SSRF utilities` も入ってる。セキュリティ周りを2段階で対応してきたということで、1.2.x系を使い続けるのは少しリスクがある。さっさと上げたほうがいい。
トレーサビリティが上がったのは嬉しい
`feat(core): Add chat model and LLM invocation params to traceable metadata` というのも入った。チャットモデルやLLMを呼び出したときのパラメータが、トレース可能なメタデータとして記録されるようになる。LangSmithと組み合わせると、どのモデルをどのパラメータで呼んだかがちゃんとトレースに残る。
コスト最適化を考えてると、どの呼び出しで何トークン使ったか、temperatureは何だったかとかを後から追いたくなる。これまでは自前でlogging仕込んでたけど、フレームワーク側でメタデータに乗るなら管理がだいぶ楽になる。チームでLLMのコードレビューするときも、「このチェーンの設定なんだっけ」をトレースから確認できる。
アップデート自体はこれだけ。
pip install langchain-core==1.3.0すでに1.2.x系を使ってるなら、breaking changeはないはずなのでそのまま上げられる。`checkpoint_ns behavior in streaming metadata` はバックワードコンパティビリティを維持するchoreとして入ってるので、ストリーミング周りの既存コードが壊れることはない。
pytestが9.0.3になった件
地味に見落としがちなのが `chore(deps): bump pytest to 9.0.3` が2回入ってること。libsのcoreとルートレベルで別々にbumpしてる。自分のプロジェクトがlangchain-coreのテスト周りを参考にしてる場合や、同じpytestバージョンを固定してる場合は一緒に合わせておいたほうがいい。
全体的に見て、このリリースは「機能追加より安定化」という印象が強い。SSRFの修正、メタデータの強化、ストリーミングの後方互換維持。新しいことをバンバン試したいリリースというより、本番に入れるための品質を上げにきた感じがする。
自分は今週末にECのRAGバックエンドのdependencyを1.3.0に上げつつ、LangSmithのトレースでinvocation paramsが正しく記録されるか確認してみるつもりだ。