LangChain 1.2.18がリリースされた。変更点を眺めていたら、自分のコードに直接関係しそうなやつが混ざっていたので整理しておく。
いちばん気になったのはrevertの件
リリースノートに「revert: feat(langchain): ls_agent_type tag on create_agent calls (#37249)」という行がある。これ、一回マージされた機能を取り消しているやつだ。1.2.17で入ったはずのcreate_agent呼び出し時のls_agent_typeタグ付けが、なかったことにされている。
自分は最近、LangSmithでトレースを取りながらエージェントの挙動を確認する運用をしていた。タグで絞り込みができると思って期待していたので、これは正直ちょっと残念だった。理由はPRに書かれていなかったが、おそらく何らかの副作用があったんだと思う。次のリリースで再実装されるのか、設計が変わるのかは追いかける必要がある。
hubのdeprecateとloads/dumpsの制限
「chore(langchain-classic): deprecate hub, limit loads/dumps (#37234)」という変更も入っている。langchain-classicパッケージ側の話だが、hubモジュールのdeprecateが進んでいる。
自分のコードを確認したら、こんな書き方が残っていた。
from langchain import hub
prompt = hub.pull("rlm/rag-prompt")これが将来的に動かなくなる。今のうちにlangchain_coreや他の推奨パスへ移行しておいたほうがいい。loadsとdumpsも制限がかかる方向なので、シリアライズ処理を使っているプロジェクトは要注意だ。
create_agentまわりのdeprecation対象が整理されたのも同じ流れで、langchain-classicからlangchain本体へ責務を移していくリファクタが続いている。これは1〜2リリース前からずっと続いているトレンドだ。
あと「chore(langchain,langchain-classic): uncomment optional deps (#37163)」という地味な変更も入っている。オプション依存のコメントアウトを外しただけに見えるが、環境によってはimportエラーが出る可能性がある。依存管理が厳しいプロジェクトだとここで詰まるかもしれないので、アップグレード後は一度テストを走らせておいたほうがいい。
fireworks 1.2.1も同時リリースされている
「release(fireworks): 1.2.1 (#37113)」が一緒に出ている。Fireworks AIの統合パッケージのアップデートだ。自分はまだFireworksは触っていないが、コスト面で気になっているプロバイダのひとつではある。LangChainのエコシステムとして整備が進んでいるのは把握しておきたい。
このリリース全体を見て思うのは、LangChainは今まさに「古い書き方を整理している時期」だということだ。langchain-classicから積極的にdeprecateを進めているので、自分のコードに古いimportパスが残っていないか確認するのが先決だと思う。
まず自分がやることは、from langchain import hubのような書き方をgrepで洗い出して、推奨パスへ置き換える作業だ。小さい変更だが、放置すると後でまとめて対応するはめになる。来週の作業に入れておくつもりだ。