教程

Claude Mid-conversation System Messages 使用指南:长会话不再破坏 Prompt Cache

Claude Opus 4.8 新增 mid-conversation system messages,可在长会话中途追加系统级指令,不改顶层 system prompt,从而保持缓存 prefix 命中,降低 Agent 循环成本。

2026/6/63分钟 阅读ClaudeEagle

Claude Opus 4.8 新增了一个对 Agent 应用非常关键的能力:mid-conversation system messages。开发者可以在 messages 数组中途追加 role: "system",用系统级优先级更新指令,同时不破坏已有 prompt cache。


以前的问题

传统 Claude API 中,系统指令通常放在顶层 system 字段。

这对 prompt caching 很友好,因为系统提示位于稳定 prefix 前部。但问题是:如果长会话运行到一半,你需要增加新的系统级约束,就必须修改顶层 system

一旦顶层 system 发生变化,缓存 prefix 的 hash 会改变,之前几十轮对话和工具 schema 可能全部 cache miss。


新能力:在 messages 中插入 system 角色

Opus 4.8 允许这样写:

json
{
  "model": "claude-opus-4-8",
  "system": "You are a code review assistant.",
  "messages": [
    {"role": "user", "content": "Review utils.py"},
    {"role": "assistant", "content": "..."},
    {"role": "user", "content": "Now review callers"},
    {
      "role": "system",
      "content": "From now on, every suggestion must include explicit type annotations."
    }
  ]
}

这个 system message 从当前位置开始生效。它比普通 user message 优先级更高,适合应用开发者注入 operator-level 事实和约束。


为什么它能保住 Prompt Cache?

Prompt cache 要求请求 prefix 字节级一致。Claude 的缓存顺序包括:

  1. tools
  2. system
  3. messages

如果修改顶层 system,最前面的 prefix 变了,缓存很容易失效。

mid-conversation system message 是追加在历史末尾,前面的 tools、system 和旧 messages 保持不变,因此已有 cache entry 仍然可以命中。


适合使用的场景

  • 长程代码 Agent 中途切换工程规范
  • 用户打开/关闭某种工作模式
  • 工具可用性发生变化
  • 应用检测到 token budget 降低
  • 文件系统状态变化,需要作为系统级事实注入
  • Agent loop 正在执行时,需要把用户新输入折叠进当前任务

关键判断:如果这条信息来自应用/operator,而不是最终用户,就应该考虑 system role。


优先级规则

官方说明:

  • 顶层 system 仍适合放全局稳定指令
  • mid-conversation system messages 适合后续才出现的规则
  • 后出现的 system message 会覆盖前面冲突的 system 指令
  • 它比普通 user message 具有更高优先级

因此不要把用户原话随意提升成 system。只有应用层事实、权限、模式、策略变化才应该用 system。


可用性限制

当前限制:

  • 仅 Claude Opus 4.8
  • 支持 Claude API 和 Claude Platform on AWS
  • 不支持 Amazon Bedrock、Vertex AI、Microsoft Foundry
  • 不需要 beta header
  • 符合 Zero Data Retention eligibility

实战建议

  • 稳定角色、人设、工具规则仍放顶层 system
  • 高频变化的应用状态用 mid-conversation system message
  • 不要把时间戳、随机值塞进顶层 system
  • 配合 prompt caching 降低 Agent loop 成本
  • 记录每次 system update,方便审计和排查行为变化

来源:Anthropic 官方文档 - Mid-conversation system messages | 整理:ClaudeEagle

相关文章推荐

教程Claude Cache Diagnostics 教程:定位 Prompt Cache Miss 的真正原因Claude Cache Diagnostics 解决 prompt cache miss 难排查问题。通过传入上一次 response id,API 会比较请求 fingerprint,告诉你 model/system/tools/messages 哪个部分破坏了缓存 prefix。2026/6/6教程Claude Prompt Caching 完整指南:降低长上下文成本与延迟的 API 实战Claude Prompt Caching 官方能力中文整理:适合缓存的内容、cache_control 使用方法、缓存断点策略、长文档和工具定义复用、成本/延迟收益、常见坑和生产环境落地建议。2026/5/21教程Claude MCP Tunnels 指南:不用开放入站端口,也能把私有 MCP 服务接给 ClaudeMCP Tunnels 是 Anthropic 面向企业内网 MCP 服务的 beta 能力,通过 outbound-only 连接、cloudflared、proxy、inner TLS 和 OAuth,让 Claude 安全访问私有工具与数据源。2026/6/6教程Claude Citations 完整指南:让 AI 回答带可验证引用,适合 RAG 与文档问答Claude Citations 官方能力中文整理:如何启用 citations.enabled、支持的文档类型、PDF 页码引用、文本字符索引、custom content block 索引、RAG chunk 粒度控制、与 Prompt Caching 兼容性和 Structured Outputs 不兼容限制。2026/5/21教程Claude Batch Processing 完整指南:批量处理任务如何节省 50% API 成本Claude Batch Processing 官方能力中文整理:为什么批处理能省钱、如何创建 batch、custom_id 设计、轮询状态、下载结果、处理失败请求,以及适合大规模分类、摘要、翻译、数据清洗的任务模式。2026/5/21教程Anthropic Claude API 完整开发指南 2026:Prompt 缓存、自适应推理、工具调用全解析Claude API 2026 年完整开发指南:模型选型和最新定价(Haiku/Sonnet/Opus 对比)、Prompt 缓存实现(最高节省 90% 成本,含代码示例)、自适应推理替代旧 budget_tokens(含流式实现)、工具调用完整循环、流式响应(含 Next.js App Router 示例)、视觉能力(Opus 4.7 支持 3.75MP),以及生产最佳实践(重试、成本监控)。2026/4/24