前言
最近在开发者社群和私信里,不少用 Claude Code 做日常开发、工程重构的朋友都在问同一个问题:运行过程中总弹出 Churned、Stewing、Brewed 这类看不懂的状态词,紧跟着程序就长时间卡住不动,分不清是正常推理还是出了故障。
刚好我自己这段时间深度用 Claude Code 处理了几个中大型项目的代码重构与测试脚本开发,踩了不少卡顿的坑,也把这些五花八门的状态标识摸得明明白白。今天就从实际使用角度,一次性把这件事讲透,帮大家以后遇到同类问题不用瞎猜。
一、先澄清:这些"奇怪单词"根本不是报错
很多人第一反应以为这是错误码,其实完全不是。你看到的 Churned / Stewing / Working / Crunched / Brewed 这类文案,官方叫 Spinner Verb(加载状态动词) ,本质是前端UI做的人性化趣味占位提示,后缀的 for time XXX 仅代表该状态已经持续了多少秒,没有任何故障语义。
先纠正两个大家常写错的拼写:
- 大家写的
Stuaed是视觉笔误,标准词是 Stewing Work完整标准形态是 Working
常见状态词对应实际行为
我结合实际使用场景和社区逆向的源码信息,整理了这几个高频词的真实含义:
- Churned(Churning):高密度批量运算、大段文本/代码反复梳理、上下文窗口滚动压缩。一般项目文件多、对话历史长的时候最容易出现。
- Stewing:深度慢推理状态,一般出现在复杂逻辑推演、长链路方案构思、多模块架构设计这类重思考任务中。
- Working:最通用的正常执行状态,对应文件读写、终端命令执行、常规代码修改这类基础任务。
- Crunched(Crunching):数值计算、正则批量解析、大文件语法校验、代码编译类任务的状态。
- Brewed(Brewing):方案酝酿状态,一般是模型在做代码结构设计、多方案对比、长输出内容预组织。
二、为什么会卡住?状态词本身不背锅
先说结论:这些状态词不会导致卡顿,长时间停在某一个状态,本质是底层任务阻塞了,只是UI一直显示当前的占位文案而已。
结合我自己踩过的坑,常见的卡顿原因有这几类:
- 上下文过载 :一次性导入整个工程、对话历史太长,模型频繁做上下文压缩,
Churned状态会反复出现,严重时直接假死。 - 重型计算任务阻塞 :批量解析上百个文件、全项目构建、复杂算法生成,都会让
Crunched/Stewing长时间挂着。 - 工具调用超时卡死:bash 命令死循环、第三方脚本无返回、网络请求超时,Agent 会一直等工具响应,表层状态就停住不动。
- 云端服务限流/拥堵:Anthropic 服务端负载高的时候,推理请求排队,前端就会一直停在某个状态不更新。
- 本地资源不足:编辑器内存不够、磁盘IO慢,文件扫描和读写卡顿,也会传导到前端状态不刷新。
- Agent 迭代死循环:最常见的坑------模型反复读文件→改代码→运行→报错→回滚重读,陷入无限自我修正的死循环。
亲测有效的快速排障方法
遇到卡顿不用盯着状态词猜,按下面的步骤排查,基本都能定位问题:
- 优先执行
/restart命令重启会话,清空冗余上下文,80%的偶发卡顿都能解决; - 拆分超大任务,不要一次性让它重构整个工程、生成全量代码,拆成模块分步处理;
- 用
/verify命令分步校验代码,替代全自动一次性构建,减少死循环概率; - 开启调试模式查看底层真实日志,这是最准的排查方式:
bash
claude --debug
- 限制单次读取的文件大小和数量,避免一次性加载上万行源码撑爆上下文。
三、拓展:还有哪些常见的Spinner状态标识?
这类状态词其实是源码里硬编码的一个大数组,随机轮播展示,总数有上百个。我按语义分成了四大类,大家遇到了不用慌,本质都是一个作用:告诉你"我还在运行,没死机"。
1. 烹饪熬煮隐喻类(最常用,你遇到的都在这组)
这是Anthropic最喜欢的隐喻体系,把模型推理比作做菜: Brewing、Baking、Stewing、Simmering、Marinating、Blanching、Whisking、Churning、Sizzling、Poaching、Roasting、Melting
2. 思考推理类正经标识
偏正式的语义,对应模型的思考、分析环节: Thinking、Cogitating、Ruminating、Focusing、Analyzing、Architecting、Evaluating、Reasoning、Synthesizing、Unravelling、Mapping、Drafting
3. 运算执行加工类
对应任务执行、数据处理环节: Crunching、Processing、Working、Actioning、Executing、Parsing、Compiling、Indexing、Sorting、Translating、Beaming(网络传输)
4. 趣味彩蛋玩梗标识
纯UI整活,没有任何特殊业务含义,就是程序员的恶趣味: Clauding、Beboppin'、Booping、Flibbertigibbeting、Wibbling、Billowing、Bloviating、Smooshing、Honking
四、官方文档里能查到这些标识吗?
直接给结论:查不到。
Anthropic 的官方正式文档(code.claude.com、platform.claude.com)里,完全没有这份 Spinner 动词清单。官方文档只会记录标准化的内容:
- 工具执行错误码(如
execution_time_exceeded、container_expired、unavailable等) - 状态栏配置、SDK 调用规范、Agent 状态机参数
- 模型参数、权限配置、API 调用约束
说白了,这些俏皮的状态动词属于前端UI的内部彩蛋,不属于标准化的API规范,自然不会出现在官方文档里。
别搞混:两套完全不同的状态体系
很多人会把 Spinner 文案和真实错误码搞混,我整理了一张对照表帮大家区分:
| 体系分类 | 归属层级 | 是否有官方文档 | 核心作用 |
|---|---|---|---|
| Spinner俏皮动词(Brewed/Churned等) | 前端UI展示层 | 无 | 人性化等待提示,无故障判定意义 |
| Agent/工具标准状态码(execution_time_exceeded等) | 后端执行逻辑层 | 完整官方文档 | 标记真实故障、超时、容器异常 |
五、最后说句实在话
做技术的人总喜欢盯着每个标识抠含义,但在这件事上真的没必要。
这些花里胡哨的状态词,本质就是Anthropic的前端工程师做的小趣味,既不是报错信号,也不能帮你定位卡顿原因。真遇到长时间卡住的情况,别盯着单词瞎猜,直接开 --debug 看底层日志,命令超时、文件权限、token超限、网络失败......所有真实原因都会写在日志里。
希望这篇文章能帮大家少走点弯路,以后再看到这些奇奇怪怪的单词,心里有数就好。