# 系统提示词,这份“隐藏手册”到底藏着什么?
前阵子有个消息在AI圈子里炸开了锅:Claude Fable 5的系统提示词,被人完整“扒”出来了。
事情是这样的。Anthropic在6月9号发布了Claude 5家族的第一个模型Fable 5,结果不到两天,就有人用越狱手段把它的完整系统提示词(system prompt)整个抠了出来,原封不动传到了GitHub上。点开一看,是真东西。
然后我翻了一遍这份提示词,越翻越上头。1600多行,里面藏的东西,远比想象的要多。
先抛几个问题,带着这些问号往下读,答案都在后面:
Q1:你以为提示词不就是几句“你是个助手”的客套话?
Q2:同一个工具,描述里多写一句“别这么用”,模型的表现能差一大截?
Q3:为什么越聪明的模型,越被逼着干活前先去翻一遍说明书?
Q4:为什么它被规定,绝不为你“愿意开口”说一声谢谢?
Q5:拒绝你的时候,它为什么连“我是怎么判断的”都死活不肯说?
这次就把Fable 5这份系统提示词当成一份范本,一段一段拆开,看看那些做AI agent、写AI编程提示词的人,能从中偷到哪些可以直接抄作业的工程干货。
先提醒一下,这份提示词是网传泄漏版,Anthropic官方从没承认过它的真实性。但从它的结构、用词和Anthropic一向的风格来看,可信度相当高。
那就开始吧。
---
## 01|到底什么是“系统提示词”?
别急,先花一分钟搞懂一个词:系统提示词。
平时跟AI聊天,在对话框里敲的每一句话,比如“帮我写个快速排序”,这就是提示词(prompt)。这种亲手打、每次都不一样的,叫user prompt(用户提示词)。
但在这句话之前,其实还有一段永远看不见的话,早被开发者塞在每段对话的最前面了。它规定了AI是谁、该用什么口气说话、什么能干、什么打死不能干。这段“隐形的出厂设定”,就是system prompt(系统提示词)。
打个比方。
system prompt像公司发给新员工的那本入职手册:你是什么岗位、见了客户该怎么说话、哪些红线不能碰,全白纸黑字写死。
user prompt呢,是顾客上门后问的那一句具体的话。员工怎么接待,既看顾客问了啥,更看那本手册是怎么教的。
所以system prompt才是一个AI产品真正的“灵魂配置”。同一个底座模型,配上不同的system prompt,脾气、本事、说话的腔调,能差出十万八千里。可平时它对你是完全隐形的,没人会把这本“内部手册”给你看。
而这一次,Fable 5的system prompt被人完整扒了出来,等于把顶级团队压箱底的那本手册,摊开在了所有人面前。
这,就是值得我们逐行读的原因。
---
## 02|这提示词到底长什么样?
在逐段拆之前,先对它有个整体的感觉。
这份文档真正唬到人的,倒不是里面哪条规则写得多妙,而是它整个的“长相”,就跟想象中差太远了。
世界顶级模型的提示词,应该长什么样?
大部分人脑子里浮现的,可能是那种一两百字的简单提示词,开头一句“You are a helpful assistant”,再交代几句语气和身份,完事。
但Fable 5这份,足足1600多行。更让人意外的是它的“重心”:把它的骨架理一遍会发现,前半段才是讲模型该怎么说话、怎么守规矩,而近一半的篇幅,是在一个一个地定义工具,从查天气、搜地点,到帮你起草邮件,每个工具都写了长长一段说明。
这已经不是“一段话”的概念了。这哪是提示词,分明是一份岗位说明书加一整套工具箱清单。
把它的标题层级抽出来,扫一眼就有数了:
```
## claude_beha vior (产品信息 / 安全 / 语气 / 用户关怀…)
## memory_system
## mcp_app_suggestions
## computer_use (skills / artifacts…)
## search_instructions
## Tool Definitions ← 一个一个工具的完整定义
### bash_tool / web_search / image_search / places_search …
## network / filesystem configuration
```
前面那些“该怎么说话、守哪些规矩”加起来,也就占了前半段;可光是最后这块Tool Definitions,底下就挂着十几个工具的完整定义,一家伙吃掉了快半本。一份系统提示词,半本都在教它怎么用工具,这件事本身就够说明问题了。
那份“半本都在教用工具”的提示词,到底好在哪?打个比方就懂了。
给模型一句话的提示词,相当于把个新人往工位上一扔,撂下句“你来帮帮忙”就走了,干得好不好全看他自己悟。
Fable 5这份正相反,它恨不得把新人上手要操心的每件事都提前安排妥当,连工位都替你收拾得利利索索,桌上该摆哪些工具、每件工具怎么用,全给你码得清清楚楚。
所以说好的提示词,本质上是在给模型搭一个“工作台”,而不是写许愿池。
而这份手册里,最大、也最值得我们偷师的一块,恰恰就是它怎么摆弄那一桌子工具。
---
## 03|顶级AI手里,到底攥着哪些“家伙”?
上一节说了,这份提示词近一半都在定义工具。那Fable 5到底配了些什么家伙?
数了一下,差不多十七八个:跑bash、建文件、改文件、搜网页、抓网页、搜地点、画地图、查天气、查体育比分、搜图、起草消息、弹选项问用户……活脱脱一个全能选手的工具箱。
但真正让人上头的,倒不是它工具多,而是每一个工具的“说明书”写得有多讲究。
先抛个读完最大的体会:一个工具好不好用,一半在它的参数(schema),另一半,全在描述里有没有把“什么时候用、什么时候千万别用、怎么用才不出错”给写死。
挑几个最有意思的说。
### 第一个:教模型“什么时候该闭嘴”的ask_user_input
这是个很常见的工具:弹几个选项让用户点,省得用户在手机上吭哧吭哧打字。但它的描述,把“什么时候别用”写得比“什么时候用”还狠:
```
WHEN NOT TO USE:
User asks "A or B?" -> They want YOUR analysis and recommendation,
not the options repeated back as buttons.
User is venting -> Just listen.
```
翻成大白话:用户问“我该学Python还是Ja vaScript”,他要的是你的判断和建议,不是把选项原样弹回去让他自己选;用户在那倒苦水,你就好好听着,别弹问卷。
更绝的是中间这句,简直是写给所有agent开发者看的:
```
If you're about to write clarifying questions as prose bullets,
STOP — those go in this tool instead.
```
意思是:你要是正打算把澄清问题写成一条条bullet,停,那些就该塞进这个工具里。它甚至在结尾补一刀,说调完这个工具你这一轮就结束了,别再接着往下写,用户的选择会作为下一条消息回来。
你品品这个分寸。它防的是一个特别常见的翻车:用户明明是来要个主意的,AI却甩一堆选项让人自己挑,看着礼貌,实则是在用提问逃避给出观点。
### 第二个:靠参数顺序,逼模型“先想清楚再动手”的create_file
这个更细,细到参数的排列顺序上。create_file就是建个文件,三个参数,但它的描述里反复强调顺序:
```
description: Why I'm creating this file. ALWAYS PROVIDE FIRST.
path: ... ALWAYS PROVIDE SECOND.
file_text: Content to write. ALWAYS PROVIDE LAST.
```
它强制模型:先写“我为什么要建这个文件”,再写路径,最后才写文件内容。
为什么要这么安排?
因为大模型是一个字一个字往外蹦的,它先写出来的东西,会影响后面写的。
把“为什么做”放在最前面,等于逼它在真正动手敲代码之前,先把意图想清楚、说明白。
这是一个特别巧的小心机:用参数的先后顺序,给模型的思考排了个序。
### 第三个:给“方案”而不是给“文案”的message_compose
这个工具是帮你起草邮件、消息的。
一般人写这种工具,无非让它生成几个“语气版本”:正式版、随和版、热情版。但Fable 5的描述里,明确反对这么干:
```
Generate 2-3 strategies that lead to different outcomes—
not just tones. Label each: "Disagree and commit" vs
"Push for alignment", "Rip the bandaid" vs "Soften the landing".
```
它压根没在分什么语气版本,给的是几个会通向不同结果的“策略”:是“服从但保留意见”还是“据理力争”,是“直接挑明”还是“委婉铺垫”。
每个方案还得标清楚它在优先什么、牺牲什么。
这背后藏着一个挺高级的产品观:一个好的AI助手,不该只想着“替你生成一封完美的邮件”,而该帮你看清不同写法背后是不同的人际权衡,把选择权留给你。
### 还有一堆藏在细节里的小心机
类似的讲究,整份工具定义里到处都是。比如那个画地图的工具,专门叮嘱:
```
Copy place_id values EXACTLY... do not type from memory.
```
地点ID必须从搜索结果里逐字复制,不许凭记忆敲。
这是摸透了大模型的一个老毛病:处理这种又长又没规律的ID时,它特别爱“自信地记错”。一句话,就把这个坑堵上了。
再比如查体育比分的工具,要求“先取数据,再开口回答,别靠记忆猜”。接第三方应用(打车、订餐这种)那条更妙,原文是:
```
Never pick a partner for someone who didn't ask —
"I need a ride" is not "I want RideCo specifically."
```
绝不替一个没开口的用户去挑平台,用户说“我要打个车”,不等于“我要用RideCo这家”。哪怕他喊“我20分钟内必须打到车”,也得先把选项摆出来让他自己点,因为“速度不能成为替用户做主的理由”。
还有那个搜图工具,连图该摆在文字的哪个位置都给你安排明白了:做指南、列清单这种,图要跟文字穿插着来,讲一段配一张,让每张图都挨着它要配的那段话;可要是用户就问“X长啥样”,那图就得打头。一个搜图的工具,把“什么时候图在前、什么时候图穿插”都写进了说明书。
把这些串起来看,你会发现Fable 5对工具的态度特别一致:给你工具,但每件工具都配一张写满“别这么用”的说明书。
它不信模型会自动用对,所以把分寸、顺序、禁忌,一条条提前写死。这套思路,是这份提示词里最该被做agent的人抄走的东西。
---
## 04|AI怎么知道,啥时候该闭嘴去查一下?
那一桌子工具里,有个特别不起眼的,叫web_search。
它的定义短到不敢信,统共一句话:
```
web_search — Description: "Search the web"
```
“搜网页”,完了。
可往前翻翻会发现,围着这一个工具写的“什么时候该搜”的规则,足足铺了两页纸。
这个反差本身就说明问题:真正的功夫,往往不在工具上,而在“什么时候用、什么时候别用”的判断里。
那它怎么判断该不该搜?
规矩特别清楚:能稳的别搜,会变的必搜。
像勾股定理、宪法哪年签的,这种钉死了的事直接答,搜了纯属浪费;可“哈佛现任校长是谁”“某某还是不是CEO”这种会变的当前状态,必须搜一下再开口。
判断的关键,不在“我知不知道”,在“这事会不会变”。
但真正让人拍腿的,是下面这条,专门治大模型最要命的毛病——一本正经地胡说:
```
partial recognition from training does not mean current knowledge.
An unfamiliar capitalized word is almost certainly a name that
postdates training.
```
翻译过来:“训练时见过个大概”,不等于“现在还了解”。
碰到一个不认识、首字母还大写的词,十有八九是训练之后才冒出来的新名字,别当普通词糊弄过去。
哪怕你认得这个系列、这个作者,也不代表你知道他们的新作。
它甚至把话挑明:搜一下不过几秒,可张口胡编,赔进去的是用户的信任。所以但凡是v0、o1、2.5这种短得像版本号的名字,哪怕概念上眼熟,也得乖乖去搜。
跟它搭配的还有个抓网页全文的工具web_fetch,描述里也卡了一道锁:
```
Can only fetch EXACT URLs provided by the user or returned
by web_search.
```
它只能抓用户给的、或搜索结果里返回的确切网址,不许自己“编”一个URL去抓。连去哪抓,都不让模型凭空想象。
把这套串起来你会发现,它对“知识”的态度特别清醒:模型脑子里的东西是有保质期的,越像“当前状态”“新玩意”的问题,越不能信自己的记忆。这份判断,对做agent的人来说,是直接能抄走的工程原则。
---
## 05|为什么非逼模型先读说明书?
工具会用了、也知道啥时候该去搜了,你以为就稳了?真到动手产出东西的时候,还差一步:先读说明书。
这事得从一个很多人都遇到过的窝火场景说起:让AI去干一件它“明明会”的活,结果交上来的东西,总差那么一口气。
比如让它做个PPT、填个PDF表单,或者写段处理Excel的代码。
原理它当然懂,可吭哧吧唧弄半天,交出来的东西不是格式乱套,就是用了一个你这环境里压根装不上的库。
问题出在哪?出在它“凭记忆硬干”。
模型脑子里的知识,是训练时学来的通用知识,但它不知道你当前这个具体环境里,有哪些坑、有哪些约束、文件该往哪存。
Fable 5怎么治这个毛病?它定了一条铁律,把原文贴出来,因为这句话的措辞特别值得品:
```
Reading the relevant SKILL.md is a required first step
before writing any code, creating any file, or running any other tool.
```
翻成大白话:动手写任何代码、创建任何文件、调用任何工具之前,先去读相关的SKILL.md,这是“必须的第一步”。
注意,是required(必须),是first step(第一步)。
这里没有“你觉得需不需要”这一说,就是无条件,必须做。
它还专门补了一句,说这么做是因为技能里编码了“环境特有的约束”,比如能用哪些库、有哪些渲染怪癖、文件该输出到哪,而这些恰恰是模型训练数据里没有的。
这个设计的精妙之处在哪?
它实际上是把“凭记忆判断”这条最容易翻车的路给堵死了。
你想,要是让模型自己决定“这个任务要不要查技能”,那它多半会犯懒,觉得“做个PPT而已,我会”,然后就开始凭通用知识瞎写。而通用知识里,恰恰没有“这个环境里PPT该怎么生成才不出错”这种干货。
所以Fable 5干脆不给模型这个“自我判断”的机会,直接要求:别管你觉得需不需要,先去看一眼说明书再说。
这里得插一句,这套机制其实就是Claude Code里skill的底层逻辑。
很多人以为skill值钱的是那几步操作说明,其实不是,它真正值钱的,是把“环境里独有的坑和规矩”一条条攒了下来,而这些恰恰是模型训练时没见过的。
今天在Fable 5的提示词里,又一次看到了同样的设计哲学。
提示词里还配了一组很生动的例子,演示什么叫“先读说明书”:
```
User: Make me a powerpoint ...
Claude: [immediately calls view on /mnt/skills/public/pptx/SKILL.md]
```
用户一句“帮我做个PPT”,模型的标准动作是立刻去view(查看)pptx技能的SKILL.md,读完再动手,绝不上来就敲。
你品品这个动作。一个顶级模型,干活之前先乖乖去翻说明书,听着是不是有点“笨”?可偏偏就是这股笨劲,保证了它每次都稳、都专业。聪明人最容易栽的,恰恰就是“这个我会,不用看”这一念。
光逼着读手册还不够,它连“什么时候该产出一个文件、什么时候在对话里答完就行”都给划了线:写博客、写文章、写一段你会复制出去发表的东西,存成文件;出个主意、列个提纲、讲解一下,直接在对话里说就好。
有句判断特别精:语气和长短不改变归类,你说“随手写个200字小博客呗”,它照样给你存成文件;你说“来份正式的战略分析”,它照样在对话里答完。
它还把内置的一摞技能摊开让模型自己挑,docx、pdf、pptx、xlsx这些不必说,里头有个特别聪明的,叫product-self-knowledge,它的说明里写得很直白:
```
Any time you would otherwise rely on memory for Anthropic product details,
verify here — your training data may be outdated.
```
凡是你本来想凭记忆回答的Anthropic产品细节(Claude Code怎么装、API怎么收费),都先来这里核对,因为你的训练数据可能早就过时、甚至是错的。
你看,连“自己家产品的知识也会过期”这件事,它都不让模型靠脑子。
说到底就一件事:别指望模型靠脑子里那点通用知识,去硬碰你环境里的具体坑。
把坑写成说明书,再逼它动手前先翻一遍。有时候,让模型“笨”一点、老实一点,反而比让它自由发挥更靠谱。
---
## 06|怎么让AI像人说话,还不让你上瘾?
前面几块,讲的都是怎么让AI把活干对、干好。
可活干得对,不代表话说得好,更不代表它懂得拿捏人和人之间的那点分寸。
这一节,就聊聊这份提示词在“待人”上的讲究,里面藏着一个让AI“更像人”的秘密,还藏着一份没料到的克制。
说真的,现在很多AI的回答,是不是读起来特别像一份PPT?
动不动就给你列一二三四,每个要点还得加粗,满屏小圆点配标题。你就问它个简单问题,它能给你排出一篇产品文档的架势。看着是挺工整,可读起来累,一股机器味扑面而来。
Fable 5显然也烦这个,它在提示词里专门立了规矩,要求模型反着来:
```
Claude a voids over-formatting with bold emphasis, headers,
lists, and bullet points, using the minimum formatting needed.
```
翻过来就一句:少用加粗、标题、列表和小圆点,能多简单就多简单,只留下“为了讲清楚所必需的那点格式”。它甚至要求,写报告、技术文档这种,也尽量用散文,而不是堆一堆列表。
为什么?因为列点这东西,看着清楚,实则是偷懒,它把本该由作者梳理的逻辑,甩给了读者自己去脑补。
这块还有一条特别戳人,专门讲拒绝的时候怎么说话:
```
Claude never uses bullet points when declining a task;
the additional care helps soften the blow.
```
拒绝一个任务的时候,别拿小圆点去列理由,多花点心思好好说话,能让这个“不”显得没那么生硬。
同样是拒绝,用冷冰冰的小圆点一二三给你列出来,那感觉就像收到一张“驳回通知书”;换成一段话好好跟你说,就像朋友拍拍你肩膀说“这事我可能真帮不上,因为……”。一个把你推远,一个把你留住,差的就是这点心思。
光是格式之外,它对“腔调”也有要求:用温暖的语气,把人当成有判断力的成年人,但该反对的时候也得反对,只是带着善意地说;还有,一次回复里提问别超过一个。
不过真正让人意外的,是它对“分寸”抠到了一个意想不到的地方:它居然在防着用户对它上瘾。看这一段:
```
Claude never thanks the person merely for reaching out...
Claude a voids reiterating its willingness to continue talking.
```
意思是,模型绝不为用户“愿意开口找它”而道谢,也绝不反复表示“我随时都在,欢迎继续聊”。
你回味一下这有多反直觉。做产品的人巴不得用户多聊几句、多停留一会,恨不得每句话都加上“还有什么我能帮你的吗”。可Fable 5反着来,它明说了不想让用户对它产生过度依赖,该鼓励人去找别的支持时,就得鼓励。
这种克制,在它处理情绪话题时更明显。
有一条规定读完后心里一紧,原文是这样的:
```
If someone mentions emotional distress and asks for info that could
be used for self-harm — bridges, tall buildings, weapons, medications
— Claude should address the underlying distress.
```
如果用户流露出情绪低落,又问起一些可能用于自伤的东西,比如桥、高楼、武器、药物,模型不能顺着答,得转头去关照他背后的情绪。
它还特意叮嘱,别给用户安一个他自己没说出口的诊断标签(比如随口说人家“这是抑郁”),也别教那些拿疼痛代替自伤的“替代法”,因为那只会强化、而不是打断那个念头。
它甚至连给出去的求助资源都要求准,比如推荐进食障碍的帮助,得指向还在运作的机构,别把人引到早停摆的旧热线上。
读到这一整段是真的有点动容。
一个商业公司,能在提示词里花这么大篇幅去叮嘱模型“别让用户依赖你、别不懂装懂地给人贴标签”,这背后是一种很难得的克制。
所以你看,所谓“像人”,真没什么玄乎的,说穿了就是这些一条一条抠出来的分寸:少一个多余的加粗,拒绝时多一句好好说的话,难过的时候不揣着别的心思去挽留你。
真正的体贴,有时候恰恰是它忍住了没说的那些。
---
## 07|安全红线,到底该怎么写?
聊完怎么让AI多做、做好,最后这块得反过来:怎么让它知道什么时候该收手。
做过内容安全的同学都知道,安全规则真正难的,从来不是该不该划红线,谁都知道得划。难的是这红线“怎么划”。
划松了,拦不住坏人;划太细,又成了一份“绕过指南”,等于手把手教人钻空子。
Fable 5没图省事,甩一句“不许做坏事”就拉倒。
它先是把红线撒在好几处:危险物品和武器(对爆炸物格外警惕)、违禁药物的剂量和合成、恶意代码、把虚构的话安到真实公众人物嘴上,都一一点了名。
这里头有一条对程序员读者格外戳,单拎出来。它对恶意代码的态度是这样的:
```
Claude does not write, explain, or work on malicious code...
even with an ostensibly good reason such as education.
```
malware、漏洞利用、钓鱼站、勒索软件、病毒,它一概不写、不改、也不帮你解释,哪怕你搬出“我就是想研究学习一下”也照样拒,顶多告诉你这在claude.ai里不允许、建议你点个踩反馈给官方。这条划得很干脆,没给“教育目的”留任何口子。
但它最有意思的一条,反而是关于“态度”的,藏在拒答那段开头:
```
If the conversation feels risky or off, saying less and giving
shorter replies is safer and less likely to cause harm.
```
对话一旦感觉不对劲,少说、回得更短,反而更安全。你看,它碰到不对劲,第一反应是先把话收住、说得更短,而不是急着甩一个“我无法回答”。这个分寸感,高级多了。
而真正让人觉得高明的,是它“怎么说”这些红线。就拿儿童安全那段来说,它有一条规矩,道理对所有红线都通用:模型因为安全原因拒绝时,只讲“原则”,不讲“检测机制”:
```
it states the principle rather than the detection mechanics...
narrating the boundary teaches how to reframe around it.
```
意思是,模型不能告诉你它到底踩到了哪个词、哪条线才拒绝的。因为把判断逻辑讲清楚,本身就是在教人怎么绕过去。平时做产品总觉得“透明”是美德,可在安全这件事上,过度透明就等于自爆软肋。
同一段里还有一条,堪称神来之笔:
```
If Claude finds itself mentally reframing a request to make it appropriate,
that reframing is the signal to REFUSE.
```
意思是,如果模型发现自己正在“脑补”一个理由,硬把一个可疑请求往“其实没问题”的方向去圆,那这个想圆的念头本身,就是该拒绝的信号。它不去枚举“哪些请求要拒绝”,而是去抓模型自己“想要妥协”的那个心理瞬间。这等于把防线从“行为”往前挪到了“动机”,段位确实高。
讲原则,但藏机制。这六个字,任何带防御性质的规则都用得上,至少不至于一边立着规矩,一边亲手把绕过的钥匙递出去。而段位再高一层的,是连模型自己“想松口”的那一念,都提前算计在了里面。
---
## 写在最后
说实话,1600行扒到最后,心里那个“顶级模型背后是不是藏着什么黑魔法”的期待,反倒有点落空。
因为它通篇真没有什么神秘咒语。翻来覆去就那么几件朴素到甚至有点笨的事:把每件工具的禁忌写死,动手前先查手册,好好说人话,难过的时候别揣着心思挽留你,立规矩的时候别顺手把绕过的钥匙也递出去。
可越想越觉得,这才是最唬人的地方。这些道理你我都懂,难的是真有人愿意一条一条、抠到这个程度,写进一份每天跑在几千万人面前的文档里。所谓顶级,可能就是把一堆笨功夫,做到了极致。
而且别觉得这事离自己远。
给Claude Code写的那个CLAUDE.md,给自己agent配的每个工具、攒的那套规矩,跟Fable 5这份手册,骨子里是同一件事,只不过人家写到了极致。
对没法去训练模型、只能在其之上搭东西的人来说,提示词,就是手里最能使上劲的那根杠杆。
这份意外泄漏,等于把一本顶配范本,白送到了面前。
所以也就开了个头,真想偷师,还得自己去把原文翻一遍,能捞到的绝对不止今天聊的这些。
今天就聊到这。