子代理单独定努力程度:2.1.316 新增 CLAUDE_CODE_SUBAGENT_EFFORT
Claude Code 的努力程度(effort)决定了模型在回答前愿意花多少思考预算。主会话开高 effort 处理复杂问题很合理,但它派出去的子代理往往只是做搜索、读文件、跑检查这类活儿,跟着主会话一起「深思熟虑」,既慢又费额度。CLI 2.1.316 为此加了一个新开关。
新变量做什么
更新说明的原话大意是:新增 CLAUDE_CODE_SUBAGENT_EFFORT,用来设定子代理在没有其他地方指定 effort 时所使用的努力程度,而不是继承主会话的。
关键在「没有其他地方指定时」这个前提:
- 如果某个子代理的定义里已经写明了 effort,以它为准;
- 只有那些没有显式指定的子代理,才会用这个变量的值;
- 不设置这个变量,行为和以前一样,继续继承主会话。
怎么用
在启动 Claude Code 之前设置环境变量即可,例如:
bash
export CLAUDE_CODE_SUBAGENT_EFFORT=low
claude取值应与 Claude Code 现有的 effort 档位一致(如 low、medium、high 等);具体可用档位以你所用模型和版本为准,上面的 low 只是示例。
适合哪些场景
- 主会话高、子代理低:主线程用高 effort 做架构判断,子代理用低 effort 快速完成检索和机械性改动;
- 控制用量:并行派出多个子代理时,effort 叠加起来很可观,统一压低一档能明显节省额度;
- 团队统一默认值:把变量写进团队的启动脚本或开发环境配置里,大家的子代理表现更一致。
反过来,如果你的子代理承担的是代码审查、方案设计这类需要推理的工作,就别一刀切地调低,最好在那个子代理的定义里单独写上更高的 effort。
小结
CLAUDE_CODE_SUBAGENT_EFFORT 让「主会话想得深、子代理跑得快」变得很容易配置。它只填补没有显式指定的空缺,不会覆盖你已经写好的子代理设置,可以放心试用。