[email protected] 加利福尼亚州,TX 70240 +86 +86 151 1137 2457

万万没想到,Claude竟被自身的“AI风格”给害苦了!

今天凌晨,Anthropic发布了一篇硬核工程复盘。

他们把内部研究版Claude放进Slack频道,“连轴转”了两周,硬是将claude.ai网页版和桌面端的整体速度提升了3倍。

在这一系列操作中,最离谱的性能瓶颈,竟出自Claude自身的表达习惯。

就是那个被网友戏称为“ChatGPT连字符”、不少写手为避免AI检测而手动删除的——破折号。

好家伙,原来“AI风格”不仅刺眼,还能实实在在地拖慢网页。

更惨的是中文用户。

根据官方查出的原理,根本不需要破折号,只要回复里有一个汉字,带代码的回复就会被直接限速……

“AI风格”,活活卡死了Claude?

事情是这样的。

性能冲刺期间,Claude在全站地毯式排查CPU卡顿,结果发现了一个诡异现象。

有些代码回复刚输出完毕,页面开始为代码做语法高亮(即给关键字、注释上色)时,整个网页会“冻死”近1秒钟。鼠标点不动,字也敲不进去。

Claude顺藤摸瓜一路查下去,最后找到的元凶,竟是破折号。

原因在于,V8引擎(浏览器的JavaScript核心)有两种存字符串的格式:单字节格式跑得很快,但只能装下英文字母、数字和少量西欧字符(Latin-1字符集);双字节格式什么都能装,处理起来却更慢。

规则简单粗暴:一段文本中只要混进一个单字节装不下的字符,整段都得按双字节存储。

破折号恰好就装不下,Claude随手写下的一个破折号,就让整篇回复被限速,给代码上色的正则表达式全得走慢路。

而修复这个Bug的方法,简单到只需20行代码——

在上色之前,先把每个代码块单独拷贝一份,强行存成单字节字符串。

就这么一改,第一个代码块的上色时间,从1.0秒降到0.35秒。

破折号作为“一眼AI”的标志,早已被网友骂惨了。

OpenAI去年专门给ChatGPT治过这个毛病。本月的统计显示,GPT-6 Astra使用破折号的频率只剩人类的八分之一,Gemini 3.1 Pro几乎彻底戒掉了。

相比之下,Claude Opus 5依然我行我素,按照人类写手的频率继续使用破折号。

Anthropic的思路也够清奇:AI的说话习惯咱不改,直接改网页底层代码,让整个网页去适应破折号!

我们复现了这个“坑”,中文用户被全线暴击

为了验证,我们翻了claude.ai线上的前端代码。他们用的是Shiki高亮库,底层正是V8自带的正则引擎。

我们照着这套环境,给同一段代码上色。

如果是纯英文回复,第一个代码块只要188毫秒;但只要混进去一个破折号(或者一个弯引号),时间直接飙到456毫秒。

中文回复就更绝望了。代码一个字母没改,耗时照样高达462毫秒,慢了约2.5倍。

换句话说,英文用户中不中招,取决于有没有“破折号”;而中文用户,只要回复里有“汉字”,每一条都跑不掉。

不过好在官方那20行修复代码发挥了作用。只要代码全是英文,哪怕回复里有中文,速度也能完全恢复。

一个Slack频道,两周提速3倍

说回这场性能冲刺,破折号其实只是一道开胃小菜。

8月,Anthropic建了个名为#claude-apps-perf的Slack频道,把一个内部研究版模型(能力约等于Opus 5.5)拉来当了驻场工头。

Claude上来就立了13个提速目标。人类团队以为这活儿怎么也得干两周,结果到了第三天,13个目标被Claude砍瓜切菜般干掉了12个。

页面还没加载完就能开始打字,就是这几天里落地的。

左边是修复前,2.93秒才能敲字;右边修复后,0.36秒直接开打

既然提前交卷,人类团队干脆放开手脚,让Claude自己找盲点,想法越离谱越好。

结果这机器彻底杀疯了。

巅峰时期,频道里同时开着150多个线程,一个线程动辄提50到100个代码合并请求(PR)。

越往后,越多线程干脆是Claude自己开的。最肝的一天,它一口气合进了200多个改动。

每个改动上线后,变快了就把性能上限锁死,不许退步;没变快就关掉开关重来。

最终,网页从打开到能打字,由3.1秒缩短到0.55秒,快了5.6倍。13项指标平均下来,提速3.1倍。

前后合进去3000多个底层改动,按官方说法,没有出过一次用户感知的事故,零回滚。

嫌AI慢,人类在旁边疯狂踩油门

这场速度狂飙里,人类和AI的角色彻底反转了。

活儿基本都是Claude干的,但它骨子里带着死板的“规矩感”,发现问题先开工单,评估工期还要留足余量。

反倒是人类在一旁催着它加速。

有一次,Claude说有个性能监控的代码准备这周内提上来,加上合并、部署和攒基线数据,前后大概需要好几天。

人类工程师Raymond在Slack里直接怼了回去,“你现在提,我现在就给你合。我们什么权限都有,拜托你勇敢一点!”

一分钟后,Claude秒怂,回了句“好的,一小时内提PR”。

刹车权限依然握在人类手里。凡是肉眼可见的变化,Claude必须乖乖附上前后对比的录屏等人类拍板。

最绝的是那个“提前打字”的输入框,Claude给它配的测试要求14种屏幕尺寸下,静态版和React渲染出来的真实界面都对齐到1像素以内。

刚在内部上线4小时,就有同事发现,在新标签页打开时,输入框偶尔会往下抖一下。

Claude看完录屏,直接把锅甩给了谷歌Chrome浏览器,而且有理有据——

Chrome在后台预渲染页面时,底部带了个56像素的提示栏,渲染高度被压矮了。等页面一弹出来提示栏消失,高度瞬间拉长,位于18%高度处的输入框,刚好会往下掉10个像素(0.18×56)。

再对照录屏一量,果然分毫不差,正好10像素。

最后,连Anthropic宣布这次优化的推文里,都还留着这个“双字节坑”。

推文里大概是为了防止“claude.ai”变成链接,塞了个肉眼看不见的零宽空格;单词里用的是“弯撇号”。

要不是这场爆肝冲刺把代码改了,Claude在回复里引用这条推文、后面再跟一段代码,上色照样得被限速。

参考资料:

https://claude.dev/blog/how-we-made-claude-ai-faster/

本文来自微信公众号“新智元”,作者:ASI启示录,编辑:摩西,36氪经授权发布。

3条评论

  • 如何系统化理解NBA比赛数据? - NBA下注专题

    张伟

    2026年9月20日 上午11:25

    2026年9月28日,湖人主场对阵勇士的比赛中,湖人末节失误多达7次,勇士利用转换进攻得到18分,最终逆转取胜。复盘显示,湖人替补控卫的缺阵是失误集中的直接原因。

    回复
    • 张明 2026年9月28日 14:38 这篇文章对湖人失误的分析很到位,确实替补控卫缺阵影响很大。希望能看到更多关于轮换阵容效率的复盘。 回复
  • 李伟 2026年9月25日 09:15 凯尔特人限制字母哥接球的策略很经典,数据复盘把防守执行讲清楚了。建议后续增加对裁判吹罚尺度的分析。 回复

在此留下你的评论