什么是 Thinking Levels

Thinking Levels 是 OpenClaw 的内置工具,允许你通过指令控制模型在每次推理时投入多少"思考预算"。你可以在消息中直接插入指令,格式很灵活:/t <level>/think:<level> 或者 /thinking <level> 都行。

支持的级别和对应的效果:

  • off — 关闭思考
  • minimal — 对应 "think",最低限度思考
  • low — 对应 "think hard"
  • medium — 对应 "think harder"
  • high — 对应 "ultrathink",最大预算
  • xhigh — 对应 "ultrathink+",仅限 GPT-5.2 和 Codex 模型
  • adaptive — 由模型提供商自动管理推理预算,Anthropic Claude 4.6 系列支持

别名方面也很宽松,x-highx_highextra-highextra highextra_high 都映射到 xhighhighestmax 映射到 high

不同模型提供商的差异

这里有个坑要注意——不是所有模型都支持全部级别:

  • Anthropic Claude 4.6 系列:默认就是 adaptive,不设的话自动走自适应模式,体验最好。
  • Z.AI(zai/*:只支持开/关两档,任何非 off 的级别都当 on 处理,映射到 low
  • Moonshot(moonshot/*/think off 映射为 thinking: { type: "disabled" },其他级别映射为 thinking: { type: "enabled" }。开启思考后,Moonshot 只接受 tool_choiceautonone,OpenClaw 会自动把不兼容的值转成 auto

优先级规则

当你在多个地方都设了 thinking level,OpenClaw 按这个顺序决定最终生效的配置:

  1. 消息内联指令 — 只对当前这条消息生效,优先级最高
  2. 会话级覆盖 — 发送一条只包含指令的消息来设置,整个会话生效
  3. 全局默认值 — 在配置中设置 agents.defaults.thinkingDefault
  4. 兜底策略 — Anthropic Claude 4.6 模型用 adaptive,其他支持推理的模型用 low,不支持的直接 off

实际怎么用

回到最开始那个上下文窗口爆掉的问题。如果你跑的是长对话或者复杂的 Agent 工作流,模型的 thinking token 可能占掉大量上下文空间。这时候把 thinking level 调低,比如设成 minimallow,能有效缓解这个问题。

最简单的做法是在消息前面加一句 /t low,或者干脆在配置里设个全局默认值,省得每次都手动指定。对于不需要深度推理的日常任务,lowminimal 完全够用;只有在真正需要模型深度思考的场景(比如复杂代码重构、多步推理),再拉到 high

说实话,这种按需调节思考深度的设计挺实用的。一人公司搭 Agent 工作流,token 就是成本,能省则省。建议把 adaptive 作为日常默认,遇到上下文超限再手动降级,这样既保证质量又不浪费预算。