- Anthropic vừa công bố post-mortem giải mã đợt giảm chất lượng kéo dài gần 2 tháng của Claude Code.
- Thủ phạm không phải model: 3 thay đổi ở lớp harness và system prompt — reasoning effort bị hạ ngầm, một bug cache xoá thinking mỗi turn, và một dòng nhắc 'trả lời ≤25 từ' khiến eval coding rớt 3%.
- Tất cả đã fix, usage limit đã reset cho toàn bộ subscriber.
TL;DR
Ngày 23/04/2026, Anthropic công bố post-mortem chính thức cho gần 7 tuần Claude Code bị user kêu là 'ngu đi'. Kết luận: model không thay đổi. Ba thay đổi tách biệt ở lớp product/harness mới là thủ phạm — và cả ba đều đã được revert tính tới v2.1.116 (20/04). Anthropic cũng reset usage limit cho tất cả subscriber kể từ 23/04 và cam kết quy trình mới trước khi đụng vào harness lần sau.

Có gì mới
Suốt tháng 3 và nửa đầu tháng 4, X, Reddit và HN ngập post tố Claude Code 'bị nerf', 'quên context', 'lười suy nghĩ'. Anthropic im lặng khá lâu, đủ để thuyết âm mưu 'họ bóp capacity để tiết kiệm GPU' lan rộng. Post-mortem 23/04 đập tan thuyết đó: API thuần không hề bị ảnh hưởng, chỉ có lớp wrapping của Claude Code, Agent SDK và Cowork dính bug.
Vì sao quan trọng
Đây là một trong những post-mortem minh bạch nhất từ một frontier lab — kèm version number, kèm % impact, kèm timeline ngày-fix. Như Simon Willison nhận định: "Nếu bạn đang xây agentic system thì nên đọc kỹ — các loại bug ảnh hưởng harness rất phức tạp." Bài học lớn: với agent coding, harness và system prompt có ảnh hưởng quality ngang ngửa model weights. Một dòng 'trả lời ≤25 từ' đủ kéo eval xuống 3%.
Ba con bug — chi tiết kỹ thuật
Bug #1 — Reasoning effort tụt ngầm (04/03 → 07/04)
Để fix tình trạng UI freeze do extended thinking quá lâu, Anthropic hạ default reasoning effort từ high xuống medium cho Sonnet 4.6 và Opus 4.6. Đa số user không bao giờ chỉnh setting này, nên ăn nguyên regression suốt một tháng. Đã revert: Opus 4.7 đặt xhigh, các model khác về high.
Bug #2 — Thinking-cache xoá mỗi turn (26/03 → 10/04, v2.1.101)
API header mới clear_thinking_20251015 với keep:1 được thiết kế để prune reasoning blocks cũ một lần sau khi session idle >1 giờ. Bug: nó kích hoạt mỗi turn cho hết session. Triệu chứng: Claude quên context, lặp ý, chọn tool kỳ quặc, rate limit tụt nhanh do cache miss liên tục. Đây là bug khó detect nhất vì các code change song song che khuất nó trong test.
Bug #3 — System prompt 'nói ngắn' giết coding eval (16/04 → 20/04, v2.1.116)
Anthropic thêm vào system prompt: giữ text giữa các tool call ≤25 từ, response cuối ≤100 từ. Kết quả đo: −3% trên coding evaluation với cả Opus 4.6 và 4.7. Một dòng prompt — 3 điểm phần trăm bay.
Ba bug này đến từ ba ý định hoàn toàn hợp lý: fix UI freeze, prune cache session idle, ép response gọn để tiết kiệm token. Mỗi thay đổi nhìn riêng đều là tối ưu UX hoặc cost. Vấn đề nằm ở chỗ chưa có ablation per-model trước khi ship — và Anthropic công khai thừa nhận đó là khoảng trống quy trình họ đang lấp.
Sản phẩm nào dính, sản phẩm nào không
| Sản phẩm | Bị ảnh hưởng | Bug nào |
|---|---|---|
| Claude Code CLI | Có | 1, 2, 3 |
| Claude Agent SDK | Có | 1, 2, 3 |
| Claude Cowork | Có | 1, 2, 3 |
| Claude API (raw) | Không | — |
| Sonnet 4.6 / Opus 4.6 (qua harness) | Có | 1, 2, 3 |
| Opus 4.7 (qua harness) | Có | 3 (verbosity) |
Ai bị đau nhất
- Power user session dài — Bug #2 cào nặng nhất. Simon Willison nói anh duy trì 11 session dormant, resume nhiều hơn start mới, nên ăn full impact.
- Đội chạy production trên Agent SDK / Cowork — không phải chỉ CLI dính, toàn bộ tầng wrapping đều dính.
- User không bao giờ đụng setting reasoning effort — Bug #1 ăn ngầm 1 tháng.
- Workflow code-heavy giữa tháng 4 — Bug #3 lấy mất 3% chất lượng đúng khoảng cuối sprint.
Khắc phục & cam kết quy trình
- Reset usage limit cho toàn bộ subscriber từ 23/04/2026.
- Bắt buộc nhiều nhân viên Anthropic dùng đúng public build (không phải internal-only) để gặp bug như user.
- Mọi thay đổi system prompt phải qua per-model evaluation + ablation study, không còn ship-and-pray.
- Tradeoff về intelligence (như đổi reasoning effort) bắt buộc có soak period và gradual rollout.
- Tool Code Review nội bộ mới chạy Opus 4.7 với multi-repo context để bắt class bug này.
- Tài khoản X mới @ClaudeDevs làm kênh comm chính thức.
Timeline gọn & hướng tới
- 04/03: Bug #1 ship
- 26/03: Bug #2 ship
- 07/04: Bug #1 revert
- 10/04 (v2.1.101): Bug #2 fix
- 16/04: Bug #3 ship
- 20/04 (v2.1.116): Bug #3 revert — sạch cả ba
- 23/04: Post-mortem public + reset limit
Bài học rút ra: với coding agent, đừng nghĩ chất lượng chỉ phụ thuộc model. Lớp harness, system prompt, cache strategy là hạ tầng thật — và bug ở đó nhìn giống y hệt 'model nerf'.
Nguồn: Anthropic Engineering, Simon Willison, VentureBeat, Implicator.


