工作流子代理可单独指定模型

Claude Code 2.1.296 增加环境变量 CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL,让每个工作流代理使用同一个模型,其他子代理仍用各自的模型。说明没有列出哪些代理算工作流,也没有写它会改会话默认模型或 haiku 别名。

工作流子代理可单独指定模型

工作流里派出的代理,有时不该跟临时子任务用同一个模型。CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL 从 Claude Code 2.1.296 加入。设上之后,每一个工作流代理都跑在这一个模型上,其他子代理保持自己的模型。

作者:CodePass 技术编辑

没被点名的子代理不会跟着换

发行说明没有列出工作流代理的名单,也没有写变量为空、或写成无法识别的模型 ID 时会怎样。其他子代理「保持自己的」是这句的后半。你在某个子代理定义里写的模型,不会被这个变量统一覆盖,除非那个子代理属于工作流这一类。判断依据说明没有给。

会话默认模型也不在这句里。2.1.293 把 Anthropic API 上的默认 Haiku 换成 Haiku 5.5,见 默认 Haiku 5.5。那是 Haiku 槽位。CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL 是另一条路由,只作用于工作流代理。两者可以同时存在:Haiku 槽位仍按 293,工作流代理按你设的这个变量。

网关不提供该模型时,这句没有退路

变量的值说明没有约束必须是 Haiku。你若写成网关不提供的 ID,2.1.296 没有写会退回会话模型,还是直接失败。网关后台请求改用 Haiku 4.5,是 2.1.295 的另一条,见 网关后台 Haiku。那条的主语是网关后的后台请求,不是工作流子代理。不要用后台那条去猜这个变量的失败行为。

未导出该变量时,说明没有写工作流代理的模型会变化。升级本身不强制换成某一个新模型。

变量名里的 WORKFLOW 不要理解成「所有子代理」。临时派出去查一个文件的子代理,若不属于工作流,应保持它自己的模型。账单上若突然多出一种模型,对一下是不是只有工作流任务在用这个 ID。说明没有写 /usage 会按工作流单独分列。和其他子代理共用一个模型 ID 时,用量会混在一起,这句没有提供拆分方法。设变量之前,确认该 ID 在你登录的接口上存在。不存在时的报错原文,发行说明没有给。

参考资料