Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save acmerfight/5428853d12f1db3d931464382af4a78b to your computer and use it in GitHub Desktop.

Select an option

Save acmerfight/5428853d12f1db3d931464382af4a78b to your computer and use it in GitHub Desktop.
Claude Opus 5 的「20 万字符系统提示词」,与官方“减少 80%”矛盾吗?——事实、口径与业界争议的完整分析

Claude Opus 5 的「20 万字符系统提示词」,与官方“减少 80%”矛盾吗?

结论先行

没有严格的逻辑矛盾,但存在明显的统计口径错位,以及值得警惕的营销表达张力。

Anthropic 的窄口径主张——“面向 Opus 5、Fable 5 等前沿模型,Claude Code 的核心系统提示词减少了 80% 以上”——有独立测量提供方向性支持。
但如果把这句话理解成“Claude 的完整首轮上下文、上下文占用或 token 成本减少了 80%”,现有证据并不支持。


01|为什么看起来互相矛盾

两份材料摆在一起,视觉冲击很强:

材料 表面信息
第三方仓库中的 OPUS-5.md 约 20 万字符,看起来像一份极其庞大的“系统提示词”
Anthropic 官方文章 宣称针对 Opus 5、Fable 5 等模型,删除了 Claude Code 系统提示词的 80% 以上

如果默认两者描述的是同一个产品、同一种数据、同一个统计边界,那么当然像是矛盾。

问题恰恰在于:这三个前提都不成立。

三条最重要的边界

  1. Claude.ai 不等于 Claude Code
  2. 核心 system prompt 不等于完整运行时上下文
  3. 20 万字符不等于 20 万 token

02|官方究竟声称了什么

Anthropic 原文的主语和限定条件非常明确:

“We removed over 80% of Claude Code’s system prompt for models like Claude Opus 5 and Claude Fable 5…”

这句话只声称:

  • 对象是 Claude Code
  • 适用于 Opus 5、Fable 5 这类较新的前沿模型;
  • 减少的是 Claude Code 的 system prompt
  • 官方编码评测没有观察到可测量的能力损失。

它没有声称:

  • Claude.ai 网页版的全部启动上下文减少了 80%;
  • Claude Code 发给模型的完整请求减少了 80%;
  • Tool schemas、Skills、Memory、CLAUDE.md 和会话历史都减少了 80%;
  • 用户实际可用的上下文窗口增加了 80%;
  • 所有 Claude 模型都使用同样短的提示词。

官方文章描述的实际工程动作包括:

  • 删除大量面向旧模型的规则、反例和“不要做什么”列表;
  • 减少依靠大量 few-shot 示例来约束前沿模型;
  • 将通用验证流程移入按需调用的 Skills;
  • 将工具专属说明放进工具描述;
  • 通过 ToolSearch 延迟发现或加载工具;
  • 更多依赖新模型自身的判断能力。

所以更准确的转述是:

Anthropic 缩小了常驻的核心行为脚手架,并把一部分信息转移到更合适、可能按需加载的上下文组件中。

这是一项上下文架构调整,不等于“所有提示内容凭空消失了 80%”。


03|20 万字符文件实际上装了什么

对该第三方文件按结构进行拆分后,得到以下结果:

内容区域 字节数 占比
核心行为、安全、产品和表达风格 22,880 11.3%
长期记忆政策及大量示例 47,356 23.4%
结束对话规则 3,192 1.6%
Artifact 持久化 API 3,295 1.6%
Connectors 与历史聊天 10,037 5.0%
文件、计算机、Artifacts、可视化 18,167 9.0%
Web、图片搜索及版权规则 23,749 11.7%
工具描述与 JSON Schema 55,670 27.5%
用户配置、Skills、环境等动态附加块 18,416 9.1%
合计 202,762 100%

测量说明

  • 以上为 UTF-8 文件字节数和人工结构分区,不是 Anthropic 官方分类。
  • 文件约 2,049 行、29,011 个空白分隔字符串。
  • 根据文本和 JSON 的混合结构,只能粗略估计为约 4.5 万至 5.5 万 token。
  • 因此,“20 万字符”不能传播成“20 万 token”。

真正接近“核心模型行为提示”的部分约占 11%。其余大部分是:

  • Memory 政策和示例;
  • 工具定义及参数 schema;
  • 搜索、连接器、文件和 Artifact 能力;
  • Skills、用户画像和动态环境配置;
  • 产品运行时说明。

文件中还明确包含面向 chat/web/mobile 产品的描述。它更接近 Claude 消费者聊天产品某种配置下的完整启动上下文转录,而不是 Claude Code 的精简核心提示词。

因此,将其称为“Claude Opus 5 的 20 万字符秘密核心系统提示词”并不严谨。更准确的名称是:

某次 Claude.ai 会话中,围绕 Opus 5 拼装的运行时上下文或 prompt envelope。


04|“系统提示词”其实有三种常见定义

业界讨论经常在没有声明口径的情况下,混用下面三个概念。

A. 核心行为提示词

主要包括:

  • 模型身份;
  • 通用工作方式;
  • 安全和权限边界;
  • 表达风格;
  • 产品级行为要求。

这部分可能只有几千到一两万个字符。

B. 协议层的 system 内容

只计算 API 请求里被标记为 system 的消息块。

工具通常放在独立的 tools 字段中,因此从请求协议看,“工具不是 system prompt”。

C. 模型实际接收的完整启动上下文

可能包括:

  • 核心 system;
  • 工具说明和 JSON Schema;
  • Skills、Agents 目录;
  • Memory 和用户画像;
  • 项目 CLAUDE.md
  • 动态 reminders 与环境元数据;
  • 对话历史和工具返回结果。

Anthropic 的工具文档指出,启用工具时,系统会根据工具配置、工具定义和用户提供的系统提示构造特殊提示。这意味着:

  • 从 API 字段和产品统计角度,systemtools 可以分开;
  • 从模型注意力和上下文占用角度,它们都会成为模型需要处理的输入。

参见 Anthropic:How to define tools

可以把总上下文粗略表示为:

完整模型上下文
  = 核心系统指令
  + 工具描述与 schemas
  + Skills / Agents
  + Memory / 用户画像
  + 项目级说明
  + 动态环境信息
  + 对话与工具历史

官方的“减少 80%”主要描述第一项;第三方文件接近展示整个加法结果。

于是,10k、27k、139k、203k 字符的“系统提示词”可以同时出现在讨论中,而各方未必都在造假——他们可能只是在使用完全不同的分母。


05|独立测量支持“减少 80%”吗

一项独立实验在同一台机器上捕获不同时期的 Claude Code 提示,并只统计 Anthropic 提供的指令正文,排除工具定义、项目 CLAUDE.md 和会话字段。

其结果为:

统计方式 旧版本 新版本 缩减幅度
新版本关闭 Memory 2,686 词 514 词 约 81%
两边均排除 Memory 1,918 词 514 词 约 73%
两边均计入 Memory 2,686 词 830 词 约 69%

来源:phuryn / claude-code-system-prompt-shrink

这组数据说明:

  1. 大幅缩减基本可信;
  2. 80% 并非毫无证据;
  3. 具体是 69%、73% 还是 81%,取决于 Memory 和迁移内容如何记账;
  4. 它仍然不能证明完整请求也缩减了 80%。

实验还观察到,不同模型会收到不同版本的提示:较旧模型保留较详细的行为脚手架,前沿模型使用更短、更依赖模型判断的配置。

Claude Code 团队成员在 Simon Willison 的采访中也确认:

  • 不同模型使用不同系统提示;
  • 80% 缩减主要针对前沿模型;
  • 较旧模型仍保留更完整的提示;
  • 外部评测和内部评测都无法覆盖 100% 的行为。

参见 Simon Willison:Claude Code team interview notes

因此,最稳妥的事实判断是:

“核心常驻行为指令减少约 70%~80%”有方向性证据支持;“完整上下文成本减少 80%”没有。


06|核心提示变短,不代表完整请求很小

另一个第三方 Claude Code Opus 5 提取文件约为 138,750 字节。按其结构粗分:

内容 占比
核心系统提示 7.5%
动态会话上下文 1.0%
Agent 目录 1.8%
Skills 目录 4.0%
工具描述与 schemas 85.7%

这份第三方材料同样不能视为官方、普适的固定配置,但它揭示了一个重要结构:

核心提示可以很短,完整请求仍然可以很大,因为工具定义可能占据绝大部分。

一项通过代理观察 Claude Code 实际请求的实验也得到相似方向的结果:在特定版本和配置下,首个请求在用户正文之前已约有 32.8k tokens,其中约 24k 来自工具定义。

来源:Systima:Claude Code vs OpenCode token overhead

该实验的原始捕获未完全公开,而且结果会受模型、版本、工具、MCP 和功能开关影响,因此不适合作为所有用户的固定数字。但“工具 schema 可能比核心行为提示大得多”这一方向,与其他提取结果一致。

另一个长期跟踪 Claude Code 编译产物的项目则整理出了 500 多个提示片段,覆盖条件式系统片段、内置工具说明、Agent 提示和内部辅助提示。这里同样必须注意:源码或目录中存在的提示总量,不等于每一次请求都会同时加载的提示量。

来源:Piebald-AI / claude-code-system-prompts

Prompt caching 也不能完全消除这个问题:

  • 缓存可以降低重复前缀的价格和预填充延迟;
  • 被缓存的内容通常仍占据上下文窗口;
  • 内容过多仍可能稀释注意力,形成 context rot。

07|为什么更强的模型反而需要更少的提示

Anthropic 的观点并不是“提示词越短越好”,而是:

对能力足够强的模型,不要再用大量规则模拟它已经具备的判断能力。

旧式长提示通常包含:

  • 每一步应该怎么做;
  • 大量“不要做 X”;
  • 大量正例和反例;
  • 何时验证以及验证几次;
  • 如何叙述过程;
  • 遇到错误如何自我纠正;
  • 重复的工具使用说明。

这些规则可能曾经用于弥补旧模型能力不足,但放到更强的新模型上,可能产生反作用:

  • “必须验证”变成反复验证;
  • “充分解释”变成过程直播;
  • 大量示例把模型锁定在旧工作流;
  • 多层禁令互相冲突,使模型保守或犹豫;
  • 工具规则重复出现,挤压项目和任务信息。

Anthropic 的 Opus 5 提示指南也指出,新模型可能出现新的过度行为:

  • 过度验证;
  • 扩大任务范围;
  • 过度委派子代理;
  • 详细叙述自我修正;
  • 输出长于用户所需。

官方因此建议用短而明确的范围、验证、叙述和委派约束来修正这些倾向。参见 Anthropic:Prompting Claude Opus 5

这解释了为什么新提示可能经历这样的变化:

删除旧模型所需的大量通用脚手架
                 ↓
依赖前沿模型自己的判断力
                 ↓
针对新模型特有的失败模式,添加少量短规则

所以“删除 80%”和“后来又增加几条规则”也不矛盾。提示工程不是单向删减,而是持续寻找更高的信息密度。


08|业界讨论的四条主线

① 少提示派:上下文是一种有限的注意力预算

这一派认为,长提示不一定提供更强约束,反而可能:

  • 稀释真正重要的信息;
  • 增加规则冲突;
  • 让模型过拟合示例;
  • 降低任务和项目级信息的权重;
  • 增加 context rot。

Anthropic 早期的上下文工程文章主张寻找“最小但高信号”的上下文。这里的 minimal 并不等于字符数最少,而是每一段信息都值得占用模型注意力。

来源:Anthropic:Effective context engineering for AI agents

LangChain 将常见上下文工程策略概括为:

  • Write:写入外部记忆;
  • Select:只选择当前所需信息;
  • Compress:压缩历史和观察;
  • Isolate:利用子代理或独立空间隔离上下文。

来源:LangChain:Context Engineering for Agents

② 重新记账派:删除,还是搬家

这派质疑的不是架构方向,而是统计表达:

从核心 system 删除
→ 放进 tool description
→ 放进 Skill
→ 放进 Memory
→ 需要时再加载

从系统设计看,这是合理的 progressive disclosure;但从总成本看,不能把所有迁移内容都视为永久消失。

因此“系统提示减少 80%”在窄口径下可以成立,传播成“Claude 上下文减少 80%”则会误导。

③ 可靠性派:短规则也可能是承重结构

社区讨论中,有用户注意到 Claude Code 用非常短的硬编码指令限制未经请求的子代理或工作流使用,并报告行为发生明显变化。

无论个别用户体验是否可以普遍化,它都揭示了一个真实问题:

提示词的行为影响不与字符长度成正比。

删除五千字冗余说明可能没有副作用;改动一句承重规则,却可能改变整类工作流。

所以提示重构不能只看长度和 benchmark 均值,还应覆盖:

  • 安全与权限边界;
  • 长任务持续性;
  • 工具选择;
  • 错误恢复;
  • 是否过度保守;
  • 是否擅自扩大范围;
  • 子代理和并行行为;
  • 用户偏好遵循;
  • 边缘场景回归。

相关讨论可参见:

这些帖子只能代表社区反馈,不能替代受控实验;其价值主要在于指出值得加入行为回归测试的具体风险。

④ 系统架构派:渐进加载与稳定前缀的取舍

Anthropic 倾向于:

  • ToolSearch;
  • Skills;
  • progressive disclosure;
  • 当前需要什么,才加载什么。

它可以减少工具选择混乱和注意力负担。

Manus 则强调长时间运行 Agent 的 KV-cache 命中率。动态添加或删除工具可能改变前缀、破坏缓存,因此更倾向保持稳定前缀,通过屏蔽机制控制当前可用工具。

来源:Manus:Context Engineering for AI Agents

Anthropic 倾向 Manus 倾向
减少当前可见工具 保持前缀稳定
降低注意力和选择负担 提高 KV-cache 命中率
按需展开说明 尽量追加,少修改前缀
适合大量工具的动态检索 适合长轨迹 Agent

这不是简单的谁对谁错,而是在优化不同指标。API 是否支持缓存友好的动态工具变化,也会改变最终取舍。


09|这份“泄漏”可以相信到什么程度

第三方 prompt extraction 没有完整、可审计的证据链,因此不能确认:

  • 文件是否完整或经过编辑;
  • 对应哪个确切账号、版本和功能旗标;
  • 是否所有 Opus 5 用户都会收到相同内容;
  • 哪些内容来自 Anthropic,哪些来自 Connector 或环境;
  • 它是否混合了 system、tool、动态上下文和其他消息层。

但其核心内容与 Anthropic 公开的 Claude.ai 核心系统提示存在明显重合。Anthropic 官方也持续发布 Claude.ai 与移动端使用的核心系统提示,并明确说明这些提示不适用于 API。

来源:Anthropic:System Prompts release notes

合理的可信度分层是:

判断 可信度
核心产品提示大体真实 较高
工具、Memory、Skills 的总体架构真实 较高
文件代表某个特定运行配置 可能
文件未经修改且绝对完整 无法确认
所有 Opus 5 会话都固定加载完全相同内容 不成立或至少未经证明
Opus 5 有一个单体、秘密的 20 万字符核心系统提示 明显不准确

因此,讨论它时最好使用“第三方提取”“疑似运行时上下文”“该配置下的捕获”这类限定词,而不是把它当成官方确认的唯一真相。


10|最终裁决

事实层

不矛盾。

  • 官方讨论 Claude Code,文件主要指向 Claude.ai;
  • 官方统计核心常驻 system prompt,文件接近完整运行时 envelope;
  • 20 万是字符量级,不是 token;
  • 不同模型、版本和配置会使用不同提示。

传播层

存在营销口径张力。

“Claude Code 的核心系统提示减少 80%”可能真实;但不同时公布完整请求、工具、Memory 和迁移内容,公众很容易误解成“Claude 的实际上下文负担下降 80%”。

现有证据不能支持后一个宽泛结论。

工程层

真正值得关注的不是提示文件是否从 2,000 行变成 500 行,而是:

系统是否把通用行为、工具接口、项目知识、长期记忆和确定性验证放到了各自最合适的层次,并在正确的时机把高信号信息交给模型。


11|以后如何审视类似的“减少 X%”声明

至少要求分别报告:

  1. 核心 system prompt tokens;
  2. 工具描述和 JSON Schema tokens;
  3. Skills、Agents 目录 tokens;
  4. Memory 与动态注入 tokens;
  5. 冷启动首轮请求的完整 tokens;
  6. Prompt cache 写入、读取与命中率;
  7. 实际上下文窗口占用;
  8. 整个任务的总 tokens、延迟和价格;
  9. 任务成功率与行为回归;
  10. 测试使用的模型、客户端版本、工具、MCP 和功能开关。

否则,“减少 80%”可能同时意味着:

  • 真正删除了 80%;
  • 把一部分内容迁移到按需加载;
  • 只缩小了整个上下文中原本很小的一部分;
  • 更换了统计分母。

一句话总结

Anthropic 很可能真的把 Claude Code 面向前沿模型的核心行为提示缩短了约 70%~80%;GitHub 上约 20 万字符的文件,则主要是另一产品形态下由核心提示、Memory、工具 schemas、Skills 和运行时配置共同组成的完整上下文。两者不构成形式矛盾,但“减少 80%”绝不能被等价理解为完整上下文或 token 成本减少 80%。


研究日期:2026-07-27。本文区分官方资料、独立测量与第三方提取;所有非官方捕获均仅作为结构性证据,不视为 Anthropic 对完整内容或普遍配置的确认。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment