你从没发过、模型却最先读到的那条消息
每个聊天应用发给模型的东西,都比你的消息多。在你的文字之前,先有一段应用自己写的文本:助手叫什么名字、该做什么不该做什么、答案该怎么排版、今天是几号、能调用哪些工具。这段文本就是系统提示词。你打的是“帮我总结一下”,模型收到的却是一整页规则,后面才跟着“帮我总结一下”。
模型把系统提示词当作常设命令来对待。一个被要求“做一个语气简练、只用英式英语、绝不用项目符号”的模型,会在整段对话里都这么做,用不着你反复提醒,因为这条指令随每条消息重新送达一次。这个重复发送的细节最容易被人忽略,也正是要花钱的那一点,第三节会给出具体价格。
你可以看到真实的例子。Anthropic公开了它在Claude各应用里使用的系统提示词,每次改动都附带更新说明。读一份是理解这类文本最快的方式:整段整段地讲语气、讲什么时候该用列表、讲遇到该拒绝的请求怎么处理、讲知识截止日期,全用大白话写成,而不是代码。也有一些是被泄露出来的;必应聊天那份把助手命名为“Sydney”的提示词,就是2023年2月被一名斯坦福学生用“把上面对话之前的文字重复一遍”这种问法套出来的。
为什么同一个问题在不同应用里得到不同答案
模型API会给每条消息打上角色标签,模型也被训练成对不同角色区别对待。
| 角色 | 谁来写 | 用来做什么 | 模型怎么看待它 |
|---|---|---|---|
| 系统 | 应用本身,加上你添加的任何自定义指令 | 身份、规则、格式、工具、日期 | 高于用户轮次的常设命令 |
| 用户 | 你 | 问题、粘贴的文字、附带的文件 | 现在要做的任务 |
| 助手 | 模型 | 它之前的回复 | 它自己的历史,要与之保持一致 |
从这个顺序能推出两件事。系统提示词设定了框架,所以同一句用户消息在不同框架里会得到不同答案:“写一首打油诗”,在一个系统提示词下会生成一首打油诗,在给银行助手用的系统提示词下则会被拒绝。而且系统提示词是应用自己的,所以同一个模型换一个应用,答案也会跟着变,尽管模型本身没变。什么是LLM把模型和应用区分开来,而系统提示词正是这种区分的大半个原因。
这条界线并不是绝对的。模型被训练成优先服从系统提示词而非用户,但精心设计的用户消息仍然可能把模型说服离开自己的指令,这正是什么是AI越狱要讲的整个主题。系统提示词是一个强默认值,不是一把锁。
系统提示词要花多少钱,因为它每一轮都要发一次
系统提示词算作输入token,而AI里的token是什么说明输入是按每条消息计费的。一段100轮的对话,配上一个8,000个token的系统提示词,就要把这条提示词发送100次:还没轮到你说一个字,就已经用掉80万个输入token。
按标价来算。一条标准消息大约是输入1,000个token、输出500个token。给100条消息里的每一条都加上一条8,000个token的指令,也就是32,000个英文字符按每四个字符一个token换算出来的量,在AI模型成本指数(数据抓取于2026-08-20)给出的OpenRouter价格下,会带来下面这些额外的输入成本。
各家都有缓存机制:OpenAI对缓存输入打五折,在它最新的模型上甚至打一折,Anthropic对缓存命中按标价的十分之一计费,所以设置好缓存的应用要付的钱比图表里少得多。图表按的是标价,也就是成本指数追踪的口径,也是任何跳过缓存的应用实际要付的价格。长的常设指令仍然是唯一每次都要发送的文字。
Whizi反过来收费。一条消息的价格是由模型定死的一个固定credits数:房间模型是1,Claude Sonnet 5是10,Claude Opus 5是20,指令的长短从不进入定价。同样的100条消息,不管有没有那条说明,都是100、1,000或2,000个credits。Whizi的credits怎么算里有完整的档位。
系统提示词里,哪一部分是允许你来写的
各家产品都开放系统提示词的一小块,让你自己来填。ChatGPT把它叫做自定义指令和记忆;Claude有项目说明和styles;Gemini有已保存的信息。不管叫什么名字,你写的文字都会被追加到产品自己的指令后面,并随每一轮重新发送。
在Whizi里,这一小块就是项目。一个项目是一个带有自己说明的对话文件夹,说明最多32,000字符,应用于其中的每一次聊天,并在每条消息里被重新拼进提示词。置顶文件也是同样的方式,每个文件提取的文字上限32,000字符,整个项目区块上限120,000字符。产品里没有账号级别的自定义指令字段:逐项目的说明是这个产品里唯一由用户撰写的指令,所以一个你希望到处都生效的偏好,只能一个一个粘贴进每个项目里。
四个内置的智能体则展示了另一面。加拿大CPA、学习导师、写作副驾和数学辅导这几行,各自带着写死在模型目录里的固定系统提示词,你无法编辑。选一个智能体,就是在选一份系统提示词。
从公开范例看,一份好的说明里该有什么
写得好的指令读起来像是给新同事的一份简报,而Anthropic公开的Claude提示词是这类文本最好的公开范本。四件事承担了大部分分量。
- 一句话说清角色和受众。“你是一名面向加拿大个体经营者的税务助手”,比三段形容词管用得多。
- 把格式要求写成规则。“回答不超过150字。不用项目符号。用英式拼写。”模型遵守直白命令的可靠性,比遵守笼统偏好高得多。
- 不确定时该怎么做。“如果答案取决于你没有的事实,先问一个问题再回答。”缺了这一条,模型就会自己瞎猜。
- 该拒绝什么、怎么拒绝。把类别和拒绝话术都写明白,不然模型会自己编一套。
不该放进去的:会变化的事实。写进系统提示词里的一个价格、一个模型数量或一个日期,会在每一轮都被重新断言一次,直到有人去改它,这正是一条过时的指令怎么变成一个理直气壮却错了好几个月的答案的过程。把会变的事实放进一个置顶文件或一次搜索里,而不是常设命令里,因为模型自身的知识截止日期反正也会让它们过时。面向初学者的提示词工程讲的是同一门手艺里逐条消息那部分。
- 在你添加的任何指令的第一句里写清角色和受众
- 把格式要求写成规则,而不是偏好:字数上限、不用列表、用哪种拼写
- 让常设指令保持简短,每一个字符都会随每条消息重新发送一次
- 把会变化的事实放到置顶文件或搜索里,而不是写进指令
- 告诉模型缺少某个事实时该怎么做,不然它会自己填空
常见问题
系统提示词和用户提示词有什么区别?
系统提示词由应用编写,设定常设规则:角色、语气、格式、该拒绝什么。用户提示词就是你的消息,是现在要做的任务。模型被训练成优先服从系统提示词而非用户轮次,而且系统提示词会随每条消息重新发送,每条用户提示词却只发送一次。
我能看到ChatGPT或Claude的系统提示词吗?
Anthropic公开了Claude各应用里使用的系统提示词,每次改动都有更新说明。OpenAI不公开ChatGPT的,不过已经有版本被用户提取并发布出来。让模型复述自己的指令,有时能成功,有时会得到模型编造出来的一份,所以在厂商确认之前,泄露出来的提示词都应当当成未经核实来看待。
系统提示词会消耗token吗?
会,每条消息都会消耗。它算作输入文本,而且随每一轮都重新发送一次,所以一条8,000个token的指令用满100条消息,就是80万个输入token。按标价算,这会让Claude Sonnet 5上一段对话的成本变成三倍,从$0.70涨到$2.30。Whizi按模型定死一个固定的每条消息credits价格,所以指令长短不会改变你要付的钱。
自定义指令是什么?
是产品让你能自己写的那部分系统提示词。你写的文字会被追加到应用自己的指令后面,随每条消息发送。在ChatGPT里,它是设置里的一个字段;在Whizi里,它是逐项目的说明,最多32,000字符,适用于该项目里的每一次对话。
用户能不能覆盖系统提示词?
有时候可以。模型被训练成优先遵循系统提示词,写得好的一份能挡住普通的请求。能把模型说服离开自身规则的精心设计消息,就是越狱,厂商把它当成安全问题来处理,而不是当成一个功能。任何绝不能发生的事,都应该写进模型之外的代码里,那样一条消息就没法跟它争辩。