本周,Anthropic 的系统提示发布说明成为 Hacker News 的头条新闻。该页面是 Anthropic 发布精确指令的地方,这些指令引导 Claude 在 claude.ai 及其移动应用上运行。一天内它获得了超过 550 分和 230 条评论,讨论仍在继续。
关于该页面最有趣的地方不是任何单一规则。而是规模。Claude Opus 3 的系统提示(日期为 2024 年 7 月 12 日)根据我的计算有 358 个单词。Claude Opus 5 的系统提示(日期为 2026 年 7 月 24 日)有 3,235 个单词。两年内增长了九倍。
我已经使用 Spring Boot 和 Spring AI 构建生产环境的 AI 系统超过一年,并且我运营自己的代理基础设施。当控制前沿模型的提示词增长九倍时,这不仅仅是 Anthropic 的好奇心。这是每个交付 AI 产品的团队的警告和操作指南。以下是这 3,235 个单词中实际包含的内容,以及生产团队应该从中学习的地方。
发布说明(platform.claude.com/docs/en/release-notes/system-prompts)是面向消费者聊天产品的系统提示更改日志。页面上的两个细节很重要:
Simon Willison 将该页面转换为一个 git 仓库(github.com/simonw/research)包含跨 17 个模型的 29 个提示修订版,每个都附带源文档中的日期提交。这意味着您可以在 Claude 人格的任何两个版本之间运行 git diff。这是一件了不起的事情:前沿模型的产品规格,像源代码一样进行版本控制,并且是公开的。
我在该仓库中阅读了 Opus 5 提示。它被组织成几个部分:产品信息、Claude 行为、拒绝处理、法律和财务建议、语气和格式、用户福祉等等。有四个细节尤为突出。
提示是一个产品目录。 它列出了当前阵容:"最近公开可用的模型是 Claude Fable 5、Claude Opus 5(当前选定的模型)、Claude Sonnet 5 和 Claude Haiku 4.5," 包括 API 模型字符串。它甚至描述了 Opus 之上的层级:"第一个 Mythos 级模型 Claude Mythos Preview 目前不对公众开放。它目前正被少数可信组织作为 Anthropic 的 Project Glasswing 项目的一部分使用。" 营销文案、安全政策和产品公告都位于同一文本文件中。
提示是一个新闻频道。 这是让我重新阅读文件的部分:"Claude Fable 5 和 Claude Mythos 5 首次发布于 2026 年 6 月 9 日。2026 年 6 月 12 日,Anthropic 为遵守美国商务部出口管制而暂停了对两款模型的访问;商务部于 2026 年 6 月 30 日解除了这些管制,Anthropic 于 2026 年 7 月 1 日恢复了访问。" 接着是关键点:"这些事件发生在 Claude 的训练数据截止时间之后,因此 Claude 仅通过此通知了解这些事件。" 当前沿实验室需要模型了解训练后发生的事情时,它不会进行微调,而是编辑提示。
提示处理模型切换。 "用户可以在对话过程中切换模型,因此此线程中早期标识为不同模型或报告不同知识截止时间的消息可能仍然准确。" 在 HN 线程 上的一位评论者添加了一个奇怪的版本:Opus 5 的提示告诉它,原本 intended for Claude Fable 5 的请求可能因防护措施被重定向到 Opus 5,它应该像 Fable 5 一样来回答该请求。系统提示现在是一个路由文档。
提示是安全政策执行的地方。 儿童安全规则明确规定:"针对未成年人的内容,Claude 不得提供未明确说明的假设,使请求看起来比原文更安全。" 有关拒绝的规则、法律和财务建议的规则,以及 Anthropic 可以在对话中注入的分类器驱动提醒列表:image_reminder、cyber_warning、system_warning、ethics_reminder、ip_reminder 和 long_conversation_reminder。即使知识截止时间现在也是一种行为指令:"Claude 的可靠知识截止时间,超过此时间后它无法可靠回答,是 2026 年 5 月底。" 并且它既不应确认也不应否认其无法验证(不使用搜索)的 post-May 2026 声明。
内容很有趣,但增长是数据点。提示并没有缓慢上漂。它在两年内增长了九倍,一年前它已经非常庞大。2025 年 5 月 6 日,一篇展示 Claude 4 泄露提示的帖子在黑客新闻头条位置停留了一天,标题为 "Claude 的系统提示词超过 24k tokens,包含工具"(627 分),即使在工具定义甚至未被计算之前。
它为什么一直在增长?HN 线程提供了最好的框架。一位评论者将系统提示词与建筑法规进行比较:"它让我想起建筑法规和标准合同:它们最初很小且简单,随后随着时间的推移,因事故和漏洞利用而逐渐积累。他们说建筑和电气法规是用鲜血写成的。"另一人指出了启用条件:"我认为现在模型能够支持更大的输入规模,塞入更大的系统提示词会更高效。"
每一次事件、每一次政策变更、每一次产品发布都会增加一个段落。没有任何内容会被删除。这就是模式,这正是公司内部生产提示词所发生的情况,只是速度较慢。
线程中的一个顶级问题是:为什么 Anthropic 不要将系统提示词烘进模型权重,而是随每个请求一起发送?Simon Willison 直接回答:"这些系统提示词不会影响 API,它们是为 Claude 消费者聊天产品准备的。我们不会为它们额外收费。它们还进行了前缀缓存,因此对 Anthropic 的成本和性能影响大幅降低。"
对开发者而言,这一细节很重要:消费者聊天不会为提示词向您收费,但 Claude Code 会运行其自身的未发布系统提示词,这些提示词会被收费,尽管是按缓存 token 计费的,正如 Willison 所说。
我过去一年一直以 Anthropic 对待 Claude 的方式对待我的 Spring AI 代理,并且已发布的更改日志验证了这些做法。以下是您应该带回到代码库中的内容。
将提示视为代码,并保留历史。Simon 的存储库之所以有用,是因为它的差异。请做到同样:在您的仓库中保存每个系统提示词,进行版本控制,每次更改都添加一个变更日志条目。当行为出现回退时,在提示文件上执行 git log 会告诉您发生了什么变化。
将提示固定到模型。 Anthropic 自 Claude 4.6 起为每个模型 ID 提供一个固定的快照。您的应用程序应该同时固定:模型版本以及针对其评估的提示文件。在 Spring AI 中,这看起来像这样:
ChatClient client = ChatClient.builder(chatModel)
.defaultSystem(resourceLoader.getResource("classpath:/prompts/system-v3.md"))
.build();
system-v3.md 位于 git 中,与代码并存。当供应商发布新模型版本时,您应在升级之前将新模型与固定的提示词进行对比评估。
为上下文窗口预算。 除非使用前缀缓存,否则您的系统提示词中的每个 token 在每次请求中都会产生费用。在我的 Agent 可观测性设置中,系统提示词在每个请求中的占比是我查看延迟或成本上升时首先关注的数字。由于激进的缓存策略,3,235 词的提示词对 Anthropic 来说是可行的。您的提示词应保持精简。
验证每一次扩展。 “以血写成”模式意味着规则会不断积累。在我的 Spring AI 系列中,我曾就此原因讲解过提示词 A/B 测试和金丝雀回退:每条新规则都应通过实验来证明其价值,且不良的提示词更改应能自动回滚。HN 论坛还指出 Opus 5 提示词内部存在矛盾,这是 Anthropic 自己的 针对 Claude 5 代模型的上下文工程指南 所承认的问题。
将易变事实放入检索而非提示词。 整个 changelog 中最优雅的细节是出口管制通知:Anthropic 将截止后的新闻以纯文本形式注入,并且对该机制保持透明。您可以使用一个由自己的检索系统支持的小型“最新更新”系统块来实现同样的效果,该块会从您的数据库中刷新,而无需在每次价格或政策变更时编辑提示词文件。
我每周撰写关于 Java、Spring Boot 和 AI 的文章。订阅即可免费获取。
您曾经比较过自己在不同版本之间的系统提示词吗?增长情况如何?请在评论区告诉我。
——
一个热爱技术的程序员,喜欢分享前沿AI知识和开发经验。