结构化提示词写法:角色、任务、上下文、约束与输出格式
很多人使用大模型时的体验是“时灵时不灵”:有时回答得很好,有时却答非所问。问题往往不在模型,而在提示词。一个模糊的提示词让模型不得不猜测你的意图,而一个结构清晰的提示词能让模型准确理解任务、稳定输出。 结构化提示词并不神秘,本质上就是把一项任务交代清楚,就像给一位能力很强但不了解背景的新同事布置工作。
结构化提示词的五个要素
1. 角色:你希望模型以什么身份工作
为模型设定一个与任务匹配的角色,帮助它调用相应的知识和表达方式。例如“你是一位有十年经验的电商运营专家”或“你是一位严谨的技术文档编辑”。
角色设定有一定作用,但不要过度依赖。比起“你是世界顶级专家”这类夸张描述,具体说明这个角色关注什么、以什么标准工作更有用。
2. 任务:要完成什么
清楚、具体地说明任务目标。对比以下两种写法:
- 模糊:“帮我写一份产品介绍。”
- 清晰:“为我们的智能保温杯写一段 150 字左右的电商详情页开头文案,目标是让上班族用户在 5 秒内了解核心卖点。”
好的任务描述包括:做什么、为谁做、用于什么场景、达到什么目的。
3. 上下文:模型需要知道的背景
模型不了解你的业务、产品、用户和前因后果。把完成任务所需的背景信息提供给它:
- 产品的关键参数和卖点;
- 目标用户的特点;
- 相关的参考资料或数据;
- 之前讨论的结论。
在提供大量资料时,用明确的分隔符把资料和指令分开,例如用标签或标题标出“以下是参考资料”。
4. 约束:必须遵守的规则
- 内容约束:必须包含哪些信息,禁止出现哪些内容;
- 风格约束:语气、用词、正式程度;
- 长度约束:字数或段落数;
- 行为约束:例如“如果资料中没有相关信息,直接说明不知道,不要推测”。
约束要具体明确,避免“写得好一点”“专业一些”这类模糊要求。尽量用正面描述告诉模型应该怎么做,而不只是说不要做什么。
5. 输出格式:结果以什么形式呈现
明确指定输出的结构:列表、表格、分段标题,还是 JSON。如果输出要被程序处理,格式要求必须严格,参见让大模型稳定输出 JSON。
一个完整示例
以下是一个用于客户评论分析的结构化提示词骨架:
# 角色
你是一位用户研究分析师,擅长从用户反馈中提炼产品改进方向。
# 任务
分析下方的用户评论,找出用户最关注的问题,为产品团队提供改进建议。
# 背景
产品是一款面向家庭用户的扫地机器人,近期发布了新版本固件。
# 约束
- 只依据评论内容分析,不要推测评论中未提及的问题
- 每个问题都要引用至少一条原始评论作为依据
- 按提及频率从高到低排序
# 输出格式
用表格输出,列包括:问题类别、具体描述、提及次数、代表性评论、改进建议
# 用户评论
(此处粘贴评论)
进阶技巧
- 提供示例:当格式或风格难以用文字描述清楚时,给出一两个示例往往比长篇说明更有效,参见少样本提示;
- 拆分复杂任务:把一个复杂任务拆成多个步骤,分别处理或者在提示中明确步骤顺序;
- 让模型先思考:对于推理类任务,可以要求模型先分析再给出结论,参见思维链提示;
- 重要信息放在开头或结尾:长提示中,关键指令放在开头,并在结尾简要重申。
常见错误
- 过于简短:只有一句话的提示,模型只能依靠猜测;
- 信息堆砌:塞进大量无关信息,反而干扰模型的判断;
- 相互矛盾:例如既要求“详细全面”,又要求“不超过 50 字”;
- 把多个任务混在一起:一次要求模型完成太多不相关的事情;
- 改了不测:修改提示词后不做对比测试,无法判断是否真的变好了,参见提示词工程化。
小结
结构化提示词的核心是把任务交代清楚:角色设定方向,任务明确目标,上下文提供背景,约束划定边界,输出格式规范结果。掌握这一框架后,再结合示例、任务拆分和测试迭代,就能写出稳定可靠的提示词。系统提示词的专门设计见 System Prompt 设计指南。