遅延ツールのスキーマ消失バグの修正:会話コンパクション後の型エラーを解消
原文(日本語に翻訳)
遅延ツール(ToolSearch 経由で読み込まれたもの)が会話コンパクション後に入力スキーマを失い、配列や数値パラメータが型エラーで拒否される問題を修正
原文(英語)
Fixed deferred tools (loaded via ToolSearch) losing their input schemas after conversation compaction, causing array and number parameters to be rejected with type errors
概要
Claude Code v2.1.76で、遅延ツール(deferred tools)のスキーマが会話コンパクション後に失われるバグが修正されました。遅延ツールとは、最初はツール名のみが利用可能で、ToolSearch を使って初めて完全なスキーマ定義が読み込まれるツールです。従来は会話が長くなりコンパクション(/compact)が実行されると、読み込み済みのスキーマ情報が消失し、配列(array)や数値(number)型のパラメータを渡そうとすると型エラーが発生していました。
基本的な使い方
修正後は、遅延ツールを ToolSearch で読み込んだ後、会話コンパクションが発生しても問題なく使い続けられます:
# 1. 遅延ツールの検索と読み込み
ToolSearch で必要なツールを検索
# 2. ツールの使用(配列や数値パラメータも正常に動作)
読み込まれたツールを通常通り使用
# 3. 会話が長くなりコンパクションが発生
/compact
# 4. コンパクション後もツールが正常に動作(修正済み)
同じツールを引き続き使用可能実践例
長時間セッションでのMCPツール利用
MCPサーバー経由で提供される遅延ツールを長時間のセッションで利用する場合:
# セッション開始時にMCPツールを検索して読み込み
> データベースのテーブル一覧を取得して
# Claude が ToolSearch でDBツールを検索・読み込み
# 配列パラメータを持つクエリツールが正常に動作
# ... 多数のやり取りの後、コンパクションが発生 ...
# 修正前: 「パラメータの型が不正です」というエラーが発生
# 修正後: 同じツールが問題なく動作し続ける
> 先ほどと同じテーブルに対して別のクエリを実行して複雑なパラメータを持つツールの継続利用
配列やオブジェクト型のパラメータを受け取るツールでの利用:
# 複数ファイルを一括処理するツールを使用
> これらのファイルをまとめて処理して: ["file1.ts", "file2.ts", "file3.ts"]
# ツールが配列パラメータを正しく受け取って処理
# コンパクション後も同じ操作が可能
/compact
> 別のファイル群も同様に処理して: ["file4.ts", "file5.ts"]
# 修正後はエラーなく動作注意点
- 影響範囲: この問題は
ToolSearch経由で動的に読み込まれる遅延ツールにのみ影響していました。最初からスキーマが定義されている組み込みツールには影響ありません - コンパクションのタイミング: 会話が長くなると自動的にコンパクションが行われる場合があります。手動で
/compactを実行した場合も同様です - 影響を受けるパラメータ型: 文字列(string)型のパラメータは影響を受けませんでしたが、配列(array)や数値(number)型のパラメータが型エラーで拒否されていました
- v2.1.76へのアップデート推奨: 遅延ツールを頻繁に使用する場合は、早めのアップデートを推奨します