什么是 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-high、x_high、extra-high、extra high、extra_high 都映射到 xhigh;highest 和 max 映射到 high。
不同模型提供商的差异
这里有个坑要注意——不是所有模型都支持全部级别:
- Anthropic Claude 4.6 系列:默认就是
adaptive,不设的话自动走自适应模式,体验最好。 - Z.AI(
zai/*):只支持开/关两档,任何非off的级别都当on处理,映射到low。 - Moonshot(
moonshot/*):/think off映射为thinking: { type: "disabled" },其他级别映射为thinking: { type: "enabled" }。开启思考后,Moonshot 只接受tool_choice为auto或none,OpenClaw 会自动把不兼容的值转成auto。
优先级规则
当你在多个地方都设了 thinking level,OpenClaw 按这个顺序决定最终生效的配置:
- 消息内联指令 — 只对当前这条消息生效,优先级最高
- 会话级覆盖 — 发送一条只包含指令的消息来设置,整个会话生效
- 全局默认值 — 在配置中设置
agents.defaults.thinkingDefault - 兜底策略 — Anthropic Claude 4.6 模型用
adaptive,其他支持推理的模型用low,不支持的直接off
实际怎么用
回到最开始那个上下文窗口爆掉的问题。如果你跑的是长对话或者复杂的 Agent 工作流,模型的 thinking token 可能占掉大量上下文空间。这时候把 thinking level 调低,比如设成 minimal 或 low,能有效缓解这个问题。
最简单的做法是在消息前面加一句 /t low,或者干脆在配置里设个全局默认值,省得每次都手动指定。对于不需要深度推理的日常任务,low 或 minimal 完全够用;只有在真正需要模型深度思考的场景(比如复杂代码重构、多步推理),再拉到 high。
说实话,这种按需调节思考深度的设计挺实用的。一人公司搭 Agent 工作流,token 就是成本,能省则省。建议把 adaptive 作为日常默认,遇到上下文超限再手动降级,这样既保证质量又不浪费预算。