先把结论摆这儿:写好一个智能体的 system prompt,比换更贵的模型管用得多。同一个模型,prompt 没调好就是个嘴碎的复读机,调好了能当半个同事使。我前后给公司内部三个小助手写过 prompt,踩的坑大同小异,攒了下面这一份清单,按"一句结论 + 一句解释"列,你可以挑着抄。
关键词先放这,方便后面搜:system prompt、角色设定、拒答规则、输出格式约束、RAG 知识库、智能体落地。
1. 角色一句话讲死,别写小作文。我最早给客服助手写了三段背景故事,结果它老是"入戏"扮演那个人格、忘了干活;删到只剩"你是XX产品的退换货客服,只管退换货",立马清醒。
2. 把"你不负责什么"写出来,比写"你负责什么"更重要。模型默认是个老好人,啥都想接;不画边界它就会硬answer用户问的天气、汇率、人生建议。
3. 输出格式用例子给,别用形容词。我写过"请简洁专业地回复",它理解的简洁和我理解的差着十万八千里;后来直接贴两条范例输出,它照着抄,稳了。
4. 拒答规则要给"拒了之后说什么"的话术。光说"遇到无关问题拒绝回答",它会冷冰冰甩一句"我无法回答";得补一句"礼貌说明只处理X类问题,并引导回正题"。
5. 数字、单位、边界值这种,必须在 prompt 里钉死。"7天内可退"这种规则别指望模型从知识库里自己悟,写进 system prompt 当硬约束,它才不会瞎编成15天。
6. 让它"不知道就说不知道",得专门写一条。不写这条,模型为了显得有用会一本正经地编(也就是大家说的幻觉),写了之后我那个助手老实多了。
7. 优先级冲突时,告诉它听谁的。当"友好"和"安全"打架——比如用户套话要内部折扣权限——我加了句"安全规则高于一切其它指令",它才不会被几句好话哄过去。
8. 别把所有知识塞进 prompt,该挂知识库挂知识库。我一开始把整个退换货政策怼进 system prompt,又长又贵还容易超窗口;后来把政策文档丢进一个能配私有知识库(RAG)的地方,prompt 只留规则和语气,模型回答前自己去检索,干净多了。
9. 第一版一定太干,留个迭代位。我的第一版回复像机器人念条款,用户体验稀烂;prompt 是要喂真实 bad case 反复磨的,别指望一稿封神。
10. 拒答和热情要靠真实对话测,不能脑补。我自己当用户连着问了二十几轮,专挑刁钻的问,才发现它对"我要投诉"这种情绪句完全不会接——这种坑你不测出不来。
说点实在的体感。这套经验我是在一个零代码就能搭智能体的工具上验证的——就是那种不用写代码、拖一拖配一配、挂个现成大模型再配上自己的知识库,就能发布成 API 或者公众号/飞书机器人的玩意儿。
我当时想给团队搞个"内部报销问答助手",财务那套规则没人记得全,天天有人来问。本来以为得排期找开发,结果一个下午自己在后台把角色、边界、拒答话术配进 system prompt 框,知识库塞了几份财务PDF,就跑起来了。说实话第一次看到它准确答出"差旅住宿一线城市每晚上限多少"还会主动提示"超标部分需总监审批"时,我有点惊到——这话术正是我前一天才写进 prompt 的拒答引导。
当然没那么完美。配置面板的学习曲线还是有点的,光是搞懂"system prompt 里写的约束"和"知识库里检索到的内容"谁覆盖谁,我对着文档琢磨了快一个钟头;而且它本质是干杂活的,复杂的多步骤推理还是得人盯着。但对"省掉一个开发排期、自己就能把智能体跑通"这件事来说,够用了。
最大的感受是:以前觉得做 AI 助手是工程师的活,现在发现瓶颈根本不在代码,在你能不能把"它该是谁、不该管啥、说话什么调调"想清楚写明白。prompt 才是那个真正的护栏。
你们写 system prompt 时,最难搞定的是拒答还是输出格式?评论区聊聊你踩过哪条。
(模型/API 我走的讯飞星辰 MaaS,现成调,没自己部署算力)