Skip to content

原文(日本語に翻訳)

ToolSearch の直後にモデルのレスポンスが空になる問題を修正しました。サーバーがツールスキーマをシステムプロンプト形式のタグとしてプロンプトの末尾にレンダリングしており、モデルが早期に停止してしまうことがありました。

原文(英語)

Fixed empty model responses immediately after ToolSearch — the server renders tool schemas with system-prompt-style tags at the prompt tail, which could confuse models into stopping early

概要

Claude Code 2.1.70では、ToolSearch ツールを使用した直後にモデルが空のレスポンスを返してしまうバグが修正されました。この問題はサーバー側でツールスキーマをシステムプロンプト形式のタグとしてプロンプト末尾に追加する際に、モデルがそこで停止してしまうことが原因でした。これにより遅延読み込みされるツール(ToolSearch で検索・選択されるツール)を使用するワークフローの信頼性が大きく向上します。

基本的な使い方

修正前は ToolSearch 後に空レスポンスが発生することがありましたが、修正後は正常に動作します:

// ToolSearchを実行してツールを読み込む
ToolSearch: "ファイル読み込み"

// 修正前: モデルが停止して空レスポンスが返ることがあった
// 修正後: ツールが正しくロードされ、モデルが継続して応答する
→ Read, Grep などのツールが正常に利用可能になる

実践例

遅延ロードツールを使った作業

Claude Codeの遅延ロード(deferred tools)機能は、必要なツールだけを動的にロードすることでシステムプロンプトを軽量化します:

// 会話の流れ
ユーザー: 「このファイルを読んで分析してください」

// Claude CodeがToolSearchを内部で実行
ToolSearch: "select:Read"

// 修正前: ここで空レスポンスになることがあった
// 修正後: 継続してReadツールを使用
→ Read: /path/to/file.ts
→ 分析結果を正常に返す

複数ツールの連続使用

ToolSearch後に複数のツールを連続して使う場合も安定して動作:

// ToolSearchでGlobとGrepを読み込み
ToolSearch: "select:Glob,Grep"

// 修正後: 読み込んだツールを即座に使用可能
→ Glob: "**/*.ts"
→ Grep: "functionName"
→ 結果を返す(空レスポンスなし)

エージェントワークフローでの安定性

自動化されたエージェントタスクでの信頼性が向上:

python
# Claude Code SDKを使用したエージェントフロー
# ToolSearch → ツール実行 → 結果返却 のサイクルが安定
result = claude.run("""
  ToolSearchでGlobを見つけてから
  src/以下の全TypeScriptファイルを一覧表示してください
""")
# 修正前: 空レスポンスでループが止まることがあった
# 修正後: 安定して完了する

注意点

  • この修正はClaude Code 2.1.70以降で自動的に適用されます
  • ユーザー側での特別な設定変更は必要ありません
  • ToolSearch を頻繁に使用するエージェント型のワークフローで特に効果があります
  • 遅延ロードツール(Available Deferred Tools)の信頼性向上に直結します

関連情報