Anthropic 对近期 Claude Code 质量投诉做了复盘。结论很直接:用户不是错觉,过去两个月确实有问题影响了 Claude Code 的输出质量。

但锅不能粗暴扣到 Claude 模型头上。Anthropic 在复盘中把原因指向 Claude Code harness 的三个独立问题,也就是包在模型外面的产品与工程层。原始复盘见 Anthropic 的《An update on recent Claude Code quality reports》:https://www.anthropic.com/engineering/april-23-postmortem。

最值得注意的是 3 月 26 日那次变更。Anthropic 为了降低闲置超过一小时的会话恢复延迟,上线了清理旧 thinking 的逻辑。设计上只该清一次,bug 却让它在后续每一轮都继续清理。结果是 Claude 在长会话、闲置恢复后的任务里显得健忘、重复。复杂代码任务最容易被放大。

发生了什么:模型没被点名,harness 被点名

Claude Code 不是裸模型聊天框。它要维护会话,调用工具,读写代码,处理上下文,还要把模型输出接到真实工程流程里。

这个外层系统,Anthropic 称为 harness。复盘里说,三个独立 harness 问题直接影响了用户。材料没有给出这三个问题的完整细节,所以不能硬编成“三宗罪”。目前能确定的,是其中一个闲置会话 bug 已经足够严重。

关键信息目前能确认的事实对用户的影响
质量投诉过去两个月投诉有事实基础不是用户集体误判
归因对象Anthropic 指向 Claude Code harness 的三个独立问题不应解读为 Claude 模型整体退化
典型 bug3 月 26 日变更清理闲置会话旧 thinking,结果每轮都持续清理长会话恢复后容易健忘、重复
高风险场景闲置一小时以上、跨天会话、复杂代码任务重度用户更容易踩坑
证据限制原材料只披露了其中一个具体案例不能推断所有 Claude Code 用户同等受影响

这里的边界很重要。没有证据显示 Claude 模型参数缩水、能力退步,也没有证据支持 Anthropic 故意降级。能说的是:最终产品质量掉了,原因在模型外层系统。

用户不关心这层区别,但工程团队必须关心。因为修模型和修 harness,是两套问题。

谁最受影响:长会话用户,不是随手问两句的人

Simon Willison 的使用方式很典型。他说自己经常把 Claude Code 会话闲置一小时、一天,甚至更久再回来。按他当时用 ps aux | grep 'claude ' 看到的情况,还有 11 个这类会话在跑,而且刚关闭过更多。

他还估计,自己花在 stale sessions 里的提示时间,比新开的会话还多。

这不是行业统计。它只是一个重度用户样本。但它解释了为什么这个 bug 会刺痛真正依赖 Claude Code 的人。

开发者不会每次都从干净窗口开始。一个迁移、一个重构、一个线上 bug,常常会跨过午饭、会议、下班,甚至隔夜。代理如果在恢复后丢掉关键上下文,损失的不是一条回答,而是任务连续性。

对两类人,动作很具体:

  • AI 编程工具重度用户.复杂任务别只押在一个闲置会话里。把目标、关键文件、当前假设、未完成步骤写到 issue、README、临时笔记或 commit message 里。
  • 正在采购或评估 coding agent 的团队:不要只看模型榜单和演示视频。要把长会话、闲置恢复、上下文裁剪、重复调用放进试用测试。

如果团队正在把 Claude Code 或同类工具接进日常开发流,短期内更稳的做法不是立刻迁移全部流程,而是先限定任务边界。让它处理可回滚、可审查、上下文明确的任务。核心链路先观望。

真问题:代理系统的事故高发区,正在转到模型外面

很多人谈 coding agent,开口就是模型能力、上下文长度、benchmark 分数。这些当然重要。但 Claude Code 这次更像是在提醒大家:产品外壳已经成了新的质量瓶颈。

harness 管的东西很杂:

  • 会话状态怎么保存;
  • 旧上下文怎么裁剪;
  • thinking 或中间状态怎么处理;
  • 工具调用失败后怎么重试;
  • 文件读写权限怎么约束;
  • 用户隔天回来时,系统如何恢复现场。

这些都不性感。也不适合放进发布会。但它们坏一次,用户看到的就是“模型变笨了”。

这有点像早期铁路。蒸汽机决定能不能跑,信号、调度、道岔决定会不会出事。类比不完全一样,但结构相似:技术进入生产系统后,事故常常不发生在最耀眼的部件上,而发生在连接部件的规则里。

古话说,“千里之堤,溃于蚁穴”。放到 agentic systems 里,蚁穴就是会话恢复、状态清理、上下文裁剪这些小逻辑。它们单独看像优化,连到长链路任务里就是风险。

我不太买账一种省事说法:用户说变差,就是模型退步;厂商解释 harness,就是用户误会。更准确的读法是:模型没有直接背锅,但产品质量确实失败了。

对用户来说,系统就是系统。昨天能接住的活,今天接不住,这就是质量下降。至于错在模型、harness、缓存还是恢复逻辑,那是厂商内部工程账。

接下来最该观察三件事:

  1. Anthropic 是否公开更多 harness 层面的回归测试思路尤其是长会话和闲置恢复测试。
  2. Claude Code 是否能让用户更清楚地看到会话上下文如何被保留、清理或压缩。
  3. 同类 coding agent 会不会把“状态可靠性”做成卖点而不是继续只晒模型分数。

这里也有现实限制。外层系统越像代理,状态越长,工具越多,测试空间就越爆炸。即使不谈模型非确定性,harness 自己也已经足够复杂。

所以这次复盘的价值,不在于证明 Claude 没变笨。它更像一次行业提醒:agentic systems 不是套个大模型就完事。真正难的,是让一个不稳定的智能组件,在真实软件工程里稳定工作。