一、起因:从误以为是模型排队说起

使用 AtomCode 处理跨文件重构、全库检索这类长任务时,终端底行常跳出 Divining... 5m2sBrewing... 3m10s 这类陌生提示。不少开发者第一反应会认为是模型排队阻塞,直到注意到终端左下角的 verbose 模式提示:

  • ○ Verbose mode disabled (Ctrl+o to show tool output + reasoning)
  • ○ Verbose mode enabled (tool output + reasoning visible) (Ctrl+o to hide)

实际测试会发现,verbose 模式需要提前打开,中途切换无法回溯已执行的思考过程,而这些看似奇怪的单词,本质是 AtomCode 对模型推理阶段的友好状态提示,和排队阻塞完全无关——如果遇到真正的队列等待,底行会显示 QueuedWaiting for capacity 这类明确标识。

二、代码路径:这些词从哪来?

AtomCode 的 spinner 逻辑集中在 crates/atomcode-tuix 终端渲染模块中,核心链路如下:

1. 词表定义

所有动名词都定义在 crates/atomcode-tuix/src/state.rsTHINKING_LABELS 常量中,是 Claude Code 生态统一的“劳作风”词池,共 20 个词汇,按轮次递进切换,而非随机选取。

2. 词切换逻辑

state.rs 中实现 current_thinking() 方法,每轮 Agent 执行完成后推进一个词汇,确保连续任务的提示词不重复。同时会根据当前执行阶段动态覆盖 spinner 内容:比如工具执行时显示 Running read_file,等待用户确认时显示 Waiting approval,推理阶段则回落到 THINKING_LABELS 中的词汇。

3. 底行拼接逻辑

最终展示的 Divining... 5m2s 格式在 crates/atomcode-tuix/src/event_loop/mod.rsformat_spinner_label 函数中拼接:前半部分是当前 spinner 词汇,后半部分的时长由 crates/atomcode-tuix/src/render/mod.rsfmt_dur 函数格式化,输出 XhYm/YmZs/Zs 格式的剩余预估时间。

4. Verbose 模式控制

Ctrl+O 快捷键的逻辑在事件循环中监听,切换时会控制 AgentEvent::Reasoning 字段的渲染开关:开启时展示工具调用详情、模型推理过程,关闭时仅展示精简的 spinner 提示,降低信息干扰。

三、单词全解析:每个词对应模型的什么行为?

THINKING_LABELS 的词表设计遵循“模型劳作”隐喻,把抽象的推理过程具象化为手工、烹饪、农业类动作,每个词对应明确的模型执行阶段:

初始推理阶段(刚拿到任务)

单词 释义 模型行为 记忆锚点
Pondering 沉思 模型进入深度需求拆解 思绪如池塘涟漪般扩散
Mulling 反复琢磨 对模糊需求逐字拆解 反复咀嚼问题
Cogitating 斟酌 对核心逻辑做严谨推演 思维如齿轮精密运转
Musings 冥想 进入沉浸式推理状态 文艺化的深度思考

信息处理阶段(消化上下文)

单词 释义 模型行为 记忆锚点
Percolating 渗透(咖啡滤煮) 零散思路逐步汇聚 咖啡滤壶点滴产出
Marinating 腌制 充分吸收全库上下文 思路在上下文中浸润
Ruminating 反刍 对已有信息做复盘校验 像牛一样反复消化信息
Fermenting 发酵 复杂逻辑发生质变 思路产生化学级变化

执行调整阶段(试错与微调)

单词 释义 模型行为 记忆锚点
Tinkering 鼓捣 对代码做微调验证 补锅匠敲敲打打
Whittling 削木头 对方案做精细化裁剪 一点点剔除冗余逻辑
Puttering 慢悠悠忙活 低复杂度任务平稳执行 不疾不徐的处理节奏
Simmering 文火慢炖 任务进入收尾打磨 小火慢熬至成熟

产出阶段(结果生成)

单词 释义 模型行为 记忆锚点
Brewing 酿造 复杂任务后台处理 发酵需要时间积累
Concocting 调制 整合多模块信息生成方案 混合多要素产出结果
Hatching 孵化 新解决方案生成 想法破壳而出
Germinating 发芽 初始思路成型 想法破土而出
Scheming 策划 制定多步骤执行计划 系统性规划任务路径

特色风格词

单词 释义 模型行为 记忆锚点
Divining 占卜 从零散线索推导隐藏逻辑 模拟占卜师感知隐藏信息
Noodling 漫弹 试探性验证思路可行性 随性拨弄的松弛感
Churning 搅拌 高频处理多源信息 剧烈的信息混合过程

小结

这些看似晦涩的单词,本质是 AtomCode 对 Claude Code 交互设计的继承:拒绝枯燥的 Loading.../Thinking...,用具象的劳作动作传递“模型正在认真处理任务”的信号。下次再看到 Divining... 的提示,不用再担心是排队阻塞,它只是在帮你“占卜”出最优的代码修改路径而已。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐