你有没有过这种体验:同一个模型,别人用起来又快又准,自己问出来的回答却总是不对味?九成的原因不在模型,而在系统提示词(System Prompt)。它是你在对话开始前给模型定下的「岗位说明书」——写得越清楚,模型干活越像样。这篇教程用一个万能四段式模板,帮你十分钟入门。
先分清:系统提示词和普通提问的区别
一次 API 调用里,消息分两种角色:system(系统提示词)和 user(用户输入)。区别很像职场里的两句话——system 是入职时发的岗位说明书,整个任职期间都有效;user 是老板临时派的一个个活儿,干完就翻篇。
- 写在 system 里的规则:每次回答都会遵守,不用反复强调
- 写在 user 里的要求:只对这一轮生效,下一句可能就忘了
- 所以「永远用中文回答」「不要太长」「先给结论」这类固定要求,都应该放进 system
类比:system 是给新员工的岗位说明书,user 是每天的工作安排。说明书写得糊弄,员工就只能靠猜。
万能四段式:角色 / 背景 / 任务 / 输出要求
不知道从哪下笔?照这个顺序填空即可:
- 角色:让模型扮演谁?「你是一名有十年经验的小学科学老师」
- 背景:给谁用、用在什么场合?「读者是 8~10 岁的孩子,没有任何基础」
- 任务:核心要做什么?「把科学概念解释得通俗有趣」
- 输出要求:格式、长度、语气。「每次不超过 150 字,先给一句结论,再打一个生活比方,最后抛一个小问题」
四段不必很长,一二十个字一段就够。重点是可判断:写「简洁一点」模型猜不透你要多短,写「不超过 150 字」就没有歧义。
实操:用 API 发出第一次调用
接口地址是 https://api.aigcbreeze.cn/v1,OpenAI 兼容格式,把系统提示词放进 messages 的第一条即可。用 curl 试一把(把 sk-你的密钥 换成控制台里创建的令牌):
curl https://api.aigcbreeze.cn/v1/chat/completions \
-H "Authorization: Bearer sk-你的密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-flash",
"messages": [
{"role": "system", "content": "你是一名小学科学老师,读者是8~10岁的孩子。每次回答不超过150字,先给一句结论,再打一个生活比方,最后抛一个小问题。"},
{"role": "user", "content": "为什么会下雨?"}
]
}'
不想写代码也行:ChatBox、Cherry Studio 这类客户端里都有「助手设定 / System Prompt」输入框,把同样这段话贴进去,效果完全一样。模型可以换成 glm-5.3 或 qwen3.7-plus,同一份系统提示词在不同模型上都能用。
迭代:把不满意的地方写成规则
没有人能一次写好系统提示词,正确姿势是哪里不满意就把那条规则补进去:
- 回答太啰嗦 → 补一条「超过 200 字就算超纲」
- 总是客气话开场 → 补一条「禁止说『好的』『当然』,直接给答案」
- 格式乱 → 补一条输出模板,比如「固定用:结论 / 原因 / 建议 三段」
- 拿捏不准风格 → 在 system 里给一个例子(行话叫 few-shot),照猫画虎比描述更管用
经验之谈:每改一版就用同样的问题重新问一遍,对比新旧回答。改提示词和改设计稿一样,小步快跑,别憋大招。
常见问题
系统提示词写多长合适?
日常助手场景 100~500 字足够,把真正影响输出的规则写清楚就行。写几千字不会更聪明,反而可能让重点被稀释,还白白增加输入 token 的费用。
需要在提示词里调 temperature 吗?
这是两个维度的东西。temperature 控制的是随机性(调参在请求参数里设置,不在提示词里写):写文案可以调高到 0.8~1.0 让脑洞更大,做问答、翻译建议调低到 0.2~0.5 求稳定。先把系统提示词写好,再按用途微调参数。
规则写了模型还是不听话怎么办?
三个办法按顺序试:① 把规则挪到系统提示词的开头或结尾——中间的内容最容易被忽略;② 把「不要……」改写成「要……」,正着说比反着说有效;③ 加一个输入输出的完整示例,模型模仿能力远强于理解抽象规则的能力。