重命名一个变量,用不着让智能体思考两分钟;而排查只在生产环境出现的竞态条件,就需要。Verboo Code 的 /effort 正是用来控制这一点:它设定模型在回答前推理多少,可选级别由当前模型自身提供。本指南介绍相关命令、级别保存在哪里,以及为什么有时设置看起来没有生效。
/effort 在 Verboo Code 中做什么?
它决定 CLI 在每次调用时向模型请求的推理级别(effort)。不带参数时,会打开一个选择器,列出当前模型可用的级别:
/effort
这个列表不是固定的。Verboo Code 会读取路由器在 /models 中为每个模型公布的级别,因此某个模型可能只提供 low 和 high,另一个则提供 low、medium 和 high。在选择器中,Enter 确认,Esc 取消。第一个选项始终是 Auto,说明为 "Use the default effort level for your model"。
/effort 支持哪些命令?
共五种写法,全部直接取自 src/commands/effort/effort.tsx:
| 命令 | 作用 |
|---|---|
/effort | 打开选择器,列出当前模型的级别 |
/effort high | 固定级别,并为之后的会话保存 |
/effort current 或 /effort status | 显示当前生效的级别 |
/effort auto 或 /effort unset | 清除已保存的级别,交由模型决定 |
/effort help | 显示用法:/effort [level|auto] |
级别名称不区分大小写:/effort HIGH 与 /effort high 效果相同。固定级别后,CLI 会回复 Set effort level to high:,后面跟着该级别的说明。
不同任务该用哪个级别?
先用自动模式,只有在回答过于浅显时再调高。下表中的说明就是 CLI 在选择器里显示的原文:
| 级别 | CLI 中的说明 | 适用场景 |
|---|---|---|
low | Quick, straightforward implementation with minimal overhead | 重命名、格式化、单行修改、关于代码的简单提问 |
medium | Balanced approach with standard implementation and testing | 小功能、新测试、局部重构 |
high | Comprehensive implementation with extensive testing and documentation | 疑难 bug、跨多个文件的改动、架构设计 |
max | Maximum reasoning for the most complex tasks | high 也解决不了的问题(前提是模型提供该级别) |
推理越多,每次回答就越慢。因此,在大量小改动的会话中适合调低级别,只在难点部分调高,而不是一直开到最高。
级别保存在哪里?
保存在 ~/.verboo/settings.json 的 effortLevel 键中。这是用户级配置文件,对所有项目生效:
{
"effortLevel": "high"
}
如果你用 VERBOO_CONFIG_DIR 指定了其他配置目录,文件就在那里。/effort auto 会删除该键,并回复 Effort level set to auto。
为什么 /effort 看起来没有生效?
几乎总是因为环境变量 CLAUDE_CODE_EFFORT_LEVEL。它的优先级高于会话中的任何选择。当它被设为其他值时,/effort 仍会保存你的选择,但会提示本次会话仍由该变量控制。完整顺序(从强到弱):
| 顺序 | 来源 | 作用范围 |
|---|---|---|
| 1 | CLAUDE_CODE_EFFORT_LEVEL | 所有带该变量启动的进程。auto 或 unset 强制自动 |
| 2 | 会话内的 /effort <级别> | 当前会话,并保存给之后的会话 |
| 3 | --effort <级别> 参数 | 仅限用它启动的会话,不保存 |
| 4 | settings.json 中的 effortLevel | 每次会话启动时加载 |
| 5 | Auto | 路由器为该模型报告的默认值 |
在 shell 中检查并清除该变量:
echo $CLAUDE_CODE_EFFORT_LEVEL
unset CLAUDE_CODE_EFFORT_LEVEL
然后重新打开 CLI,运行 /effort current。自动模式下回复为 Effort level: auto (currently high),括号中是模型的默认级别。固定级别时,回复为 Current effort level: high 加上说明。
切换模型后会怎样?
每次调用前,已保存的级别都会与当前模型核对。如果新模型没有该级别,就使用它的默认值。所以执行 /model 之后,运行 /effort current 看看当前生效的是什么。如果你请求模型不支持的级别,CLI 会拒绝并列出可用级别:
Invalid reasoning level: max. Available for <模型>: low, high, auto
对于不支持推理控制的模型,回复为 Reasoning is not supported for <模型>。示例中的级别名称仅作说明,实际级别以消息为准。
如何在脚本或 CI 中设置 effort?
按次执行时用参数,整个进程则用环境变量:
verboo --effort low -p "根据上一个 tag 以来的提交更新 CHANGELOG"
CLAUDE_CODE_EFFORT_LEVEL=high verboo -p "排查集成测试为什么偶尔失败"
--effort 参数接受 low、medium、high 和 max,其他值会立即被拒绝。它只对本次执行有效,不会修改 settings.json,这正是流水线需要的行为:每个任务声明自己需要的级别。
它和其他命令如何配合?
在 Verboo Code 中 token 不限量,所以调高 /effort 花的是响应时间,而不是账单:在 verboo.ai 创建账号,在仓库中打开 CLI,下次遇到难缠的 bug 时运行 /effort high。



