角色/任务/约束三分法:为什么你的提示词结果不稳定
2026-10-19问题不在模型,在提示词缺了结构
同一个提示词,上午跑出来的结果能用,下午跑出来就不能用;换个人跑,结果又不一样。大多数时候这不是模型"抽风",而是提示词里只有任务、没有边界:模型每次都在用自己的默认假设补全你没写的那部分,而这些假设每次都可能不同。
把提示词拆成三层——角色、任务、约束——不稳定几乎总能定位到具体缺了哪一层。
三层各自解决什么
| 层 | 回答的问题 | 缺失时的典型症状 |
|---|---|---|
| 角色 | 谁在做这件事?以什么专业身份、对谁说话? | 输出像百科词条,正确但没有立场,不能直接用 |
| 任务 | 具体要产出什么?交付物的形态是什么? | 模型自由发挥,给你一段说明文而不是你要的清单或表格 |
| 约束 | 在什么条件下做?不做什么?格式、篇幅、口径边界? | 这一项最容易漏,也最直接导致"时好时坏" |
三层里,角色和任务决定输出"对不对",约束决定输出"稳不稳"。只写前两层,你会得到偶尔惊艳、经常跑偏的结果。
完整模板
【角色】
你是(具体职位或专业身份),服务对象是(读者是谁)。
你的判断依据是(该领域的标准、规范或方法论)。
【任务】
产出一份(交付物形态:清单/表格/方案/代码/文档),用于(用途)。
必须包含:(逐个列出必备要素)
【约束】
- 必须做:(硬性要求,如:每个结论都要给出依据)
- 不要做:(禁区,如:不要编造数据;不要用行业黑话)
- 格式:(篇幅、层级、是否用表格、编号方式)
- 口径:(单位、时间范围、口径定义)
- 遇到不确定时:(明确写"资料未提供",而不是猜测;或先向我提问)
【输入】
(待处理材料)
约束层才是稳定性的来源
把约束层单独拿出来看,它其实在替模型做四件事:
- 划定能力边界——「不要编造数据」这一条能挡掉大部分幻觉。不写,模型会用行业常识补足,而补出来的内容你无法溯源。
- 固定输出形态——篇幅、层级、是否用表格,一旦写死,两次运行的结果就可比较了。
- 定义不确定性的出口——最重要的一条。模型遇到信息缺口时只有两个选择:猜,或者告诉你缺什么。你不给出口,它默认选猜。
- 排除无关内容——明确「不要输出什么」,比反复要求「写得好一点」有效得多。
一个经验判断:如果提示词改了两三次还是不稳定,问题几乎一定在约束层没写全,而不是需要去调温度值。
怎么用
- 先把现在用的提示词按三层拆开,看哪一层是空的。多数人的提示词只有「任务」。
- 补角色时不要写「你是一个资深专家」这种空话,写具体到能约束判断标准的身份,例如「你是负责申报材料合规审查的评审助理,依据是申报书填写说明」。
- 约束层一次加三条左右就够,加太多会互相冲突。写完跑两次对比,不稳定就再加。
- 把「遇到不确定时怎么办」当成必填项。这一条能省掉后面反复核对的工作。
- 沉淀成模板:把反复要用的角色和约束固定下来,只换任务和输入。
常见误区
- 把角色写成奉承。「你是世界顶级专家」不会让输出更专业,只会让语气更浮夸。角色是用来限定判断依据的。
- 用形容词代替约束。「简洁一点」「专业一些」不可执行。改成「每段不超过 3 句」「不使用感叹号」。
- 约束堆在最后。约束要和任务放在同一段里,隔得太远,模型容易只执行后半部分。
- 一次加十几条约束。约束越多越容易互相矛盾,模型只能丢弃一部分,反而更不稳定。
延伸阅读
如果你还没建立提示词的结构意识,建议先看提示词工程:从基础到实践;本文讲的是其中的结构层。想要现成模板,直接取用结构化提示词模板库里的四段式写法。
如果你正在准备高校创新创业大赛材料,这套结构可以直接用在材料撰写上,参见用 AI 做创赛材料的 7 个提示词。