Claude Code 品質劣化のポストモーテム(2026-04-23)— 3 つの独立変更が重なった顛末と対応

Anthropic が 2026-04-23 に Claude Code の品質劣化を公式に認めるポストモーテムを公開しました。原因は 3 月〜4 月にかけて入った 3 つの独立した変更(既定 effort の引き下げ、セッションキャッシュのバグ、システムプロンプトの語数制限)が重なったもの。Claude API は影響対象外。全サブスクライバの usage limit がリセットされています。事実関係と、ユーザー側で確認すべき行動、再発防止策をまとめます。

Anthropic が 2026-04-23 に「An update on recent Claude Code quality reports」を公式 engineering blog に掲載しました。最近 Claude Code が調子悪いと感じていた開発者の体感を裏付ける内容で、3 つの独立した変更が 3 月〜4 月に重なって品質を押し下げていたことが公式に認められました。2025-09 の API 品質劣化ポストモーテムに続く 2 度目の公式謝罪という位置づけです。

本記事では、事実関係の整理、影響範囲の切り分け、ユーザー側で確認すべきこと、そして運用上の教訓をまとめます。

到達点

  • 何が劣化していたか、いつ発生し、いつ直ったかを把握する
  • 影響範囲を正しく切り分ける(Claude API は対象外)
  • 自分のアカウントが受けた影響と、いま取るべき行動
  • Anthropic 側の再発防止策から拾える、LLM プロダクト運用の教訓

影響範囲 — ここが一番大事

公式発表で明示的に区別されています。

サーフェス影響
Claude Code(CLI / IDE 拡張)✅ 影響あり
Claude Agent SDK✅ 影響あり
Claude Cowork(Claude.ai 内のエージェント製品)✅ 影響あり
Claude API(直接呼び出し)非該当

つまり、自作アプリから Claude API を直叩きしている場合は影響なし。Claude Code などの Anthropic 製エージェントハーネスを経由していた場合だけ品質劣化が起きていました。自分のサービスの品質問題を疑う前に、まずどの経路で Claude を呼んでいるかを確認すると切り分けが速いです。

3 つの独立した原因

原因 1: デフォルト reasoning effort の引き下げ(3/4 導入 → 4/7 revert)

UI が固まるほどの長レイテンシ苦情を受け、Claude Code の既定 reasoning effort を highmedium に下げたのが最初の変更。しかしユーザーは速度よりも知性を好むというフィードバックが多数寄せられ、4/7 に revert されました。

現在の既定値は公式に Opus 4.7 = xhigh、それ以外のモデル = high に明示されています(本ブログ #12「Opus 4.7 の破壊的変更」でも触れた値)。

原因 2: セッションキャッシュのバグ(3/26 導入 → 4/10 修正)

「1 時間以上アイドルだったセッションでは古い thinking ブロックをクリアする」最適化が 3/26 に投入されました。しかしバグにより、条件に一致したセッションで以降の全ターンでも毎回 thinking がクリアされ続ける状態に陥り、Claude が以前の推論を保持できず、“forgetful / repetitive” の症状を示しました。

  • 影響モデル: Claude Sonnet 4.6 / Opus 4.6
  • ユーザーへの副作用: 同じ説明を繰り返す、文脈を取り戻すために使用量上限を無駄に消費
  • 修正: 4/10

原因 3: システムプロンプトの語数制限(4/16 導入 → 4/20 revert)

「tool 呼び出しの合間のテキストを 25 words、最終応答を 100 words に抑える」指示を 4/16 に追加(Opus 4.7 のリリースに合わせて投入)。冗長な前置きを減らす意図でしたが、他のプロンプト変更と組み合わさって、Anthropic の社内評価で Opus 4.6 と Opus 4.7 でそれぞれ約 3% のコーディング品質低下が観測されました。

  • 影響モデル(公式に数値が明記): Opus 4.6 / Opus 4.7
  • 修正: 4/20 の Claude Code v2.1.116 で revert

タイムライン

2026-03-04  ─ 原因 1 投入 (effort high → medium)
2026-03-26  ─ 原因 2 投入 (セッションキャッシュ最適化のバグ)
2026-04-07  ─ 原因 1 revert (effort の既定を戻す)
2026-04-10  ─ 原因 2 修正 (キャッシュクリアのバグ fix)
2026-04-16  ─ 原因 3 投入 (語数制限プロンプト追加、Opus 4.7 リリースと同時)
2026-04-20  ─ 原因 3 revert (v2.1.116)
2026-04-23  ─ 公式ポストモーテム公開 + 全サブスクライバの usage limit リセット

ユーザー側で確認すべきこと

  1. Claude Code を v2.1.116 以降に更新
    • 原因 3 の revert を含むバージョン
    • 古いまま残っていると、挙動の一部が旧プロンプトベースのまま
  2. usage limit はリセット済
    • 期間中に原因 2 の影響で消費された分を Anthropic 側で補償
    • 明示的な申請は不要、サブスクライバ全員が対象
  3. ログを振り返って、期間中の出力を信頼しすぎない
    • 特に 3 月下旬〜4 月中旬に Sonnet 4.6 / Opus 4.6 を使った複雑なタスクで、成果物を「なんとなく微妙」と感じていたなら、条件を揃えて再実行してみる価値あり
  4. Claude API を直叩きしていたなら影響なし
    • 自作の Anthropic SDK 経由のコードは、このインシデントの影響対象外
  5. 「Claude が最近調子悪い」という SNS の声
    • 4/10 以前の発言 → 原因 2 を疑う
    • 4/16 〜 4/20 の発言 → 原因 3 を疑う
    • 4/7 以前の「遅いのにボケてる」発言 → 原因 1 + 2 の重なり

Anthropic 側の再発防止策

公式発表で明示された 3 つ:

  1. 評価スイートの拡充
    • システムプロンプト変更時に効果を数値で検証
  2. 段階的ロールアウトの導入
    • 新しいプロンプトや設定変更を一気に 100% 展開しない
  3. 内部 Code Review ツールの改善
    • 今回の原因 2 のようなバグを merge 前に捕まえる仕組みの強化

LLM プロダクト運用の教訓

このインシデントから外部の開発者が拾える学びは、3 点あるように思えます。

  • 複数の品質変数は独立して小さく変更する。3 つの独立変更が重なって初めて顕在化した劣化は、それぞれ単独ではテストで通っていた可能性が高い。同時期に複数の “見えない” 変更を入れると原因の切り分けが爆発的に難しくなる
  • 「短く答えさせる」は思考量そのものを削ることがある。原因 3 はその典型で、出力長の制限はコーディング品質とトレードオフになりうる。本ブログ #12 でも触れた effort / xhigh の存在とあわせて、“短く” より “効率的に長く” を積極的に選ぶ設計のほうが安定しやすい
  • セッションを長く回す最適化はキャッシュの等価性を壊しやすい。「古い情報を消す」最適化は、何が “古い” かの判定を間違えると、必要な情報を捨てる方向に暴走しうる。本ブログ #14「Context Compaction」でも同系統の footgun を扱ったばかりで、セッション永続系の最適化は慎重に評価するのが今の業界の共通認識になりつつある

まとめ

今回のポストモーテムは、自分の観測が気のせいではなかったと確認したい開発者にとっては朗報であり、同時に Anthropic が品質問題を公式に認めて透明性を示すという点で意味のあるアナウンスでした。ユーザー側で必要なのはClaude Code を v2.1.116 以降に更新しておくこと、あとは 4/23 リセット済みの usage 枠の範囲で普段の使い方に戻るだけです。

release notes タグで Anthropic のリリース解説を追っています。次の候補は Programmatic Tool Calling または Memory Tool を予定しています。

参考

記事で登場したコードをひとつの最小リポジトリとしてまとめました。ファイルツリーから切り替えて、全体の構造をそのまま確認できます。

$cat./README.mdmarkdown
# claude-code-quality-postmortem-202604 — 補助資料

[記事本文](https://r43lab.com/blog/claude-code-quality-postmortem-202604) の補助資料です。
このスニペットはコードではなく、**ユーザーが自分の状況を点検するためのチェックリストとタイムライン**を記述ファイルで提供します。

## 含まれるもの

- `TIMELINE.md` — 原因 1 / 2 / 3 の導入・修正日付をカレンダー順に整理
- `USER_CHECKLIST.md` — 読者が自分のアカウント・プロジェクトで確認すべき項目の一覧
- `AFFECTED_MATRIX.md` — 「どのモデル × どの期間」に何の影響があったかを一覧化
- `LESSONS.md` — LLM プロダクト運用側の教訓を再利用できる形で切り出したメモ

すべて Anthropic の公式ポストモーテム
(<https://www.anthropic.com/engineering/april-23-postmortem>) の記述を一次ソースとし、
r43lab 側で日本語の運用視点に翻案したものです。**公式発表の代替ではなく補助**としてご利用ください。
slugclaude-code-quality-postmortem-202604files5click a file in the tree to switch