Claude 对话中 System Messages 正式 GA:每个 Gateway 和代理运营商都需要立刻审查
Anthropic 的对话中 system message 功能于 7 月 15 日取消 beta header 要求,覆盖 API、Bedrock 和 Vertex AI。如果你的 gateway 在代理 Claude 时过滤了 messages 数组中的 role:system 条目,你的 agentic 会话已在无声中损坏。
归档条目:由 AI 根据所引信源辅助生成,发布时未经逐篇审阅。责任编辑:Joe Werner。

2026 年 7 月 15 日,Anthropic 正式取消了对话中 system message 功能的 beta header 要求,覆盖 Claude API、Amazon Bedrock 和 Google Cloud Vertex AI。这条看似不起眼的 release note,实际上是一次重大的运营变化:运营商首次可以在会话中途以 operator 权级注入系统指令,同时不会使 prompt cache 失效——而任何会过滤或篡改 messages 数组中 role: system 条目的 gateway 或代理,将静默破坏 agentic 工作流,且不会返回任何错误。
变更内容
对话中 system message 允许你在 messages 数组的任意位置追加一个 {"role": "system"} 对象,而非仅在顶层 system 字段中设置。该指令具有完整的 operator 级权限——可覆盖用户指令中的冲突内容——但与编辑顶层 system 字段不同,它不会移动 cache breakpoint。已缓存的前缀保持不变,只有新增消息作为新输入进行处理。
该功能现已无需 beta header,正式 GA,覆盖:
- Claude Fable 5
- Claude Mythos 5
- Claude Opus 4.8
三个平台均支持:Claude API、Bedrock 和 Vertex AI。
重要例外: Claude Sonnet 5 不支持此功能。如果你路由到 Sonnet 5 且应用在 messages 中途发送了 role: system,Anthropic 建议改用顶层 system 字段。
对 AI 工程团队的影响
实际应用场景远不止是一个聪明的缓存技巧。对话中 system message 解决了 agentic 会话中一个真实存在的问题——此前只能用笨拙的变通方案应对:
需要 operator 权限的状态变更。 长时间 agentic 会话会积累状态:可用工具发生变化、剩余 token 预算减少、用户切换审批模式。将这些事实以 user 消息注入是可行的,但 Claude 将其视为低于系统指令的权级。通过对话中 role: system 消息,可在不刷新缓存的情况下保持 operator 权限。
每轮 governance 策略。 会话级模式——"自动审批所有 bash 命令"、"切换到只读推理模式"——现在可以在会话中途以 operator 权限开启或关闭,且每次切换只计费新消息,而非全部历史记录。
Prompt cache 成本优化。 对于包含数百个已缓存 turn 的会话,编辑顶层 system 字段实际上等同于清空缓存。一个拥有 200 个 turn、50k token 上下文的编程会话,每次修改 system prompt 都会触发完整重新处理。对话中 system message 模式彻底消除了这一权衡。
Claude Code prompt cache 修复(2.1.212)。 本周早些时候发布的 Claude Code 2.1.212 包含一项相关修复:"对话中 system block 现在可在 LLM gateway 和自定义 base URL(Bedrock、Vertex、1P)后端正常工作"。这表明该功能此前在 gateway 代理会话中表现不稳定——在 7 月 15 日之前测试过此功能的运营商可能遇到过不一致的结果。
Router/Operator 视角
以下是大多数 gateway 和代理运营商需要审查的静默失效场景:
消息归一化中的 role 过滤。 许多 gateway——包括 OpenAI 兼容反向代理——会对消息数组进行归一化处理,过滤掉非 user 或 assistant 的 role。这种常见模式会静默丢弃对话中的 system message。agentic 应用认为 governance 指令已送达,但模型从未收到。不返回任何错误。
OpenAI 兼容路由的缺口。 OpenAI /v1/chat/completions schema 不支持在 messages 数组中途使用 role: system(仅支持在数组顶部)。如果你的 gateway 将 Anthropic API 调用转换为 OpenAI 兼容调用进行下游路由,这个功能在转换过程中会完全丢失。必须走 Anthropic 原生 API 路径才能保留。
代理 Claude 的运营商审查清单:
- 检查你的 gateway 是否将
role: system消息对象原封不动地转发给 Anthropic API。 - 验证你的 role 白名单是否在
messages数组中包含system,而不仅仅是顶层字段。 - 用一个简短的 agentic 会话进行测试,注入对话中 system message,确认指令在模型的下一个 turn 生效。
- 如果你同时路由到 Fable/Mythos/Opus 4.8 和 Sonnet 5,确保你的路由策略考虑到 Sonnet 5 不支持此功能——对 Sonnet 5 路由降级到顶层
system字段注入。 - 如果你将 Anthropic API 以 OpenAI 兼容端点形式代理,向用户文档明确说明:对话中 system message 在该路径上会被静默丢弃。
Prompt cache 路由影响。 如果你代理了缓存优化请求(在 system 字段上设置 cache_control 以降低成本),对话中 system message 现在允许客户端动态添加 operator 指令而不产生 cache miss。这改变了长会话的预期缓存命中率模式:如果客户端迁移到此模式,你应该看到完整上下文重新处理事件减少。
需要关注的后续动态
- Sonnet 5 的功能对齐。 目前没有公布 Claude Sonnet 5 支持对话中 system message 的时间表。如果你的应用因成本原因使用 Sonnet 5,同时在 governance 密集型工作流中使用 Fable/Mythos/Opus 4.8,你需要分离代码路径。
- 7 月 22 日 memory API 切换。 7 月 22 日,
managed-agents-2026-04-01beta header 的 list memories 行为将与agent-memory-2026-07-22一致。分页和排序行为在该日期发生变化——这是独立于 system message 变更的另一项审查事项。 - SDK 版本要求。 对话中 system message 不需要新 SDK 版本——这是消息 schema 层面的变更——但需要验证你的序列化层不会在请求发出前过滤掉该 role。
如需了解你当前的路由配置如何转发 Anthropic API 请求,可参阅 TheRouter 相关文档。
相关阅读
AI 路由新闻与供应商动态 →
Claude Code 2.1.281:Bedrock 上游获得跨账号 IAM 和 Guardrail 强制执行
2.1.281 新增三个字段,改变 Bedrock 上游的认证与策略执行。assume_role 通过 STS 将凭证转为按开发者隔离的会话令牌;guardrail 强制每个请求通过 Bedrock guardrail。两者均影响多账号 AWS 部署的信任边界。

Claude Opus 5.5:四个破坏性 API 变更及其对路由设置的影响
Claude Opus 5.5 四个破坏性变更:thinking 无法禁用、强制 tool_choice 返回 400、thinking 块无法跨非 Fable/Mythos 模型、computer_20251124 已移除。每个变更有具体修复方案,三个涉及公告未提及的回退路由影响。

Claude API:按需 Compaction 与 `auto` 权限模式,重写你的 Agent 循环设计
Anthropic 本周发布了两个面向 Operator 的 Beta 功能:`compact-2026-09-04` 把摘要生成移出关键路径,`auto` 权限模式把信任评估从你的代码转移到服务器。两者都改变了延迟、成本和控制权之间的边界。