ホームへ戻る

GitHub Repo

LangChain Anthropic 1.7.4、会話途中でのツールの追加・削除に対応

新バージョンでは、エージェントがシステムメッセージを通じてツールセットを調整でき、内容に応じてベータ版ヘッダーが追加される。キャッシュの効果は引き続き設定とメッセージの位置に依存し、未知のシステムブロックの処理方法も変更された。

Dirck van Baburen · Public domain · Image source
zh-Hant

LangChainは9月23日、Anthropic統合パッケージ1.7.4をリリースし、会話途中でツールを追加・削除するネイティブのコンテンツブロックをシステムメッセージで扱えるようにした。関連する提案は前日に提出され、リリース当日にマージされた。リリースノートとパッケージレジストリも更新され、長時間稼働するエージェントが同じ会話履歴の中で利用可能なツールを変更できるようになった。[リリースノート](https://github.com/langchain-ai/langchain/releases/tag/langchain-anthropic==1.7.4/)、[PyPI](https://pypi.org/project/langchain-anthropic/1.7.4/)。

今回追加されたのは、フレームワークのメッセージ変換処理における対応だ。開発者は`SystemMessage`に`tool_addition`または`tool_removal`を、辞書形式で直接、あるいは`non_standard`ブロックで包んで格納できる。ネイティブ形式の内容はラッパーから取り出されたうえで、送信するシステムメッセージ内に保持される。また、内容がツール参照か完全な定義かに応じて、対応するベータ版ヘッダーが追加される。[変更に関する議論](https://github.com/langchain-ai/langchain/pull/40758)、[公開実装](https://raw.githubusercontent.com/langchain-ai/langchain/master/libs/partners/anthropic/langchain_anthropic/chat_models.py)。

技術的な価値は、プロンプトのプレフィックスを維持できる点にある。ツール配列は会話キャッシュより前に位置するため、直接書き換えると、それ以降のキャッシュが無効になる。メッセージの追記に切り替えることで、指定したターンからツールを提供したり、取り下げたりできる。ツールの構造が実行時まで確定しない場合も、インライン定義モードで完全な構造を渡せる。エージェント開発では、タスクの段階に応じてツールセットを変更するための仕組みとなる。ただし、キャッシュは引き続き明示的に有効化する必要があり、パッケージのアップグレード自体がコスト削減を保証するわけではない。[Claudeドキュメント](https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages)。

アップグレードには互換性に関する注意点もある。システムメッセージ内の未知のブロックは、破棄されて警告が出るようになった。モデルや配置位置の制約によってメッセージがトップレベルに移された場合、ツールの変更も取り除かれる可能性がある。一方、先頭のシステムメッセージではブロックが保持され、検証はサーバー側に委ねられるため、一律にローカル側で事前に拒否されると解釈すべきではない。[公開実装](https://raw.githubusercontent.com/langchain-ai/langchain/master/libs/partners/anthropic/langchain_anthropic/chat_models.py)。

例えば、複数の段階からなるデータ分析エージェントでは、まず検索ツールを提供し、データソースが確定してから分析ツールを追加できる。これは、このインターフェースで対応可能なワークフローの一例だ。今回のリリースでは成功率やコストのベンチマークは示されておらず、ツール定義の長さ、呼び出し頻度、履歴の保存方法も引き続き効果を左右する。

そのため、デプロイ時の検証には、実際に送信されるツール一覧、警告ログ、サーバー側のエラー、キャッシュのヒット量を含めるべきだ。ツールの取り下げで変わるのは、その後モデルから見える選択肢だけであり、アプリケーション側では引き続き独自に実行権限を管理する必要がある。チームは会話途中でツールを追加した後の履歴の再生もテストし、モデルが正常に応答できることだけでなく、保存・復元の処理でこれらのブロックが完全に保持されることを確認すべきだ。

出典

  1. Release langchain-anthropic==1.7.4
  2. langchain-anthropic 1.7.4
  3. Mid-conversation tool changes on SystemMessage — PR #40758
  4. ChatAnthropic 訊息轉換與測試版標頭實作
  5. Mid-conversation system messages and tool changes