Skip to content

云平台自定义模型名改用精简系统提示词:CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=0 可恢复 ​

通过 Bedrock、Vertex、Foundry 或 Mantle 使用 Claude Code 的团队,很多不会直接写官方模型 ID,而是用自定义部署名或推理配置文件(inference profile)的 ARN。CLI 2.1.312 对这种情况的默认行为做了调整,值得留意。

变化内容 ​

更新说明的意思是:在 Bedrock、Vertex、Foundry 和 Mantle 上,对于 Claude Code 识别不出的模型名,比如自定义部署名和推理配置文件 ARN,即使它们背后实际是 Sonnet 或 Haiku,也会改用较短的系统提示词;设置 CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=0 可以保留完整提示词。

关键在于「识别不出」。Claude Code 是根据模型名来判断模型能力、决定用哪套系统提示词的。像 arn:aws:bedrock:...:application-inference-profile/xxxx 或 my-team-sonnet-prod 这样的名字,客户端没法确定背后是哪个模型,于是现在会保守地使用精简版。

可能带来的影响 ​

完整系统提示词里包含大量关于工具用法、编码规范和工作流程的说明。换成精简版后,一些细节行为可能会有差异,例如:

  • 对工具的使用习惯不如以前「懂规矩」;
  • 输出风格、提交说明等细节和直连 API 时不完全一致。

如果你升级后觉得通过云平台用的 Claude Code「好像变笨了一点」,而你恰好用的是自定义部署名或 ARN,很可能就是这条变化。

如何恢复完整提示词 ​

确认背后确实是 Sonnet、Opus 这类能力完整的模型后,在环境里设置:

bash
export CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=0

也可以写进团队统一下发的 settings 的 env 字段(这是我们的推荐做法,以你们现有的配置管理方式为准)。

同一版本里的相关变化 ​

2.1.312 还把「消息被标记后自动切换模型」的机制扩展到了认不出的模型名上,比如自定义部署名。如果你不希望发生这种自动切换,可以设置 CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK=1 关闭。

建议 ​

  • 能用官方模型 ID 就用官方 ID,客户端能正确识别,行为最可预期。
  • 必须用 ARN 或自定义名时,评估一下是否需要 CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=0,并在测试环境对比两种提示词下的表现。
  • 把这两个环境变量记进云平台部署文档,避免团队成员各自排查。

小结 ​

这条变化只影响云平台上使用非标准模型名的用户,但影响面不小。升级到 2.1.312 后,用自定义部署名的团队最好检查一遍,按需加上 CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=0。

Claude-cn.org,专注于 Claude Code 中文教程