0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Codeでツール呼び出し(invoke)が“ただの文字”で出て止まるバグの原因と直し方【公式既知バグ】

0
Posted at

Claude Codeでツール呼び出し(invoke)が“ただの文字”で出て止まるバグの原因と直し方【公式既知バグ】

「Claude Code で作業してたら、急にツール呼び出しが実行されず、<invoke ...> みたいなタグがそのまま文字として出力されて止まる」——これ、あなたの設定ミスでもプロンプトのせいでもありません。公式リポジトリに複数 issue が立っている既知バグです。原因と、確実に復帰する手順、再発を減らす予防策をまとめます。

messageImage_1780744176355.jpg

TL;DR(先に結論)

  • 症状:ツール呼び出しが実行されず、<invoke ...> のXMLが生テキストで出てターンが止まる。
  • 原因:モデルがツール呼び出しを「構造化データ」ではなく「古い形式のXML文字列」として出力してしまう回帰バグ(2026年5月末〜)。一度壊れると履歴に残り、壊れ方をコピーし続ける(few-shot self-poisoning)。
  • ❌ やってはいけない:リトライ/「気をつけて」と再指示。→ 壊れたテンプレを増殖させて悪化します。
  • ✅ 直し方Esc 2回 or /rewind で壊れる直前に戻す → ダメなら /clear(確実)。
  • ✅ 予防:区切りで /clear/compact、巨大でXMLだらけの skill を途中で読み込まない、1Mコンテキストを切る。

こんな症状で困っていませんか?

ツール(Bash、MCPツール、ブラウザ操作など)を呼ぼうとした瞬間、実行されずに次のようなテキストがそのまま画面に出て、ターンが終わってしまう

court
<invoke name="mcp__Claude_in_Chrome__computer">
<parameter name="action">scroll</parameter>
<parameter name="coordinate">[1000, 500]</parameter>
...
</invoke>

注目すべき特徴は3つ:

  1. 先頭に court のような意味不明な余計なトークンが付く
  2. 本来あるはずの antml: プレフィックスが落ちている
  3. 全体を囲む <function_calls> ラッパーが無い、裸の <invoke>

この3点セットが、後述する公式 issue の説明と完全に一致します。

これは自分のミスじゃない(公式の既知バグ)

anthropics/claude-code に同種の issue が複数立っています(#64235, #62344, #64658 ほか)。Opus 4.8 でも再発報告があり、執筆時点で完全修正には至っていません(部分修正は出荷済み)。

原因

① 本体:tool_use が「テキスト」に化ける回帰バグ

本来、ツール呼び出しは stop_reason: tool_use構造化ブロックとして返るべきところ、モデルがそれをレガシーな <invoke> XML“文字列”として直列化してしまう。クライアント側は「ただのテキスト」と解釈するので、ツールは実行されずにターンが終わる=すぐ止まる。2026年5月末頃から目立つようになった回帰バグです。

② 悪化メカニズム:few-shot self-poisoning(自己汚染)

ここが重要。一度壊れたツール呼び出しが会話履歴に残ると、自己回帰生成で以後も同じ壊れ方をコピーし続けます。

だから リトライや「気をつけて」「1個ずつ呼んで」という再指示は最悪手。壊れたテンプレを履歴に増やし、セッション内では自力回復できなくなります。

報告では「4回連続リトライしても全部同じ壊れ方をした」「特定の文脈(連続するツール呼び出し・失敗後のリトライ)で安定的に再発した」とされています。

踏みやすい条件

  • 長時間まわしている長いセッション
  • 連続したツール呼び出し
  • 大きなファイル/ページをたくさん読み込んでいる
  • <result> ブロックやヒアドキュメントなどXML/マークアップ密度が高い skill を読み込んだ
  • 1Mコンテキスト + 強い思考」の組み合わせ

💡 ブラウザ自動操作(Claude in Chrome 等)は要注意。 連続スクロール+巨大なページテキスト読み込みで、上の条件をほぼ全部満たすため特に踏みやすいです。

直し方(詰まったときのリカバリー)

手順 やること 補足
リトライしない 汚染を増やすだけ
Esc を2回 or /rewind 壊れる直前のチェックポイントに戻して続行
/clear 確実に効く唯一の復帰策。文脈を残したいなら先に /compact

ポイントは「壊れたターンを履歴から消してから続ける」こと。②で直前に戻すだけで直ることが多く、ダメなら③でセッションをリセットします。

予防(再発を減らす)

  • タスクの区切りで /clear/compact をこまめに。 セッションを肥大化させない。
  • 巨大でXMLだらけの skill ファイルをセッション途中で読み込まない。
  • 1Mコンテキストを使っているなら200Kに戻すのも有効:
# 1Mコンテキストを無効化(200Kに戻す)
export CLAUDE_CODE_DISABLE_1M_CONTEXT=1

※ 環境変数名は将来変わる可能性があります。最新の正確な名前は公式ドキュメントで確認してください。

  • 不要な場面は /effort を下げる(部分的な緩和)。
  • Claude Code を最新版に更新(部分修正が入っています)。

諸説あり:日本語マルチバイト密度の影響(確証は弱め)

「日本語などマルチバイト文字の密度が高いと崩れやすい」という説もあり、緩和として CLAUDE.md に次を足す方法が出回っています。

Think in English, respond in Japanese.

ただしこれは一次ソースの根本原因(回帰バグ/self-poisoning)ほど確証はありません。まずは上のリカバリー+予防を徹底し、これは保険程度に試すのがおすすめです。

まとめ

  • ツール呼び出しが生テキストで出て止まるのは、あなたのせいではなく公式の既知バグ
  • リトライは厳禁Esc2回 / /rewind → ダメなら /clear
  • 長いセッション・XML密な文脈・1M+強思考で踏みやすい。こまめにリセットが効く。

同じ症状でハマっている人の助けになれば幸いです。

出典

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?