【ClaudeCode】reasoning_extractionで止まる原因と対処|巻き戻しても直らなかった

スポンサーリンク
Claude
スポンサーリンク

Claude Codeで作業していたら、突然「メッセージをフラグしました」と出て、それ以降まったく応答しなくなった。詳細欄には[reasoning_extraction]とだけ書かれている。

巻き戻しても直らず、止まったセッションを別のセッションに読み込ませて中身を確かめようとしたら、そちらまで同じ表示で止まってしまった。

結論から書くと、一度このエラーで止まったセッションは、巻き戻しても、/modelでモデルを変えても、別セッションに読み込ませても復旧しなかった。止まったセッションの記録は使わず、新しいセッションでやり直すしかない。この記事では、そのときの状況と、公式ドキュメントに書かれていた原因の説明をまとめる。

症状:「メッセージをフラグしました」で止まる

Claude DesktopのClaude Codeで、いつもどおり資料作りの作業を任せていたところ、次の表示が出て止まった。

Claude Codeにメッセージをフラグしました、Opus 5.5 can't help with this. Start a new session to continue.、詳細:[reasoning_extraction]と表示された画面

表示されていた文言はこうだ。

Opus 5.5 can't help with this. Start a new session to continue.
詳細: [reasoning_extraction]

「このモデルでは手伝えないので、新しいセッションを始めてください」という意味である。何か危ないことを頼んだ覚えはない。直前までやっていたのは、普通の資料作りだった。

巻き戻しても直らなかった

表示の右下に「巻き戻し」ボタンがあるので、まずはそれを試した。押すと、過去に送ったメッセージの一覧が出て、戻りたい地点を選べる(メッセージの中身はぼかしている)。

巻き戻しの画面。セッションを以前のメッセージの状態に復元しますと書かれ、過去のメッセージが一覧で並ぶ

メッセージを選ぶと確認画面が出る。復元するのは「コードと会話」で、ファイルの変更も一緒に戻る。

このメッセージまで巻き戻しますか?の確認画面。復元はコードと会話、7件のファイルが対象と表示されている

ところが、巻き戻しを実行すると次の表示が出た。

コードを復元しましたが、会話を巻き戻せませんでした。もう一度巻き戻してみてください。と表示された画面
コードを復元しましたが、会話を巻き戻せませんでした。もう一度巻き戻してみてください。

ファイルは戻ったが、会話は戻っていない。巻き戻しをやり直しても、セッションは止まったままで直らなかった。

/modelでモデルを切り替えてから送り直してもみたが、こちらもだめだった。

以前、「input is too long」で止まったときは巻き戻しで復旧できたので、今回もいけると思っていた。このエラーは巻き戻しでは逃げられなかった。

別セッションに読み込ませたら、そちらも止まった

次に、新しいセッションを立てて「止まったセッションの中身を確認して、続きをやって」と頼んだ。新しいセッションは止まったセッションの記録(transcript)を読みにいき、読み込んだところで同じ表示が出て止まった。

新しいセッションでまず止まったセッションの中身を確かめますと言い、Read session transcriptの後にOpus 5.5 (1M context) can't help with this.とreasoning_extractionで止まった画面

途中に出ている「Git Bash wasn't found」の通知は、私の環境のフックに関するもので今回の件とは関係ない。止まったのは「Read session transcript」、つまり止まったセッションの記録を読んだ直後である。

止まったセッションの記録を引き継ごうとする限り、新しいセッションでも止まる。結局、止まったセッションの記録は使わず、新しいセッションで最初からやり直した。

やり直しても大きな問題にならなかった理由

セッションを捨てて最初からやり直したが、作業として大きな問題は起きなかった。私はプロジェクトを進めるとき、要件、仕様、課題を、発言の都度専用のmdファイルに記録する方針にしているからだ。

決めたことや残っている課題が会話の中にしかないと、セッションが止まった時点で全部失われる。ファイルに残っていれば、新しいセッションにそのファイルを読ませるだけで続きから始められる。会話の記録は、今回のように突然使えなくなることがある。大事なことは会話の外に置いておくのが一番の保険だと改めて感じた。

reasoning_extractionとは

reasoning_extractionは、直訳すると「推論の抽出」である。Anthropicの公式ドキュメントでは、モデルの内部の推論(考えている過程)を、回答の文章として書き出させようとするリクエストをこの分類で止める、と説明されている。

  • Opus 5とOpus 5.5には、モデルの内部の推論を取り出そうとする試みを検出してブロックする仕組みがある
  • この分類で止まった場合、別のモデルに切り替えて続ける仕組み(フォールバック)は働かず、そのまま止まる
  • 「なぜそうしたの?」と聞いたり、理由を説明させたりするのは対象外

止まりやすい頼み方の例として、次のようなものが挙がっている。

  • 回答の前に、考えたことを書く欄(thinking、reasoning、scratchpadなど)を埋めさせる
  • 出力のJSONやツールの入力に、reasoningやthinkingといった項目を入れさせる
  • モデルの個人的なメモや、推論の経過を記録し続けるログを書かせる
  • 推論をそのまま、または全部書かせる

こうした言葉は、自分が送ったメッセージだけでなく、システムプロンプトやスキル、ツールの説明に入っていても止まる原因になる、とも書かれている。

参考:Refusals and fallback - Claude Docs、Why Claude switched models in your conversation with Opus 5 or Opus 5.5 - Claude Help Center

「途中経過を日本語で」としか頼んでいない

引っかかったのはここだ。私はClaudeに「推論過程を事細かに書け」とは頼んでいない。指示したのは、回答も途中経過も日本語で書いてほしいということくらいである。英語で途中経過を出されると読みにくいので、日本語にしてもらっていた。

なぜこれで止まったのかは、表示からは分からない。公式の説明と照らし合わせると、次のように推測している。あくまで推測で、確かめてはいない。

  • 「途中経過を書く」という指示が、「推論の経過を書き出させる」ものと判定された可能性がある
  • この指示はセッションの最初の方に入っていたので、巻き戻してもその指示より後ろにしか戻れず、同じ判定に当たり続けた可能性がある
  • 別セッションで止まったのは、止まったセッションの記録の中に同じ指示や、止まる原因になった内容が丸ごと入っていて、それを読み込んだからだと考えている

なお、公式ドキュメントによると、この分類で止まったリクエストも普通のリクエストと同じく料金がかかる。従量課金で使っている場合、何度も同じ状態で再送するのはやめたほうがよい。

同じエラーが出たときの対処

私の体験と公式の説明から、次の順番で考えるのがよいと思う。

  1. 巻き戻しやモデル変更は1回試す程度にする:私の場合はどちらも直らなかった。直らなければ、同じセッションで粘らない
  2. 止まったセッションは捨てる:新しいセッションに「止まったセッションを読んで続きをやって」と頼むと、そちらも止まる。記録を読ませずに始める
  3. 作業の状態はファイルから引き継ぐ:要件や課題をmdに記録していれば、新しいセッションでそのファイルを読ませて続けられる。作業結果がファイルやgitに残っていれば「フォルダの今の状態を確認して続きをやって」と頼めばよい
  4. 途中経過や推論を書かせる指示を見直す:CLAUDE.mdやスキル、引き継ぎメモなどに「途中経過」「思考過程」「推論」を書かせる言葉がないか確認する

新しいセッションでClaude Codeの会話をまっさらにするには、次のコマンドを使う。

/clear

日本語で報告してほしい場合は、「考えていること」ではなく「やったことと結果」を短く報告させる書き方にしておくと、公式の説明にある「理由の説明やアクションの要約は対象外」の範囲に収まる。たとえば次のような書き方だ(この書き方で止まらなくなるかは、まだ確かめていない)。

回答は日本語で書くこと。作業の区切りでは、やったことと結果を日本語で短く報告すること。

止まってしまったリクエストが、どう考えても普通の頼み方だった場合は、/feedbackで報告できる。

まとめ

  • 「メッセージをフラグしました」「詳細:[reasoning_extraction]」は、モデルの推論を書き出させようとしていると判定されたときに出る
  • 私の場合、巻き戻しでも/modelでのモデル変更でも直らず、止まったセッションを別セッションに読み込ませるとそちらも止まった
  • 「途中経過を日本語で書いて」と頼んだ程度で、推論を事細かに書けとは指示していなかった。この指示が引っかかった可能性はあるが、確証はない
  • 止まったら、そのセッションの記録は使わずに新しいセッションでやり直す。要件・仕様・課題をmdに記録しておけば、やり直しても困らない

コメント

タイトルとURLをコピーしました