Skip to content

原文(日本語)

ストリーミングを使用しない場合にツール使用間のテキストが消える問題を修正

原文(英語)

Fixed text between tool uses disappearing when not using streaming

概要

Claude Code 2.1.38では、ストリーミングモードを使用していない場合に、ツール呼び出しの間に表示されるテキストが消えてしまう問題が修正されました。これにより、Claudeの思考過程や説明がすべて正しく表示されるようになりました。

基本的な使い方

特別な設定は不要です。ストリーミングモードの有無に関わらず、Claudeの応答が完全に表示されるようになりました。

bash
# ストリーミングモードの切り替え(任意)
claude --no-streaming  # ストリーミングなし
claude                 # デフォルト(ストリーミングあり)

実践例

ツール実行時の説明表示

以前は消えていたツール実行前後の説明が、正しく表示されるようになります。

修正前の問題:

[ツール呼び出し1]
[結果1]
[ツール呼び出し2]  ← 間の説明が消失
[結果2]

修正後の動作:

ファイルを読み取ります。
[ツール呼び出し1: Read]
[結果1]

コードを分析した結果、以下の変更が必要です。
[ツール呼び出し2: Edit]
[結果2]

修正が完了しました。

複数ファイルの編集作業

複数のファイルを編集する際、各ステップの説明が正しく表示されます。

bash
# 例: リファクタリング作業
claude "utils.jsとhelpers.jsをリファクタリングしてください"

期待される出力:

まず、utils.jsを読み取って現在の実装を確認します。
[Read tool: utils.js]

次に、helpers.jsも確認します。
[Read tool: helpers.js]

両ファイルに共通する関数を抽出します。
[Edit tool: utils.js]

helpers.jsから重複コードを削除します。
[Edit tool: helpers.js]

リファクタリングが完了しました。

デバッグ作業での詳細表示

問題解決のプロセスが段階的に表示されます。

bash
claude "テストが失敗する原因を調査してください"

期待される出力:

まず、テストファイルを確認します。
[Read tool: test/app.test.js]

エラーメッセージから、モック設定に問題があるようです。
次に、モックの実装を確認します。
[Read tool: __mocks__/api.js]

問題を特定しました。モックの戻り値が正しくありません。
修正します。
[Edit tool: __mocks__/api.js]

修正を確認するためにテストを実行します。
[Bash tool: npm test]

すべてのテストがパスしました。

API設定やカスタム実装での影響

カスタムAPI実装やストリーミングを無効にしている環境で特に有効です。

javascript
// Claude API使用時の例
const anthropic = new Anthropic({
  apiKey: process.env.ANTHROPIC_API_KEY
});

const response = await anthropic.messages.create({
  model: "claude-sonnet-4-5",
  max_tokens: 1024,
  stream: false,  // ストリーミング無効
  messages: [
    { role: "user", content: "ファイルを編集してください" }
  ]
});

// 修正後: すべてのコンテンツブロックが正しく含まれる

注意点

  • 影響範囲: この問題はストリーミングを使用していない場合にのみ発生していました
  • デフォルト動作: Claude CodeのデフォルトはストリーミングモードONのため、多くのユーザーは影響を受けていなかった可能性があります
  • カスタムAPI実装: Anthropic APIを直接使用し、stream: falseを指定している場合に影響がありました
  • 表示の完全性: 修正後は、ストリーミングの有無に関わらず、同じ内容が表示されます

関連情報