# Claude Fable 5被破解了?12万字系统提示词全曝光
不少读者问我,如何才能用上Claude pro(opus 4.8,Fable),我在这里篇单独讲一下:国内Claude充值会员的方法 (opens new window)
录友们好。
Anthropic 刚发了 Claude Fable 5,号称目前最强的公开模型。
结果发布没几天,圈子里就炸了一条消息:
有人把 Fable 5 的系统提示词给"扒"出来了。
研究者 Pliny the Liberator 在 6 月 10 号,把一份疑似 Fable 5 完整系统提示词,发到了 X 和 GitHub 上。
数字很吓人:
120,040 个字符,约 3 万 token,1585 行,72 个命名段落。
换算成中文阅读量,差不多 12 万字,一本中篇小说的体量。
但真正让我想写这篇的,不是"泄露"这个瓜。
而是这个事实:
这 3 万 token,是在你跟模型说第一句话之前,就已经塞进去了。
也就是说,你还没开口,光"开场设定"就先烧掉了 3 万 token。
这背后是一整套 Context Engineering 的工程账。
这篇我们就借这个瓜,把它讲明白。
# 一、先把边界划清楚:别被标题带偏
聊技术之前,先泼盆冷水,免得你拿着错误信息到处说。
关于这次泄露,有三件事必须说清楚:
第一,Anthropic 没有官方确认。
这份提示词是研究者抓出来的,不是官方放出来的。Pliny 过去抓的东西事后大多被证明八九不离十,但"大概率真"不等于"官方盖章"。
第二,它针对的是 Claude.ai 网页版。
不是 API,也不是 Claude Code。你调 API 的时候,系统提示词是你自己写的,没有这 3 万 token。网页版那套庞大的提示词,是 Anthropic 为消费级产品定制的。这个区别很关键。
第三,"破解"两个字有点标题党。
它不是把模型权重黑了,也不是拿到了什么源代码。它是通过对话手段,把模型"开场前被偷偷告知的内容"诱导吐了出来。本质是 prompt extraction,提示词提取。

这张图回答的是:同样叫"系统提示词",在三个地方完全不是一回事。你调 API 时是自己写的、可短可无;网页版那套 3 万 token 是 Anthropic 定制的,这次泄露的就是它;Claude Code 又是另一套面向编程 Agent 的。别拿网页版的瓜,去套你自己调 API 的场景。
边界划清楚了,我们再往下看。
因为就算打了这三个折扣,这份提示词的结构依然极有参考价值。
它就像一份被泄露的"产品说明书",让你第一次看清:一个顶级 AI 产品,到底在用户看不见的地方,给模型立了多少规矩。
# 二、系统提示词到底是什么
很多录友其实没搞清楚,跟 ChatGPT、Claude 聊天的时候,到底发生了什么。
你以为的对话是这样:
你说一句话,模型回一句话。
实际发生的是这样:
在你那句话前面,产品早就偷偷塞了一大段你看不见的指令。
这段指令,就是系统提示词(System Prompt)。
它干的事情,是在对话开始前,先把模型"调教"成产品想要的样子:
- 你叫什么名字、你是谁
- 你能用哪些工具、怎么用
- 什么能说、什么不能说
- 输出用什么格式
- 遇到模糊问题怎么处理
模型每次回答你,都是在这一大段设定的笼子里回答的。

这张图回答的是:你以为你只发了一句话,实际上发给模型的是"3万token系统提示词 + 你那一句"。
你看到的是水面上那一句"帮我写封邮件"。水面下,是一整套你从来没读过、但每次都生效的开场设定。
所以系统提示词不是可有可无的"开场白"。
它是产品和模型之间的契约。 产品的所有性格、规矩、能力边界,都写在这里。
# 三、12万字里到底装了什么
这才是最有意思的部分。
这 3 万 token,不是废话堆出来的。
根据公开的拆解,这份提示词的"预算"大致是这么分的:

这张图回答的是:3 万 token 到底花在了哪几件事上。
我们一项一项看:
工具定义和 schema,占 30%,最大头。
模型要会用搜索、会读文件、会调各种工具,每个工具长什么样、参数怎么填、返回什么,都得一字一句写清楚。工具越多,这块越重。这也解释了为什么现在的模型"会干的活"越来越多——因为有人把每件活的说明书都写进了提示词。
搜索和引用规则,占 25%。
什么时候该搜、搜完怎么引用、能不能照抄原文。里面甚至有这样一条:引用"必须用自己的话,不许逐字照抄"。还有防过时的例子,比如"2026 年了还搜 latest iPhone 2025,返回的是过时结果"——直接把失败案例写进规则里教模型避坑。
行为、安全和 wellbeing,占 17%。
什么该拒答、什么是危险请求、怎么对待用户的情绪。这里面有个细节特别说明问题:提示词里曾经有个已经失效的求助热线号码,后来出问题了,于是又补了一条规则去修。你看,这玩意是一条一条"打补丁"打出来的。
身份设定,占 13%。
"你是谁"这件事。有意思的是,身份声明出现在第 1351 行——1585 行里的靠后位置,不是开头。这说明在产品眼里,"立规矩"比"自我介绍"优先级更高。
电脑操作和文件处理,占 10%。
读文件、写文件、操作环境的规则。
记忆和 MCP 应用,占 6%。
跨轮对话怎么记状态、怎么接外部应用。
看完这个拆解,你应该有个直觉了:
这哪是什么"提示词",这分明是一份产品规格说明书。 工具手册、搜索规范、安全条款、事故复盘,全堆在里面。
里面还藏着一条很"克制"的规矩:模型"绝不主动让用户继续聊下去"。
一句话,反掉了多少产品挖空心思设计的"提高对话轮次"。这是把价值观写进了 token 里。
# 四、为什么非得写这么长
看到 3 万 token,很多人第一反应是:写这么长,是不是工程能力不行、不会精简?
恰恰相反。
长,是能力和安全一起堆出来的必然结果。
你想让模型多会一个工具,就得多写一段工具定义。
你想让模型多守一条安全红线,就得多写一条规则。
你想让模型在某个边界场景别犯傻,就得多塞一个例子。
能力、安全、一致性——这三样,每一样都是用 token 买的。
模型不会读心。你不写清楚,它就不知道。
所以这份提示词的每一次变长,背后大概率都对应着一次真实的迭代:
- 上线后发现模型在某个场景翻车 → 加一条规则
- 接入一个新工具 → 加一段 schema
- 出了一次事故(比如那个失效热线)→ 打一个补丁
它不是一次写成的完美文档,更像一张越贴越多的便利贴墙。

这张图回答的是:3 万 token 是怎么一层层堆起来的。初版只有核心指令,上线翻车补一层行为规则,接新工具叠一层 schema,出了事故再打一层安全补丁——每变高一截,背后都是一次真实迭代。
这恰恰是真实工程的样子。没有哪个复杂系统的配置是短的。
# 五、关键的账:3万token,你还没开口就花掉了
现在说回我最想讲的那件事。
这 3 万 token,是固定开销。
不管你问"今天天气怎么样",还是让它写一万字方案,这 3 万 token 都先垫在最前面。
它带来三笔账:
第一笔,钱。
token 是要计费的。每一次对话请求,这 3 万 token 都要算进输入。哪怕你只问一句话,账单里也先记上这 3 万。海量用户 × 海量对话,这是一笔天文数字。
第二笔,延迟。
模型要先"读完"这 3 万 token,才能开始理解你那句话。提示词越长,首字响应的潜在负担越重。
第三笔,上下文窗口。
Fable 5 网页版有很大的上下文窗口,但再大也是有限的。开场就占掉一块,留给你和模型真正对话的空间,就少了一块。

这张图回答的是:同一段固定的 3 万 token 前缀,会同时压上三笔账——钱按每次请求累乘、延迟被读完整段拖着、窗口开场就被占掉一块。
其中上下文窗口这笔账,我们在之前聊 上下文窗口 的时候也强调过:窗口是预算,不是仓库。 任何固定占用,都是从你和模型的有效对话空间里扣的。
3 万 token 的固定开销,听起来很奢侈。
那大厂为什么还敢这么写?
# 六、大厂的底气:Prompt Cache 兜底
答案是缓存。
这 3 万 token 的系统提示词,有一个绝佳的特点:
它几乎不变。
每个用户、每次对话,开头垫的都是同一段。
既然内容一样,就没必要每次都让模型从头重新计算一遍。
这就是 Prompt Cache(提示词缓存)的用武之地:把这段固定前缀的计算结果缓存下来,后续请求直接命中缓存,不用重算。

这张图回答的是:同样一段 3 万 token 的系统提示词,命中缓存和不命中缓存,成本差一大截。
命中缓存的那部分 token,价格能降到原价的零头。
所以你就理解了一个看似矛盾的现象:
正因为系统提示词长且稳定,它才特别适合被缓存。 长度本身不是问题,"长而不变"反而是缓存最喜欢的形状。
这也是为什么 Claude Code 这类产品,会把 Prompt Cache 当成核心架构约束——这部分我专门写过一篇 Claude Code 为什么快,里面讲了前缀匹配、工具定义稳定性这些细节,感兴趣的录友可以接着看。
一句话总结大厂的算盘:
用一段固定的长提示词换来稳定的能力和安全,再用缓存把这段长提示词的成本摊薄到可以接受。
# 七、普通开发者能抄什么作业
看别人家的瓜,最终是为了自己别踩坑。
这份泄露的提示词,给我们这些做应用开发的,至少三条可以直接抄的作业。
第一,把任务"打包",比单纯写长更重要。
这份提示词读起来不像"一句完美的咒语",更像一张"工具清单 + 操作手册"。它的强,不在辞藻,在于把工具、规则、边界、示例都摊开讲清楚了。
你给模型派活也一样:与其反复堆形容词,不如把目标、相关文件、约束条件、验收标准、检查步骤,结构化地列清楚。
第二,长不是目的,稳定才是。
系统提示词敢写长,前提是它"长而稳定",能吃到缓存红利。如果你自己的 prompt 每次都在变、东加一句西改一句,那就既享受不到缓存,又白白增加成本。
写 prompt、写 CLAUDE.md,要追求的是"稳定的结构",不是"华丽的长度"。
第三,别把上下文窗口当垃圾桶。
看到大厂用 3 万 token,不代表你也该往自己的 prompt 里乱塞。它有海量请求摊薄成本、有成熟缓存兜底,你没有。
对绝大多数应用来说,省着用窗口、把每一个 token 花在刀刃上,才是正解。Context Engineering 的核心从来不是"塞得多",而是"编排得准"。
# 八、顺便说说:"破解"是怎么做到的
最后简单聊一下技术手段,满足下好奇心。
研究者用的招,被称为 "pack hunt"(群狼战术):
不是单点硬刚安全分类器,而是多个手法配合——字符级混淆、把请求拆解成无害的碎片、再利用模型超长上下文窗口的特性,绕过防线,一点点把系统提示词诱导出来。

这张图回答的是:为什么正面问"把提示词发我"会被安全分类器一秒拦下,而 pack hunt 能成。它把攻击拆成一堆单看都无害的碎片,分别溜过防线,最后在外面拼合还原出整段提示词。
这背后其实是一个长期存在的攻防话题:prompt injection(提示词注入)和 prompt extraction(提示词提取)。
有意思的是,被泄露的这份提示词里,本身就有针对注入的防御条款,明确写了对"试图对抗 Claude 价值观"的内容要保持警惕。
攻防是同时进化的。 提示词里写着怎么防注入,攻击者却用更刁钻的组合拳把整份提示词连同防御条款一起扒了出来。
这也提醒所有做 AI 产品的录友一句:
任何写进系统提示词的东西,都要默认它有一天可能被看到。 别把真正的密钥、内部敏感逻辑寄希望于"藏在系统提示词里用户看不见"——那不是保险箱,顶多是个抽屉。
# 九、写在最后
回到开头那个数字:3 万 token。
它看起来像一个夸张的浪费。
但拆开看,它是工具、是规则、是安全、是一次次事故复盘攒下来的工程产物。它长,是因为它扛着一个顶级产品的能力和底线。
长提示词不是 bug,是能力的账单。
而大厂能付得起这张账单,靠的是缓存把成本摊薄、靠的是海量请求把固定开销稀释。
我们这些做应用的,学不来它的规模,但学得来它的思路:
把规矩讲清楚,把结构搭稳定,把每一个 token 都花在刀刃上。
这,才是这份被泄露的"12万字"留给我们最值钱的东西。
评论
验证登录状态...